Hi,

There's a loop indeed, but I thinks there's something wrong in your variable 
because it is looping with
first iteration item.key ==> 'instance"
second iteration item.key ==> 'attempts'
third_iteration item.key ==> 'changed',
fourth iteration item.key ==> 'failed'

So it's more a bug in your variable you are using than the loop itself which 
the problem lies...

Regards,

JYL

17 octobre 2017 13:27 "Mariano Obarrio Miles"  a écrit:
Hi Sebastien, 
I try with a loop but the result it's the same. Only add one of both. Learn05 
(.232.141) 
The loop: 
 - name: DEBUG Show inventory_hostname
debug: msg="inventory_hostname {{inventory_hostname}}"
- name: Add_host with Loop
add_host:
name: "{{item.value.ipv4}}"
groups: in-memory-vms
ansible_ssh_host: "{{item.value.ipv4}}"
ansible_distribution: "CentOS"
ansible_system: "Linux"
ansible_ssh_private_key_file: /root/.ssh/ansible.pem
with_dict: "{{ instance_facts }}"
when: item.key in ['instance']
changed_when: false
When execute the new playbook, only added learn05, but the debug in "TASK 
[vmware : DEBUG Show inventory_hostname]" show two hosts. 
In the common role I added a debug line "TASK [common : debug]" to show all 
groups outside of vmware role. If you can see the in-memory-vms group have only 
one IP learn05 (.232.141) 
[root@learn01 ansible]# ./createvm.yml 
 PLAY [centos-vms] 
***********************************************************************************************************************************************************************************************************************
TASK [vmware : include_tasks] 
***********************************************************************************************************************************************************************************************************
included: 
/var/adm/ssoo/opt/ansible/roles/vmware/tasks/create_vms_from_template.yml for 
learn05, learn06
TASK [vmware : Create VM from Template] 
*************************************************************************************************************************************************************************************************
changed: [learn06 -> localhost]
changed: [learn05 -> localhost]
TASK [vmware : Espera asignacion de IP via DHCP] 
****************************************************************************************************************************************************************************************
Pausing for 60 seconds
(ctrl+C then 'C' = continue early, ctrl+C then 'A' = abort)
ok: [learn05]
TASK [vmware : Gather instance facts] 
***************************************************************************************************************************************************************************************************
ok: [learn06]
ok: [learn05]
TASK [vmware : DEBUG Show inventory_hostname] 
*******************************************************************************************************************************************************************************************
ok: [learn05] => {
"msg": "inventory_hostname learn05"
}
ok: [learn06] => {
"msg": "inventory_hostname learn06"
}
TASK [vmware : Add_host with Loop] 
******************************************************************************************************************************************************************************************************
ok: [learn05] => (item={'key': u'instance', 'value': {u'hw_name': u'learn05', 
u'hw_power_status': u'poweredOn', u'hw_processor_count': 1, u'hw_memtotal_mb': 
256, u'module_hw': True, u'snapshots': [], u'customvalues': {}, 
u'hw_guest_full_name': u'CentOS 4/5/6/7 (64-bit)', u'hw_interfaces': [u'eth0'], 
u'hw_guest_id': u'centos64Guest', u'current_snapshot': None, u'ipv6': None, 
u'guest_tools_version': u'10249', u'hw_eth0': {u'macaddress': 
u'00:50:56:81:16:fe', u'addresstype': u'assigned', u'macaddress_dash': 
u'00-50-56-81-16-fe', u'label': u'Network adapter 1', u'ipaddresses': 
[u'50.0.232.141'], u'summary': u'DVSwitch: 79 24 01 50 c4 9c af f0-ce 89 4a 9a 
00 1a d2 e8'}, u'hw_product_uuid': u'4201f0a4-fa12-f243-a715-227d401193bf', 
u'annotation': u'', u'guest_tools_status': u'guestToolsRunning', u'ipv4': 
u'50.0.232.141'}})
skipping: [learn05] => (item={'key': 'attempts', 'value': 1})
skipping: [learn05] => (item={'key': 'changed', 'value': False})
skipping: [learn05] => (item={'key': u'failed', 'value': False})
PLAY [in-memory-vms] 
********************************************************************************************************************************************************************************************************************
TASK [common : debug] 
*******************************************************************************************************************************************************************************************************************
ok: [50.0.232.141] => {
"groups": {
"all": [
"learn05", 
"learn06", 
"taurus", 
"learn01", 
"learn02", 
"learn03", 
"learn04", 
"50.0.232.141"
], 
"centos-vms": [
"learn05", 
"learn06"
], 
"in-memory-vms": [
"50.0.232.141"
], 
"solaris": [
"taurus"
], 
"ungrouped": []
}
}

...
...
...

PLAY RECAP 
******************************************************************************************************************************************************************************************************************************
50.0.232.141 : ok=14 changed=0 unreachable=0 failed=0
learn05 : ok=6 changed=1 unreachable=0 failed=0
learn06 : ok=4 changed=1 unreachable=0 failed=0 
El lunes, 16 de octubre de 2017, 10:33:56 (UTC+2), Mariano Obarrio Miles 
escribió:
Hi all, 
I don't know what I do wrong... I try create VMs (vmware) and provisioning 
after that. But when try add this new vms to inventory with add_host only add 
one. 
The task "Gather VM facts (vmware_guest_facts)" recover 2 IPs but then "Add 
Host to inventory" only add one IP to in-memory inventory. 
I try multiples scenarios (with_dict/set_fact....) to add_host to inventory but 
nothing work! 
Any idias what I do wrong, any suggestions? 
Thxs, 
Mariano 
ansible 2.5.0
config file = /var/adm/ssoo/opt/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', 
u'/usr/share/ansible/plugins/modules']
ansible python module location = 
/usr/lib/python2.7/site-packages/ansible-2.5.0-py2.7.egg/ansible
executable location = /usr/bin/ansible
python version = 2.7.5 (default, Aug 4 2017, 00:39:18) [GCC 4.8.5 20150623 (Red 
Hat 4.8.5-16)]  
# cat /etc/ansible/hosts 
[centos-vms]
learn[05:06] disk='10' datastore='LUN24_VNX5600_MIRROR' 
network='dvPortGroupCentral' memory='256' cpucount='1' osid='centos64Guest' 
ansible_ssh_private_key_file=/root/.ssh/learning.pem ansible_user=root 
ansible_password=xxxxxxx learn[05:06].node.consul=learn[05:06] 
#!/usr/bin/ansible-playbook

