community.general.xenserver_guest модуль — Управление виртуальными машинами, работающими на хосте/пуле Citrix Hypervisor/XenServer
Примечание
Этот модуль входит в состав коллекции community.general (версия 9.5.0).
У вас, возможно, уже установлена эта коллекция, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.general. Для использования этого модуля необходимы дополнительные требования. Подробности см. в разделе Требования.
Для использования в плейбуке укажите: community.general.xenserver_guest.
Описание
- Этот модуль можно использовать для создания новых виртуальных машин из шаблонов или других виртуальных машин, изменения различных компонентов виртуальной машины, таких как сеть и диск, переименования виртуальной машины и удаления виртуальной машины с связанными компонентами.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- XenAPI
Параметры
Параметр | Комментарии |
|---|---|
cdrom dictionary | Конфигурация CD-ROM для виртуальной машины. Все параметры чувствительны к регистру. |
|
iso_name string |
Имя файла образа ISO из одной из библиотек ISO XenServer (подразумевает Обязательно, если |
|
type string |
Тип CD-ROM. С Варианты:
|
custom_params list / elements=dictionary | Определите список пользовательских параметров виртуальной машины для установки на виртуальной машине. Полезно для опытных пользователей, знакомых с управлением параметрами виртуальных машин через xe CLI. Объект пользовательского значения содержит два поля |
|
key string / required |
Имя параметра виртуальной машины. |
|
value any / required |
Значение параметра виртуальной машины. |
disks aliases: disk list / elements=dictionary | Список дисков для добавления в виртуальную машину. Все параметры чувствительны к регистру. Удаление или отключение существующих дисков виртуальной машины не поддерживается. Для новых дисков необходимо указать либо Виртуальная машина должна быть выключена для изменения размера диска. |
|
name aliases: 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 | Папка назначения для виртуальной машины. Этот параметр чувствителен к регистру. Пример: folder: /folder1/folder2 |
force boolean | Игнорировать предупреждения и выполнить действия. Этот параметр полезен для удаления виртуальной машины в запущенном состоянии или для перенастройки параметров виртуальной машины, которые требуют выключения виртуальной машины. Варианты:
|
hardware dictionary | Управление аппаратными параметрами виртуальной машины. Виртуальная машина должна быть выключена для перенастройки этих параметров. |
|
memory_mb integer |
Объем памяти в МБ. |
|
num_cpu_cores_per_socket целое число |
Количество ядер на процессорный сокет. |
|
num_cpus целое число |
Количество процессоров. |
home_server строка | Имя хоста XenServer, который будет домашним сервером для виртуальной машины. Этот параметр чувствителен к регистру. |
hostname псевдонимы: host, pool строка | Имя хоста или IP-адрес хоста XenServer или мастер-пула XenServer. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения По умолчанию: |
is_template логическое значение | Преобразовать виртуальную машину в шаблон. Варианты:
|
linked_clone логическое значение | Создавать ли связанную копию из шаблона, существующей виртуальной машины или снимка. Если нет, создается полная копия. Это эквивалентно параметру Варианты:
|
name псевдонимы: name_label строка | Имя виртуальной машины для работы. У виртуальных машин, работающих на XenServer, не обязательно уникальные имена. Модуль завершится ошибкой, если найдено несколько виртуальных машин с одинаковым именем. В случае нескольких виртуальных машин с одинаковым именем используйте Этот параметр чувствителен к регистру. |
name_desc строка | Описание виртуальной машины. |
networks псевдонимы: network список / элементы=словарь | Список сетей (в порядке сетевых адаптеров). Все параметры чувствительны к регистру. Имя необходимо для новых сетевых адаптеров. Другие параметры необязательны во всех случаях. |
|
gateway строка |
Статический шлюз IPv4. |
|
gateway6 строка |
Статический шлюз IPv6. |
|
ip строка |
Статический IPv4-адрес (подразумевает |
|
ip6 строка |
Статический IPv6-адрес (подразумевает |
|
mac строка |
Настройка MAC-адреса интерфейса. |
|
name псевдонимы: name_label строка |
Имя сети XenServer, к которой следует подключить сетевой интерфейс. |
|
netmask строка |
Статический IPv4-маска подсети, необходимая для |
|
type строка |
Тип назначения IPv4. Значение На некоторых операционных системах это может быть настройка DHCP (например, Windows) или неконфигурированный интерфейс (например, Linux). Варианты:
|
|
type6 строка |
Тип назначения IPv6. Значение Варианты:
|
password aliases: pass, pwd string | Пароль для подключения к XenServer. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения |
state string | Укажите состояние, в котором должна находиться виртуальная машина. Если Если Если Если Варианты:
|
state_change_timeout integer | По умолчанию модуль будет бесконечно ждать получения виртуальной машиной IP-адреса, если Если этот параметр установлен в положительное значение, модуль вместо этого будет ожидать указанное количество секунд изменения состояния. В случае превышения времени ожидания модуль выведет сообщение об ошибке. Значение по умолчанию: |
template aliases: template_src string | Имя шаблона, существующей виртуальной машины (должна быть выключена) или снимка, который должен использоваться для создания виртуальной машины. Шаблоны/виртуальные машины/снимки на XenServer не обязательно имеют уникальные имена. Модуль завершится ошибкой, если будет найдено несколько шаблонов с одинаковым именем. В случае наличия нескольких шаблонов/виртуальных машин/снимков с одинаковым именем, используйте Если виртуальная машина уже существует, этот параметр будет проигнорирован. Этот параметр чувствителен к регистру. |
template_uuid string | UUID шаблона, существующей виртуальной машины или снимка, который должен использоваться для создания виртуальной машины. Требуется, если имя шаблона не является уникальным. |
username aliases: admin, user string | Имя пользователя для подключения к XenServer. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения Значение по умолчанию: |
uuid string | UUID виртуальной машины для управления, если известен. Это уникальный идентификатор XenServer. Требуется, если имя не является уникальным. Обратите внимание, что предоставленный UUID будет проигнорирован при создании виртуальной машины, поскольку XenServer создает UUID внутренне. |
validate_certs boolean | Разрешает подключение, когда SSL-сертификаты недействительны. Установите в Если значение не указано в задаче, вместо него будет использовано значение переменной окружения Варианты:
|
wait_for_ip_address boolean | Ожидать, пока XenServer обнаружит IP-адрес для виртуальной машины. Если Для правильной работы требуется предварительная установка 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.
- Для получения Python библиотеки XenAPI просто выполните
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 для настройки сети. Модуль будет пытаться определить, доступна ли такая поддержка, и использовать её, в противном случае он будет использовать пользовательский метод конфигурации через xenstore. Поскольку агент XenServer Guest поддерживает только типы конфигурации сети None и Static, где None означает интерфейс с DHCP, значенияnetworks[].typeиnetworks[].type6noneиdhcpимеют одинаковый эффект. Более подробная информация: https://www.citrix.com/community/citrix-developer/citrix-hypervisor-developer/citrix-hypervisor-developing-products/citrix-hypervisor-staticip.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
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для данного модуля:
Ключ | Описание |
|---|---|
изменения список / элементы=строка | Обнаруженные или внесенные изменения в виртуальную машину Возвращается: всегда Пример: |
экземпляр словарь | Метаданные о виртуальной машине Возвращается: всегда Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/general/xenserver_guest_module.html