Note
This lookup plugin is part of the vmware.vmware_rest collection (version 4.8.1).
You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.
To install it, use: ansible-galaxy collection install vmware.vmware_rest. You need further requirements to be able to use this lookup plugin, see Requirements for details.
To use it in a playbook, specify: vmware.vmware_rest.folder_moid.
New in vmware.vmware_rest 2.1.0
version 5.0.0
This plugin will not work with ansible-core 2.19 and above. Refer to the migration documentation for migration examples.
Use vmware.vmware.moid_from_path instead.
The below requirements are needed on the local controller node that executes this lookup.
Parameter | Comments |
|---|---|
Terms string / required | The absolute folder path to the object you would like to lookup. Folder paths always start with the datacenter name, and then the object type (host, vm, network, datastore). If the object is in a sub folder, the sub folder path should be added after the object type (for example /my_dc/vm/some/sub_folder/vm_name_to_lookup). Enter the object or folder names as seen in the VCenter GUI. Do not escape spaces or special characters. |
This describes keyword parameters of the lookup. These are the values key1=value1, key2=value2 and so on in the following examples: lookup('vmware.vmware_rest.folder_moid', key1=value1, key2=value2, ...) and query('vmware.vmware_rest.folder_moid', key1=value1, key2=value2, ...)
Parameter | Comments |
|---|---|
object_type string | Should not be set by the user, it is set internally when using a specific lookup plugin. Describes the type of object to lookup. Example, cluster, datacenter, datastore, etc. Default: |
vcenter_hostname string / required | |
vcenter_password string / required | |
vcenter_rest_log_file string | You can use this optional parameter to set the location of a log file. This file will be used to record the HTTP REST interactions. The file will be stored on the host that runs the module. Configuration:
|
vcenter_username string / required | |
vcenter_validate_certs boolean | Allows connection when SSL certificates are not valid. Set to Choices:
Configuration:
|
Note
lookup('vmware.vmware_rest.folder_moid', term1, term2, key1=value1, key2=value2) and query('vmware.vmware_rest.folder_moid', term1, term2, key1=value1, key2=value2)
#
#
# The examples below assume you have a datacenter named 'my_dc' and a host folder structure like path/to/my_folder.
# Replace these values as needed for your environment.
#
#
#
# Authentication / Connection Arguments
#
# You can explicitly set the connection arguments in each lookup. This may be clearer for some use cases
- name: Pass In Connection Arguments Explicitly
ansible.builtin.debug:
msg: >-
{{ lookup('vmware.vmware_rest.folder_moid', '/my_dc/path/to/my_folder',
vcenter_hostname="vcenter.test",
vcenter_username="[email protected]",
vcenter_password="1234") }}
# Alternatively, you can add the connection arguments to a dictionary variable, and then pass that variable to the
# lookup plugins. This makes the individual lookup plugin calls simpler
- name: Example Playbook
hosts: all
vars:
connection_args:
vcenter_hostname: "vcenter.test"
vcenter_username: "[email protected]"
vcenter_password: "1234"
tasks:
# Add more tasks or lookups as needed, referencing the same connection_args variable
- name: Lookup MoID of the object
ansible.builtin.debug:
msg: "{{ lookup('vmware.vmware_rest.folder_moid', '/my_dc/path/to/my_folder', **connection_args) }}"
# Finally, you can also leverage the environment variables associated with each connection arg, and avoid passing
# extra args to the lookup plugins
- name: Use a lookup plugin with VMWARE_* environment variables set
ansible.builtin.debug:
msg: "{{ lookup('vmware.vmware_rest.folder_moid', '/my_dc/path/to/my_folder') }}"
#
# Folder Search Path Examples
#
# Due to a known issue, duplicate named folders in a datacenter are not searchable with this lookup.
# For example, you cannot reliably get a host folder named 'test_folder' when a vm folder named 'test_folder'
# exists.
#
# https://github.com/ansible-collections/vmware.vmware_rest/issues/500
- name: Lookup Folder Named 'my_folder' in Datacenter 'my_dc'
ansible.builtin.debug:
msg: "{{ lookup('vmware.vmware_rest.folder_moid', '/my_dc/my_folder') }}"
#
# Usage in Playbooks
#
#
# The lookup plugin can be used to simplify your playbook. Here is an example of how you might use it.
#
# Without the lookup, this takes two modules which both run on the remote host. This can slow down execution
# and adds extra steps to the playbook:
- name: Retrieve details about a folder named 'my_folder'
vmware.vmware_rest.vcenter_cluster_info:
names:
- my_folder
register: my_foler_info
- name: Create a VM
vmware.vmware_rest.vcenter_vm:
placement:
folder: "{{ my_foler_info.value[0].folder }}"
name: test_vm1
guest_OS: RHEL_7_64
hardware_version: VMX_11
memory:
size_MiB: 1024
disks:
- type: SATA
new_vmdk:
name: first_disk
capacity: 3200
# With the lookup, playbooks are shorter, quicker, and more intuitive:
- name: Create a VM
vmware.vmware_rest.vcenter_vm:
placement:
folder: "{{ lookup('vmware.vmware_rest.folder_moid', '/my_dc/path/to/my_folder') }}"
name: test_vm1
guest_OS: RHEL_7_64
hardware_version: VMX_11
memory:
size_MiB: 1024
disks:
- type: SATA
new_vmdk:
name: first_disk
capacity: 3200
Key | Description |
|---|---|
Return value string | MoID of the vSphere folder object Returned: success Sample: |
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/vmware/vmware_rest/folder_moid_lookup.html