Hi Sebastien,
You have a role to create VMs and other to add_host to inventory? I try
it and send you a feedback soon.
Thxs!
M.
El martes, 17 de octubre de 2017, 14:57:28 (UTC+2), Sebastien Desbois
escribió:
>
> Hello,
>
> For my part, I'm using the way described by JYL.
>
> - include_role:
> name: myrolewhoaddsininventory
> with_items: "{{ mylist }}"
>
> the add_host task is included amonfg other things in the role.
> And at the end, I get the in-memory inventory properly filed.
>
>
>
> Le mardi 17 octobre 2017 13:25:53 UTC+2, 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" *<---- ONLY ONE*
>>> ],
>>> "solaris": [
>>> "taurus"
>>> ],
>>> "ungrouped": []
>>> }
>>> }
>>> ok: [learn06] => {
>>> "groups": {
>>> "all": [
>>> "learn05",
>>> "learn06",
>>> "taurus",
>>> "learn01",
>>> "learn02",
>>> "learn03",
>>> "learn04",
>>> "50.0.232.157"
>>> ],
>>> "centos-vms": [
>>> "learn05",
>>> "learn06"
>>> ],
>>> "in-memory-vms": [
>>>
>>> "50.0.232.157" *<---- ONLY ONE*
>>> ],
>>> "solaris": [
>>> "taurus"
>>> ],
>>> "ungrouped": []
>>> }
>>> }
>>>
>>>
>>> TASK [vmware : Stop execution]
>>> **********************************************************************************************************************************************************************************************
>>> fatal: [learn05]: FAILED! => {"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].
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/41f9b348-564d-4d1f-937f-82392984948b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.