LoginSignup
0
0

More than 5 years have passed since last update.

elastic beanstalkに属しているインスタンスをansibleで探す

Last updated at Posted at 2015-08-20

tag使ったほうが100倍簡単だったことに書き終わってから気づいたのですが供養のため

---
- name: hogehoge
  hosts: 127.0.0.1
  connection: local
  sudo: false

  tasks:
    - name: get autoscaling group name
      shell: aws elasticbeanstalk describe-environment-resources --environment-name environmentname \
        | python -c "exec(\"import json,sys\\nobj=json.load(sys.stdin)\\nfor group in obj['EnvironmentResources']['AutoScalingGroups']:\\n print group['Name']\")"
      register: asg
    - name: debug asg
      debug: var=asg
    - name: get instance ids
      shell: aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names {{ asg.stdout }} \
        | python -c "exec(\"import json,sys\\nobj=json.load(sys.stdin)\\ndef instanceId(i):\\n  return i['InstanceId']\\nprint ' '.join(map(instanceId, obj['AutoScalingGroups'][0]['Instances']))\")"
      register: group
    - name: debug group
      debug: var=group.stdout
    - name: get instances
      shell: aws ec2 describe-instances --instance-ids {{ group.stdout }} \
        | python -c "exec(\"import json,sys\\nobj=json.load(sys.stdin)\\ndef extractInstances(i):\\n  return i['Instances']\\ndef publicDnsName(i):\\n  print i['PublicDnsName']\\nmap(publicDnsName, sum(map(extractInstances, obj['Reservations']), []))\")"
      register: instances
    - name: debug instances
      debug: var=item
      with_items:
        - "{{ instances.stdout_lines }}"
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0