---
- hosts: centos-vms
gather_facts: false
connection: local
user: root

roles:
- vmware
- hosts: in-memory-vms
gather_facts: false
connection: local
user: root
roles:
- common  
# cat roles/vmware/tasks/main.yml 
---

- include_tasks: create_vms_from_template.yml
tags:
- CreateVM from Template  
# cat roles/vmware/tasks/create_vms_from_template.yml 
---
- name: Create VM from Template
vsphere_guest:
vcenter_hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_user }}"
password: "{{ vcenter_pass }}"
validate_certs: no
guest: "{{ inventory_hostname }}"
from_template: yes
template_src: "CentOS_7.3_x64_1511-GPT-20GB_HDD"
cluster: VMwareAPP
resource_pool: "/Resources/SSOO"
vm_extra_config:
notes: "{{ notes }}"

- name: Espera asignacion de IP via DHCP
pause: seconds=60

- name: Gather VM facts
vsphere_guest:
vcenter_hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_user }}"
password: "{{ vcenter_pass }}"
vmware_guest_facts: yes
validate_certs: no
guest: "{{ inventory_hostname }}"
register: vm_facts

- name: IP address info
debug: msg="{{ vm_facts.ansible_facts.hw_eth0.ipaddresses[0] }} {{ 
inventory_hostname }}"

- name: Add Host to inventory
add_host:
hostname: "{{ vm_facts.ansible_facts.hw_eth0.ipaddresses[0] }}"
groups: in-memory-vms
ansible_ssh_host: "{{ vm_facts.ansible_facts.hw_eth0.ipaddresses[0] }}"
ansible_user: root
ansible_password: xxxxxxxxx
ansible_distribution: "CentOS"
ansible_system: "Linux"
- name: 'Inventory'
debug: var=groups
- name: 'Stop execution'
fail: msg="Playbook stoped."  
[root@learn01 ansible]# ./createvm.yml  
PLAY [centos-vms] 
***********************************************************************************************************************************************************************************************************
TASK [vmware : include_tasks] 
***********************************************************************************************************************************************************************************************
included: 
/var/adm/ssoo/opt/ansible/roles/vmware/tasks/create_vms_from_template.yml for 
learn06, learn05
TASK [vmware : Create VM from Template] 
*************************************************************************************************************************************************************************************
ok: [learn06]
ok: [learn05]
TASK [vmware : Espera asignacion de IP via DHCP] 
****************************************************************************************************************************************************************************
Pausing for 60 seconds
(ctrl+C then 'C' = continue early, ctrl+C then 'A' = abort)
Press 'C' to continue the play or 'A' to abort
ok: [learn05]
TASK [vmware : Gather VM facts] 
*********************************************************************************************************************************************************************************************
ok: [learn05]
ok: [learn06]
TASK [vmware : IP address info] 
*********************************************************************************************************************************************************************************************
ok: [learn05] => {
"msg": "50.0.232.157 learn05"
}
ok: [learn06] => {
"msg": "50.0.232.158 learn06"
}
TASK [vmware : Add Host to inventory] 
***************************************************************************************************************************************************************************************
changed: [learn05]
TASK [vmware : Inventory] 
***************************************************************************************************************************************************************************************************
ok: [learn05] => {
"groups": {
"all": [
"learn05", 
"learn06", 
"taurus", 
"learn01", 
"learn02", 
"learn03", 
"learn04", 
"50.0.232.157"
], 
"centos-vms": [
"learn05", 
"learn06"
], 
"in-memory-vms": [

"50.0.232.157"  {
"groups": {
"all": [
"learn05", 
"learn06", 
"taurus", 
"learn01", 
"learn02", 
"learn03", 
"learn04", 
"50.0.232.157"
], 
"centos-vms": [
"learn05", 
"learn06"
], 
"in-memory-vms": [

"50.0.232.157"  {"changed": false, "failed": true, "msg": "Playbook stoped."}
fatal: [learn06]: FAILED! => {"changed": false, "failed": true, "msg": 
"Playbook stoped."}
to retry, use: --limit @/var/adm/ssoo/opt/ansible/createvm.retry
PLAY RECAP 
******************************************************************************************************************************************************************************************************************
learn05 : ok=7 changed=1 unreachable=0 failed=1
learn06 : ok=5 changed=0 unreachable=0 failed=1   
  --
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] 
(mailto:[email protected]).
To post to this group, send email to [email protected] 
(mailto:[email protected]).
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/16e3f17c-e923-4d9e-9631-794cc8ce128c%40googlegroups.com
 
(https://groups.google.com/d/msgid/ansible-project/16e3f17c-e923-4d9e-9631-794cc8ce128c%40googlegroups.com?utm_medium=email&utm_source=footer).
For more options, visit https://groups.google.com/d/optout 
(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/0ec27c9ce70589da734e3fd6a1814792%40wwws.lenhof.eu.org.
For more options, visit https://groups.google.com/d/optout.

Reply via email to