problems with add_host

Hi Guys,

I am having some issues getting add_host to create a dynamic inventory correctly.

Here is the relevant section from my playbook:

`

tasks:
- name: Connect to Cloud
# assume RC file has already been sourced
os_auth:

- name: launch web instances
os_server:
name=web0{{ item }}
flavor={{ flavor }}
image={{ image }}
key_name={{ key_name }}
state=present
wait=true
network={{ network }}
security_groups={{ security_groups }}
auto_ip=true
register: newnodes
with_sequence:
count={{ count }}

# - debug:
# var: newnodes

- name: add nodes to runtime inventory
add_host:
name={{ item.name }}
# group=workers
# ansible_host={{ item.public_v4 }}
with_items:
- "{{ newnodes.results.server }}"

`

The tasks ‘Connect to Cloud’ and ‘launch web servers’ work fine.

I also ran debug on the newnodes variable and it is returning the correct data. The problem is that when I try to run the ‘add nodes to runtime inventory’ task I get the following:


[DEPRECATION WARNING]: Skipping task due to undefined Error, in the future this will be a fatal error… This feature will be removed in a future release. Deprecation warnings can be disabled by setting
deprecation_warnings=False in ansible.cfg.

`
``

`

If I run the playbook with -vvvv I get no further information. I have also tried various combinations of the variable name 'newnodes.results.server' in the with_items section but no joy.

Anyone able to see what I have missed here?

Cheers,
Glyn

``

That isn’t how you invoke a dynamic inventory…

There’s an example of how an openstack dynamic inventory script is used on in the Ansible.com docs: http://docs.ansible.com/ansible/intro_dynamic_inventory.html#other-inventory-scripts

An ansible dynamic inventory script returns valid JSON that defines hosts, groups, etc. – and if it wants to return all the info for all nodes at once, it can set per-host values in a _meta group.7

Hi Uditha,

Yes I realise that is an option but what I am trying to do is use the in-memory inventory see http://docs.ansible.com/ansible/add_host_module.html

This way I can have the same running playbook perform subsequent tasks on the new hosts once they are online.

Cheers,
Glyn