The inventory script is only invoked at the beginning of the playbook run. You'll have to call your provisioning and configure playbooks separately, or use add_host (http://docs.ansible.com/add_host_module.html) to update the inventory in memory after you have provisioned a host.
On Fri, Feb 27, 2015 at 6:38 PM, Rahul Mehrotra <[email protected]> wrote: > I am using ec2.py dynamic inventory for provisioning with ansible. I have > placed the ec2.py in /etc/ansible/hosts file and marked it executable. I > also have the ec2.ini file in /etc/ansible/hosts. > > [ec2] > > regions = us-west-2 regions_exclude = us-gov-west-1,cn-north-1 > > destination_variable = public_dns_name > > vpc_destination_variable = ip_address route53 = False > > all_instances = True all_rds_instances = False > > cache_path = ~/.ansible/tmp > > cache_max_age = 0 > > nested_groups = False group_by_instance_id = True group_by_region = True > group_by_availability_zone = True group_by_ami_id = True > group_by_instance_type = True group_by_key_pair = True group_by_vpc_id = > True group_by_security_group = True group_by_tag_keys = True > group_by_tag_none = True group_by_route53_names = True group_by_rds_engine > = True group_by_rds_parameter_group = True > > Above is my ec2.ini file > > --- > - hosts: localhost > connection: local > gather_facts: yes > vars_files: > - ../group_vars/dev_vpc > - ../group_vars/dev_sg > - ../hosts_vars/ec2_info > vars: > instance_type: t2.micro > tasks: > - name: Provisioning EC2 instance > local_action: > module: ec2 > region: "{{ region }}" > key_name: "{{ key }}" > instance_type: "{{ instance_type }}" > image: "{{ ami_id }}" > wait: yes > group_id: ["{{ sg_npm }}", "{{sg_ssh}}"] > vpc_subnet_id: "{{ PublicSubnet }}" > source_dest_check: false > instance_tags: '{"Name": "EC2", "Environment": "Development"}' > register: ec2 > - name: associate new EIP for the instance > local_action: > module: ec2_eip > region: "{{ region }}" > instance_id: "{{ item.id }}" > with_items: ec2.instances > - name: Waiting for NPM Server to come-up > local_action: > module: wait_for > host: "{{ ec2 }}" > state: started > delay: 5 > timeout: 200 > - include: ec2-configure.yml > > Now the configuring script is as follows > > - name: Configure EC2 server > hosts: tag_Name_EC2 > user: ec2-user > sudo: True > gather_facts: True > tasks: > - name: Install nodejs related packages > yum: name={{ item }} enablerepo=epel state=present > with_items: > - nodejs > - npm > > However when the configure script is called, the second script results > into no hosts found. If I execute the ec2-configure.yml just alone and if > the EC2 server is up & running then it is able to find it and configure it. > > I added the wait_for to make sure that the instance is in running state > before the ec2-configure.yml is called. > > Would appreciate if anyone can point my error. Thanks > > -- > 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/6855782c-0a6d-4d04-aceb-7e07c7e35ed1%40googlegroups.com > <https://groups.google.com/d/msgid/ansible-project/6855782c-0a6d-4d04-aceb-7e07c7e35ed1%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- 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/CAH%2BKTJ7uYT2b0GKr-7vt4bzBkKjV1QnfJbQoZ3pvYupBFcgOzQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
