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.

Reply via email to