vmware.vmware_rest.network_moid lookup — поиск MoID сетевых объектов vSphere с помощью REST API vCenter
Примечание
Этот плагин поиска входит в коллекцию vmware.vmware_rest (версия 4.10.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в состав ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install vmware.vmware_rest. Для работы с этим плагином поиска могут потребоваться дополнительные зависимости. Подробнее см. в разделе Требования.
Чтобы использовать его в плейбуке, укажите: vmware.vmware_rest.network_moid.
Добавлено в vmware.vmware_rest 2.1.0
- УСТАРЕЛО
- Краткое описание
- Требования
- Аргументы
- Именованные параметры
- Примечания
- Примеры
- Возвращаемое значение
- Статус
УСТАРЕЛО
- Удалено в:
-
версии 5.0.0
- Причина:
-
Этот плагин не будет работать с ansible-core версии 2.19 и выше. Примеры миграции см. в документации по миграции.
- Альтернатива:
-
Вместо него используйте vmware.vmware.moid_from_path.
Краткое описание
- Возвращает ссылку на управляемый объект (MoID) сетевого объекта vSphere, расположенного по указанному пути.
- Этот плагин поиска не может различать сети с одинаковыми именами в разных коммутаторах, поскольку REST API vSphere не поддерживает такую возможность; имена сетей должны быть уникальными в пределах указанного пути к центру обработки данных или папке.
Требования
Следующие требования должны быть выполнены на локальном управляющем узле, на котором выполняется этот плагин поиска.
- vSphere 7.0.3 или выше
- python >= 3.6
- aiohttp
Аргументы
Параметр | Комментарии |
|---|---|
Terms string / обязательный | Абсолютный путь к папке объекта, который требуется найти. Пути к папкам всегда начинаются с имени центра обработки данных, а затем указывается тип объекта (host, vm, network, datastore). Если объект находится во вложенной папке, путь к ней следует добавить после типа объекта (например, /my_dc/vm/some/sub_folder/vm_name_to_lookup). Указывайте имена объектов и папок так, как они отображаются в графическом интерфейсе VCenter. Не экранируйте пробелы и специальные символы. |
Именованные параметры
В этом разделе описаны именованные параметры плагина поиска. Это значения key1=value1, key2=value2 и т. д. в следующих примерах: lookup('vmware.vmware_rest.network_moid', key1=value1, key2=value2, ...) и query('vmware.vmware_rest.network_moid', key1=value1, key2=value2, ...)
Параметр | Комментарии |
|---|---|
object_type string | Не следует задавать пользователю: значение устанавливается внутри плагина при использовании конкретного плагина поиска. Определяет тип искомого объекта. Например, cluster, datacenter, datastore и т. д. По умолчанию: |
vcenter_hostname string / обязательный | |
vcenter_password string / обязательный | |
vcenter_rest_log_file string | Этот необязательный параметр позволяет указать расположение файла журнала. Этот файл используется для записи взаимодействий по HTTP REST. Файл будет сохранен на узле, на котором выполняется модуль. Настройка:
|
vcenter_username string / обязательный | |
vcenter_validate_certs boolean | Разрешает подключение, если SSL-сертификаты недействительны. Установите значение Варианты:
Настройка:
|
Примечания
Примечание
- При совместном использовании позиционных и именованных параметров позиционные параметры необходимо указывать перед именованными:
lookup('vmware.vmware_rest.network_moid', term1, term2, key1=value1, key2=value2)иquery('vmware.vmware_rest.network_moid', term1, term2, key1=value1, key2=value2) - Для этого плагина требуется коллекция cloud.common, которая не устанавливается автоматически как зависимость.
- Плагины поиска выполняются на управляющем узле Ansible и используются для получения данных из внешнего ресурса. См. https://docs.ansible.com/ansible/latest/plugins/lookup.html#lookup-plugins
- Плагины этой коллекции позволяют быстро получать идентификаторы ресурсов VMWare и сохранять или использовать их, вместо того чтобы задействовать несколько модулей и задач для выполнения одной и той же операции. Сравнение см. в разделе с примерами.
Примеры
#
#
# The examples below assume you have a datacenter named 'my_dc' and a network named 'my_network'.
# 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.network_moid', '/my_dc/network/my_network',
vcenter_hostname="vcenter.test",
vcenter_username="administrator@vsphere.local",
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: "administrator@vsphere.local"
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.network_moid', '/my_dc/network/my_network', **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.network_moid', '/my_dc/network/my_network') }}"
#
# Network Search Path Examples
#
# Networks are located under the 'network' folder in a datacenter.
# The basic path for a datastore should look like '/<datacenter-name>/network/<network-name>'
- name: Lookup Network Named 'my_network' in Datacenter 'my_dc'
ansible.builtin.debug:
msg: "{{ lookup('vmware.vmware_rest.network_moid', '/my_dc/network/my_network') }}"
# If the network is in a user created 'network' type folder, the path shoud just include the
# datacenter and folder name.
- name: Lookup Network Named 'my_network' in Datacenter 'my_dc' in a Network folder 'production'
ansible.builtin.debug:
msg: "{{ lookup('vmware.vmware_rest.network_moid', '/my_dc/production/my_network') }}"
#
# 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 the network named 'my_network'
vmware.vmware_rest.vcenter_network_info:
names:
- my_network
register: my_network_info
- name: Create a VM
vmware.vmware_rest.vcenter_vm:
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
nics:
- backing:
type: STANDARD_PORTGROUP
network: "{{ my_network_info.value[0].network }}"
# With the lookup, playbooks are shorter, quicker, and more intuitive:
- name: Create a VM
vmware.vmware_rest.vcenter_vm:
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
nics:
- backing:
type: STANDARD_PORTGROUP
network: "{{ lookup('vmware.vmware_rest.network_moid', '/my_dc/network/my_network') }}"
Возвращаемое значение
Ключ | Описание |
|---|---|
Возвращаемое значение string | MoID сетевого объекта vSphere Возвращается: при успешном выполнении Пример: |
Статус
- Этот плагин поиска будет удален в версии 5.0.0. [устарело]
- Подробнее см. в разделе УСТАРЕЛО.
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/vmware/vmware_rest/network_moid_lookup.html