Does anybody have any idea about the question below, or how to answer it? Is there a better place to ask for help?
On Tuesday, April 28, 2015 at 1:53:14 PM UTC-4, [email protected] wrote: > > I've got a playbook that looks like this: > > --- > - name: Launch Instances > hosts: localhost > gather_facts: no > vars: > aws_instance_type: m3.medium > aws_image: ami-cb214ae3 > aws_region: us-east-1 > machines: > - name: db > script: basic > > - name: db2 > script: basic > > - name: cache > script: complicated > > tasks: > - name: Launch instance > ec2: > key_name: development > instance_type: "{{ aws_instance_type }}" > image: "{{ aws_image }}" > wait: true > region: "{{ aws_region }}" > group: ansible-default > instance_tags: > cluster: "{{ tag }}" > controller: ansible > role: "{{ item.name }}" > > > register: ec2 > with_items: machines > > > - name: Add new instance to host group > add_host: hostname={{ item[1].public_ip }} groups=launched > with_subelements: > - ec2.results > - instances > > > - name: Wait for SSH to come up > wait_for: host={{ item[1].public_dns_name }} port=22 delay=60 > timeout=300 state=started > with_subelements: > - ec2.results > - instances > > > - name: Run init scripts > hosts: launched > tasks: > - name: Copy scripts > copy: > src: ../../build_scripts/scripts/ > dest: /opt/comp/scripts/ > force: yes > mode: 0755 > > > - name: Execute script > shell: /opt/comp/scripts/init/{{ script }}.sh > > > The first play brings up two machines, and waits for them to be > available. The second play loops over them, copying scripts and executing a > specific one depending on the machine. > > The problem, obviously, is that the {{ script }} variable doesn't work. > I need a way to associate the host I bring up with the script variable > associated with it. I could use tags, but this has to ultimate support > providers that don't use tags. I'd like to write a value into the local > facts of the host after bringing up a machine, but the "copy" tag doesn't > support arbitrary hosts the way "wait_for" does. It would be great if > "add_host" allowed you to specify variables to associate with them, or > "set_fact" allowed you to set a fact for an arbitrary host, but they don't > seem to. > What's the right way to do this? > > -- Chris > -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/71e29a2e-31fb-4cde-91b9-8e66b4b3cfff%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
