It looks like your problem is using the "vm_hostname" in the task.
In my experiments, I either use "{{ inventory_hostname }}" for a per
vm/host/target definition in the hosts group or a "with_items" loop:
- name: Find Guest's Folder using name
vmware_guest_find:
hostname: "{{ vmware_esxi.hostname }}"
validate_certs: "{{ vmware_esxi.validate_certs }}"
username: "{{ vmware_esxi.username }}"
password: "{{ vmware_esxi.password }}"
datacenter: "{{ vmware_esxi.datacenter }}"
name: "{{ item }}"
delegate_to: localhost
tags: findvm
with_items:
- "{{ vm_hostname }}"
On Wednesday, May 9, 2018 at 9:52:01 AM UTC-5, Ted wrote:
>
> Hi,
>
> I'm having issues with getting basic VMware modules working. For example
> vmware_guest_find. I'm running the below from a RHEL 7 server.
>
> Versions installed:
> pyvmomi 6.7.0
> ansible 2.5.2
> vSphere vCenter 6.0
>
>
>
> playbook:
> ---
> - hosts: vms
>
> roles:
> - vmware-template
>
> Role task:
> ---
> # tasks file for vmware-template
>
> - name: Find Guest's Folder using name
> vmware_guest_find:
> hostname: "{{ vmware_esxi.hostname }}"
> validate_certs: "{{ vmware_esxi.validate_certs }}"
> username: "{{ vmware_esxi.username }}"
> password: "{{ vmware_esxi.password }}"
> datacenter: "{{ vmware_esxi.datacenter }}"
> name: "{{ vm_hostname }}"
> delegate_to: localhost
> tags: findvm
>
> Role vars:(sensitive info hashed out)
>
> ---
> # vars file for vmware-template
> vmware_esxi:
> hostname: #######
> validate_certs: no
> username: #######
> password: ########
> datacenter: #######
>
> vm_hostname:
> - testvm01
>
> Hosts file:
> [local]
> localhost
>
> [vms]
> testvm01
>
>
>
> Playbook run: (sensitive info hashed out)
>
> # ansible-playbook -i hosts vmware-template.yml --tags findvm -vvvv
> ansible-playbook 2.5.2
> config file = /etc/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
> executable location = /bin/ansible-playbook
> python version = 2.7.5 (default, May 3 2017, 07:55:04) [GCC 4.8.5
> 20150623 (Red Hat 4.8.5-14)]
> Using /etc/ansible/ansible.cfg as config file
> setting up inventory plugins
> Set default localhost to localhost
> Parsed /etc/ansible/plays/hosts inventory source with ini plugin
> Trying secret FileVaultSecret(filename='########') for vault_id=default
> Loading callback plugin default of type stdout, v2.0 from /usr/lib/python2
> .7/site-packages/ansible/plugins/callback/default.pyc
> PLAYBOOK: vmware-template.yml
> **************************************************************************************************************************************************************
> 1 plays in vmware-template.yml
> PLAY [vms]
> *********************************************************************************************************************************************************************************
> META: ran handlers
> TASK [vmware-template : Find Guest's Folder using name]
> ************************************************************************************************************************************
> task path: /etc/ansible/roles/vmware-template/tasks/main.yml:52
> Using module file
> /usr/lib/python2.7/site-packages/ansible/modules/cloud/vmware/vmware_guest_find.py
> <localhost> ESTABLISH LOCAL CONNECTION FOR USER: root
> <localhost> EXEC /bin/sh -c 'echo ~ && sleep 0'
> <localhost> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo
> /root/.ansible/tmp/ansible-tmp-1525877042.27-257095638403837 `" && echo
> ansible-tmp-1525877042.27-257095638403837="` echo
> /root/.ansible/tmp/ansible-tmp-1525877042.27-257095638403837 `" ) &&
> sleep 0'
> <localhost> PUT /root/.ansible/tmp/ansible-local-24670bWH_Sz/tmptyQ4GF TO
> /root/.ansible/tmp/ansible-tmp-1525877042.27-257095638403837/vmware_guest_find.py
> <localhost> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-
> 1525877042.27-257095638403837/ /root/.ansible/tmp/ansible-tmp-
> 1525877042.27-257095638403837/vmware_guest_find.py && sleep 0'
> <localhost> EXEC /bin/sh -c '/usr/bin/python /root/.ansible/tmp/ansible-
> tmp-1525877042.27-257095638403837/vmware_guest_find.py && sleep 0'
> <localhost> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-
> 1525877042.27-257095638403837/ > /dev/null 2>&1 && sleep 0'
> fatal: [testvm01 -> localhost]: FAILED! => {
> "changed": false,
> "invocation": {
> "module_args": {
> "datacenter": "#######",
> "hostname": "###########",
> "name": "['##########']",
> "password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
> "port": ###,
> "username": "#####",
> "uuid": null,
> "validate_certs": false
> }
> },
> "msg": "Unable to find folders for virtual machine ['testvm01']"
> }
> to retry, use: --limit @/etc/ansible/plays/vmware-template.retry
> PLAY RECAP
> *********************************************************************************************************************************************************************************
> testvm01 : ok=0 changed=0 unreachable=0 failed=1
>
>
>
> This is a pretty straight forward task but I don't understand why its
> failing. The vm exists, its powered on, VMware tools is running. I can see
> a new connection opening under the sessions tab in the vSphere client. I
> can query the VM from powercli.........
>
> Does pyvmomi have to be installed on the vCenter host?
>
> Any suggestions / comments are most welcome!
>
> Thanks,
>
> Ted
>
>
>
>
--
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/403d80a1-ed5b-4c0a-bcbc-944c67d0bbf1%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.