Модуль community.general.xenserver_guest — управление виртуальными машинами на хосте или в пуле Citrix Hypervisor/XenServer
Примечание
Этот модуль входит в коллекцию community.general (версия 12.6.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.general. Для использования этого модуля требуются дополнительные компоненты; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.general.xenserver_guest.
Общие сведения
- Этот модуль позволяет создавать виртуальные машины на основе шаблонов или других виртуальных машин, изменять различные компоненты виртуальных машин, например сеть и диск, переименовывать виртуальные машины и удалять их вместе со связанными компонентами.
Требования
Следующие компоненты требуются на хосте, на котором выполняется этот модуль.
- XenAPI
Параметры
Параметр | Комментарии |
|---|---|
cdrom dictionary | Конфигурация CD-ROM для VM. Все параметры чувствительны к регистру. |
|
iso_name string |
Имя файла ISO-образа из одной из библиотек ISO XenServer (подразумевает Обязателен, если для |
|
type string |
Тип CD-ROM. Если задано Варианты:
|
custom_params list / elements=dictionary | Задаёт список пользовательских параметров VM для установки. Полезно опытным пользователям, знакомым с управлением параметрами VM через интерфейс командной строки Объект пользовательского значения содержит два поля: |
|
key string / обязательный |
Имя параметра VM. |
|
value any / обязательный |
Значение параметра VM. |
disks псевдонимы: disk list / elements=dictionary | Список дисков для добавления в VM. Все параметры чувствительны к регистру. Удаление или отключение существующих дисков VM не поддерживается. Для новых дисков необходимо указать либо Для изменения размера диска VM необходимо выключить. |
|
name псевдонимы: name_label string |
Имя диска. |
|
name_desc string |
Описание диска. |
|
size string |
Размер диска с указанием единицы измерения. Допустимые единицы: Если единица измерения не указана, размер считается заданным в байтах. |
|
size_b string |
Размер диска в байтах. |
|
size_gb string |
Размер диска в гигабайтах. |
|
size_kb string |
Размер диска в килобайтах. |
|
size_mb string |
Размер диска в мегабайтах. |
|
size_tb string |
Размер диска в терабайтах. |
|
sr string |
Репозиторий хранилища, в котором создаётся диск. Если не указан, используется репозиторий по умолчанию. Нельзя использовать для перемещения диска в другой репозиторий хранилища. |
|
sr_uuid string |
UUID репозитория хранилища, в котором создаётся диск. Используйте, если имя репозитория хранилища не уникально. |
folder string | |
force boolean | Игнорировать предупреждения и выполнить действия. Этот параметр полезен для удаления работающей VM или перенастройки параметров VM, требующих её выключения. Варианты:
|
hardware dictionary | Управление параметрами оборудования VM. Для изменения этих параметров VM необходимо выключить. |
|
memory_mb integer |
Объём памяти в МБ. |
|
num_cpu_cores_per_socket integer |
Количество ядер на сокет. |
|
num_cpus integer |
Количество процессоров. |
home_server string | Имя хоста XenServer, являющегося домашним сервером для VM. Этот параметр чувствителен к регистру. |
hostname псевдонимы: host, pool string | Имя хоста или IP-адрес хоста XenServer либо главного узла пула XenServer. Если значение не указано в задаче, вместо него используется значение переменной окружения По умолчанию: |
is_template boolean | Преобразовать VM в шаблон. Варианты:
|
linked_clone boolean | Создавать ли связанный клон из шаблона, существующей VM или снимка. Если задано Это соответствует параметру Варианты:
|
name псевдонимы: name_label string | Имя управляемой VM. Имена VM, работающих на XenServer, не обязательно уникальны. Если найдено несколько VM с одинаковым именем, модуль завершится с ошибкой. Если несколько VM имеют одинаковое имя, используйте Этот параметр чувствителен к регистру. |
name_desc string | Описание VM. |
networks псевдонимы: network list / elements=dictionary | Список сетей (в порядке следования сетевых карт). Все параметры чувствительны к регистру. Для новых сетевых карт обязательно указать имя. Все остальные параметры во всех случаях необязательны. |
|
gateway string |
Статический шлюз IPv4. |
|
gateway6 string |
Статический шлюз IPv6. |
|
ip string |
Статический адрес IPv4 (подразумевает |
|
ip6 string |
Статический адрес IPv6 (подразумевает |
|
mac string |
Настройка MAC-адреса интерфейса. |
|
name псевдонимы: name_label string |
Имя сети XenServer, к которой подключается сетевой интерфейс. |
|
netmask string |
Статическая маска подсети IPv4, необходимая для |
|
type string |
Тип назначения IPv4-адреса. Значение В некоторых операционных системах это может означать настройку DHCP (например, в Windows) или ненастроенный интерфейс (например, в Linux). Варианты:
|
|
type6 string |
Тип назначения IPv6-адреса. Значение Варианты:
|
password псевдонимы: pass, pwd string | Пароль для подключения к XenServer. Если значение не указано в задаче, вместо него используется значение переменной окружения |
state string | Задаёт требуемое состояние VM. Если для Если для Если для Если для Варианты:
|
state_change_timeout integer | По умолчанию модуль бесконечно ожидает получения VM IP-адреса, если задано Если для этого параметра задано положительное значение, модуль ожидает изменения состояния указанное количество секунд. При превышении времени ожидания модуль выдаёт сообщение об ошибке. По умолчанию: |
template псевдонимы: template_src string | Имя шаблона, существующей VM (должна быть выключена) или снимка, используемого для создания VM. Имена шаблонов/VM/снимков в XenServer не обязательно уникальны. Если найдено несколько шаблонов с одинаковым именем, модуль завершится с ошибкой. Если несколько шаблонов/VM/снимков имеют одинаковое имя, используйте Если VM уже существует, этот параметр игнорируется. Этот параметр чувствителен к регистру. |
template_uuid string | UUID шаблона, существующей VM или снимка, используемого для создания VM. Обязателен, если имя шаблона не уникально. |
username псевдонимы: admin, user string | Имя пользователя для подключения к XenServer. Если значение не указано в задаче, вместо него используется значение переменной окружения По умолчанию: |
uuid string | UUID управляемой VM, если он известен. Это уникальный идентификатор XenServer. Обязателен, если имя не уникально. Обратите внимание: указанный UUID игнорируется при создании VM, поскольку XenServer создаёт UUID самостоятельно. |
validate_certs boolean | Разрешает подключение, если SSL-сертификаты недействительны. Установите значение Если значение не указано в задаче, вместо него используется значение переменной окружения Варианты:
|
wait_for_ip_address boolean | Ожидать, пока XenServer обнаружит IP-адрес VM. Если для Для корректной работы на VM должны быть предварительно установлены XenServer Tools. Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: полная | Может работать в режиме |
diff_mode | Поддержка: отсутствует | В режиме сравнения возвращает сведения об изменениях (или возможных изменениях в |
Примечания
Примечание
- Минимальная поддерживаемая версия XenServer — 5.6.
- Модуль протестирован с XenServer 6.5, 7.1, 7.2, 7.6, Citrix Hypervisor 8.0, XCP-ng 7.6 и 8.0.
- Чтобы получить библиотеку XenAPI Python, просто запустите
pip install XenAPIна узле управления Ansible. Библиотеку также можно найти в SDK Citrix Hypervisor/XenServer (его можно скачать с сайта Citrix). Чтобы использовать её, скопируйте файлXenAPI.pyиз SDK в каталог site-packages Python на узле управления Ansible. Последнюю версию библиотеки также можно получить на GitHub: https://raw.githubusercontent.com/xapi-project/xen-api/master/scripts/examples/python/XenAPI/XenAPI.py. - Если в
hostnameне указана схема, модуль по умолчанию используетhttp://, посколькуhttps://проблематичен в большинстве конфигураций. Убедитесь, что вы обращаетесь к узлу XenServer из доверенной среды, либо явно используйте схемуhttps://. - Чтобы использовать схему
https://дляhostname, необходимо либо импортировать сертификат узла в хранилище сертификатов ОС, либо использоватьvalidate_certs=false, для которого требуется библиотека XenAPI из SDK XenServer 7.2 или новее и Python 2.7.9 или новее. - Настройка сети в гостевой ОС с помощью параметров
networks[].type,networks[].ip,networks[].gatewayи т. д. поддерживается в XenServer 7.0 и новее для гостевых систем Windows с использованием официальной поддержки настройки сети в XenServer Guest agent. Модуль пытается определить, доступна ли такая поддержка, и использовать её; в противном случае он использует собственный способ настройки через xenstore. Поскольку XenServer Guest agent поддерживает только типы сетевой конфигурации None и Static, где None означает интерфейс, настроенный на DHCP, значенияnetworks[].typeиnetworks[].type6noneиdhcpимеют одинаковый эффект. Подробнее: https://web.archive.org/web/20180218110151/https://xenserver.org/blog/entry/set-windows-guest-vm-static-ip-address-in-xenserver.html. - На платформах, не поддерживающих официальную настройку сети в гостевой ОС, сетевые параметры записываются в ключ xenstore
vm-data/networks/<vif_device>. Параметры можно просмотреть с помощью инструментовxenstore lsиxenstore readв гостевых системах \*nix или через интерфейс WMI в гостевых системах Windows. Их также можно найти в ключе фактов ВМinstance.xenstore_data, возвращаемых модулем. Пользователь должен реализовать сценарии, запускаемые при загрузке, или пользовательский агент, который считывает параметры из xenstore и настраивает сеть с заданными параметрами. Обратите внимание: чтобы данные xenstore стали доступны внутри гостевой системы, необходимо перезапустить ВМ, поэтому модуль требует перезапуска ВМ при изменении любого параметра. Это ограничение XenAPI и xenstore. С учётом этих ограничений настройка сети через xenstore наиболее полезна для первоначальной настройки вновь развёрнутых ВМ и гораздо менее подходит для перенастройки существующих. Подробнее: https://support.citrix.com/article/CTX226713.
Примеры
- name: Create a VM from a template
community.general.xenserver_guest:
hostname: "{{ xenserver_hostname }}"
username: "{{ xenserver_username }}"
password: "{{ xenserver_password }}"
folder: /testvms
name: testvm_2
state: poweredon
template: CentOS 7
disks:
- size_gb: 10
sr: my_sr
hardware:
num_cpus: 6
num_cpu_cores_per_socket: 3
memory_mb: 512
cdrom:
type: iso
iso_name: guest-tools.iso
networks:
- name: VM Network
mac: aa:bb:dd:aa:00:14
wait_for_ip_address: true
delegate_to: localhost
register: deploy
- name: Create a VM template
community.general.xenserver_guest:
hostname: "{{ xenserver_hostname }}"
username: "{{ xenserver_username }}"
password: "{{ xenserver_password }}"
folder: /testvms
name: testvm_6
is_template: true
disk:
- size_gb: 10
sr: my_sr
hardware:
memory_mb: 512
num_cpus: 1
delegate_to: localhost
register: deploy
- name: Rename a VM (requires the VM's UUID)
community.general.xenserver_guest:
hostname: "{{ xenserver_hostname }}"
username: "{{ xenserver_username }}"
password: "{{ xenserver_password }}"
uuid: 421e4592-c069-924d-ce20-7e7533fab926
name: new_name
state: present
delegate_to: localhost
- name: Remove a VM by UUID
community.general.xenserver_guest:
hostname: "{{ xenserver_hostname }}"
username: "{{ xenserver_username }}"
password: "{{ xenserver_password }}"
uuid: 421e4592-c069-924d-ce20-7e7533fab926
state: absent
delegate_to: localhost
- name: Modify custom params (boot order)
community.general.xenserver_guest:
hostname: "{{ xenserver_hostname }}"
username: "{{ xenserver_username }}"
password: "{{ xenserver_password }}"
name: testvm_8
state: present
custom_params:
- key: HVM_boot_params
value: {"order": "ndc"}
delegate_to: localhost
- name: Customize network parameters
community.general.xenserver_guest:
hostname: "{{ xenserver_hostname }}"
username: "{{ xenserver_username }}"
password: "{{ xenserver_password }}"
name: testvm_10
networks:
- name: VM Network
ip: 192.168.1.100/24
gateway: 192.168.1.1
- type: dhcp
delegate_to: localhost
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
changes список / элементы=строка | Обнаруженные или внесённые изменения в ВМ. Возвращается: всегда Пример: |
instance словарь | Метаданные о ВМ. Возвращается: всегда Пример: |
Ссылки на коллекцию
© 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/community/general/xenserver_guest_module.html