ich eine Reihe von neuen EC2-Instanzen zu schaffen mit diesem Spielansible - Wie Schleife und bekommen Attribute von neuen EC2-Instanzen
- hosts: localhost
connection: local
gather_facts: False
tasks:
- name: Provision a set of instances
ec2:
assign_public_ip: yes
aws_access_key: XXXXXXXXXX
aws_secret_key: XXXXXXXXXX
group_id: XXXXXXXXXX
instance_type: t2.micro
image: ami-32a85152
vpc_subnet_id: XXXXXXXXXX
region: XXXXXXXXXX
user_data: "{{ lookup('file', '/SOME_PATH/cloud-config.yaml') }}"
wait: true
exact_count: 1
count_tag:
Name: Demo
instance_tags:
Name: Demo
register: ec2
- name: Add new CoreOS machines to coreos-launched group
add_host: hostname="{{ item.public_ip }}" groups=coreos-launched
with_items: "{{ ec2.instances }}"
- name: Wait for SSH to come up
wait_for: host="{{ item.public_dns_name }}" port=22 delay=60 timeout=320
with_items: "{{ ec2.instances }}"
Nun, ich brauche eine SSL/TLS-Zertifikat für jeden von denen zu schaffen neue Maschinen. Um dies zu tun, benötige ich ihre private IP. Ich weiß jedoch nicht, wie ich auf die "{{ec2.instances}}" zugreifen kann, die ich im vorherigen Spiel registriert habe.
Ich habe versucht, etwas in der gleichen Textbuch, so etwas wie dieses
- hosts: coreos-launched
gather_facts: False
tasks:
- name: Find the current machine IP addresse
command: echo "{{ item.private_ip }}" > /tmp/private_ip
with_items: "{{ ec2.instances }}"
sudo: yes
Aber ohne Erfolg zu tun. Gibt es eine Möglichkeit, die Elemente "{{ec2.instances}}" in einem Spielbuch, aber in einem anderen Spiel zu verwenden?
- EDIT -
Nach Theo Ratschläge, leite ich die Instanzen bekommen Attribute mit
- name: Gather current facts
action: ec2_facts
register: ec2_facts
- name: Use the current facts
command: echo "{{ ec2_facts.ansible_facts.ansible_ec2_local_ipv4 }}"
with_items: "{{ ec2_facts }}"