Spec-Zone.ru › Ansible 2.11

community.general.xenserver_guest – Управляет виртуальными машинами, работающими на хосте/пуле Citrix Hypervisor/XenServer

Примечание

Этот плагин входит в коллекцию community.general (версия 2.0.1).

Для его установки используйте: ansible-galaxy collection install community.general.

Для использования в книге задач укажите: community.general.xenserver_guest.

  • Обзор
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Обзор

  • Этот модуль может использоваться для создания новых виртуальных машин из шаблонов или других виртуальных машин, изменения различных компонентов виртуальной машины, таких как сеть и диск, переименования виртуальной машины и удаления виртуальной машины с её компонентами.

Требования

Ниже перечислены требования к хосту, на котором выполняется этот модуль.

  • python >= 2.6
  • XenAPI

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
cdrom
словарь
Настройка CD-ROM для ВМ.
Все параметры чувствительны к регистру.
Допустимые параметры:
- type (строка): Тип CD-ROM, допустимые варианты none или iso. С none устройство CD-ROM будет присутствовать, но пустым.
- iso_name (строка): Имя файла ISO-образа из одной из XenServer библиотек ISO-образов (подразумевает type: iso). Требуется, если type установлено в iso.
custom_params
список / элементы=словарь
Определяет список пользовательских параметров ВМ для установки на ВМ.
Полезно для продвинутых пользователей, знакомых с управлением параметрами ВМ через xe CLI.
Объект пользовательского значения содержит два поля key и value (см. пример ниже).
disks
список / элементы=словарь
Список дисков для добавления к ВМ.
Все параметры чувствительны к регистру.
Удаление или отключение существующих дисков ВМ не поддерживается.
Обязательные параметры для каждой записи:
- size_[tb,gb,mb,kb,b] (целое число): Размер хранилища диска в указанной единице. ВМ необходимо выключить, чтобы переконфигурировать этот параметр.
Необязательные параметры для каждой записи:
- name (строка): Имя диска. Также можно использовать name_label в качестве псевдонима.
- name_desc (строка): Описание диска.
- sr (строка): Хранилище для создания диска. Если не указано, используется по умолчанию. Нельзя использовать для перемещения диска в другое хранилище.
- sr_uuid (строка): UUID хранилища для создания диска. Используйте, если имя хранилища не уникально.

Псевдонимы: диск
folder
строка
Папка назначения для ВМ.
Этот параметр чувствителен к регистру.
Пример:
folder: /folder1/folder2
force
булево
    Варианты:
  • нет ←
  • да
Игнорировать предупреждения и завершить действия.
Этот параметр полезен для удаления ВМ в активном состоянии или переконфигурирования параметров ВМ, которые требуют выключения ВМ.
hardware
словарь
Управление параметрами оборудования ВМ. ВМ необходимо выключить, чтобы переконфигурировать эти параметры.
Допустимые параметры:
- num_cpus (целое число): Количество ЦП.
- num_cpu_cores_per_socket (целое число): Количество ядер на процессор. num_cpus должно быть кратным num_cpu_cores_per_socket.
- memory_mb (целое число): Объем памяти в МБ.
home_server
строка
Имя хоста XenServer, который будет домашним сервером для ВМ.
Этот параметр чувствителен к регистру.
hostname
строка
По умолчанию:
"localhost"
Имя хоста или IP-адрес хоста XenServer или XenServer пула-мастера.
Если значение не указано в задаче, используется значение переменной среды XENSERVER_HOST.

Псевдонимы: хост, пул
is_template
булево
    Варианты:
  • нет ←
  • да
Преобразование ВМ в шаблон.
linked_clone
булево
    Варианты:
  • нет ←
  • да
Создавать ли связанное клонирование из шаблона, существующей ВМ или снимка. Если нет, создается полная копия.
Эквивалентно параметру Use storage-level fast disk clone в XenCenter.
name
строка / обязательно
Имя ВМ для работы.
ВМ, запущенные на XenServer, не обязательно имеют уникальные имена. Модуль завершится ошибкой, если найдено несколько ВМ с одинаковым именем.
В случае нескольких ВМ с одинаковым именем, используйте uuid для уникальной идентификации ВМ для управления.
Этот параметр чувствителен к регистру.

Псевдонимы: имя_метки
name_desc
строка
Описание ВМ.
networks
список / элементы=словарь
Список сетей (в порядке сетевых адаптеров).
Все параметры чувствительны к регистру.
Обязательные параметры для каждой записи:
- name (строка): Имя сети XenServer для подключения сетевого интерфейса. Также можно использовать name_label в качестве псевдонима.
Необязательные параметры для каждой записи (используются для оборудования ВМ):
- mac (строка): Настройка MAC-адреса интерфейса.
Необязательные параметры для каждой записи (используются для настройки ОС):
- type (строка): Тип назначения IPv4, допустимые варианты none, dhcp или static. Значение none означает использование по умолчанию для ОС. На некоторых операционных системах это может быть настроенный DHCP (например, Windows) или неконфигурированный интерфейс (например, Linux).
- ip (строка): Статический IPv4-адрес (подразумевает type: static). Может включать префикс в формате <IPv4-адрес>/<префикс> вместо использования netmask.
- netmask (строка): Статическая IPv4-маска подсети, необходимая для ip если префикс не указан.
- gateway (строка): Статический IPv4-шлюз.
- type6 (строка): Тип назначения IPv6, допустимые варианты none, dhcp или static. Значение none означает использование по умолчанию для ОС. На некоторых операционных системах это может быть настроенный DHCP (например, Windows) или неконфигурированный интерфейс (например, Linux).
- ip6 (строка): Статический IPv6-адрес (подразумевает type6: static) с префиксом в формате <IPv6-адрес>/<префикс>.
- gateway6 (строка): Статический IPv6-шлюз.

Псевдонимы: сеть
password
строка
Пароль для подключения к XenServer.
Если значение не указано в задаче, используется значение переменной среды XENSERVER_PASSWORD.

Псевдонимы: пароль, pwd
state
строка
    Варианты:
  • наличие ←
  • отсутствует
  • включен
Укажите состояние, в котором должна находиться ВМ.
Если state установлено в present и ВМ существует, убедитесь, что конфигурация ВМ соответствует заданным параметрам.
Если state установлено в present и ВМ не существует, ВМ развертывается с заданными параметрами.
Если state установлено в absent и ВМ существует, ВМ удаляется со всеми связанными компонентами.
Если state установлено в poweredon и ВМ не существует, ВМ развертывается с заданными параметрами и автоматически включается.
state_change_timeout
целое число
По умолчанию:
0
По умолчанию модуль будет ожидать неопределенное время, пока ВМ не получит IP-адрес, если wait_for_ip_address: yes.
Если этот параметр установлен на положительное значение, модуль вместо этого будет ожидать указанное количество секунд для изменения состояния.
В случае таймаута модуль выведет сообщение об ошибке.
template
строка
Имя шаблона, существующей ВМ (должна быть выключена) или снимка, который должен использоваться для создания ВМ.
Шаблоны/ВМ/снимки на XenServer не обязательно имеют уникальные имена. Модуль завершится ошибкой, если найдено несколько шаблонов с одинаковым именем.
В случае нескольких шаблонов/ВМ/снимков с одинаковым именем, используйте template_uuid для уникальной идентификации исходного шаблона.
Если ВМ уже существует, это значение будет проигнорировано.
Этот параметр чувствителен к регистру.

Псевдонимы: шаблон_исходник
template_uuid
строка
UUID шаблона, существующей ВМ или снимка, который должен использоваться для создания ВМ.
Требуется, если имя шаблона не уникально.
username
строка
По умолчанию:
"root"
Имя пользователя для подключения к XenServer.
Если значение не указано в задаче, используется значение переменной среды XENSERVER_USER.

Псевдонимы: администратор, пользователь
uuid
строка
UUID ВМ для управления, если известен. Это уникальный идентификатор XenServer.
Требуется, если имя не уникально.
Обратите внимание, что предоставленный UUID будет проигнорирован при создании ВМ, поскольку XenServer создает UUID внутри.
validate_certs
булево
    Варианты:
  • нет
  • да ←
Разрешает подключение, когда сертификаты SSL недействительны. Установите в false когда сертификаты не доверенны.
Если значение не указано в задаче, используется значение переменной среды XENSERVER_VALIDATE_CERTS.
wait_for_ip_address
булево
    Варианты:
  • нет ←
  • да
Ожидать, пока XenServer не обнаружит IP-адрес для ВМ. Если state установлено в absent, этот параметр игнорируется.
Требует предварительной установки XenServer Tools на ВМ для корректной работы.

Примечания

Примечание

  • Минимальная поддерживаемая версия 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 в вашу директорию Python site-packages на вашем узле управления 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: no, что требует библиотеки 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.type6 none и 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. Они также могут быть найдены в фактах VM в ключе 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 }}"
    validate_certs: no
    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: yes
  delegate_to: localhost
  register: deploy

- name: Create a VM template
  community.general.xenserver_guest:
    hostname: "{{ xenserver_hostname }}"
    username: "{{ xenserver_username }}"
    password: "{{ xenserver_password }}"
    validate_certs: no
    folder: /testvms
    name: testvm_6
    is_template: yes
    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
список / элементы=строка
всегда
Обнаруженные или внесённые изменения в виртуальную машину

Пример:
[{'hardware': ['num_cpus']}, {'disks_changed': [[], ['size']]}, {'disks_new': [{'name': 'new-disk', 'name_desc': '', 'position': 2, 'size_gb': '4', 'vbd_userdevice': '2'}]}, {'cdrom': ['type', 'iso_name']}, {'networks_changed': [['mac']]}, {'networks_new': [{'name': 'Сеть пула, связанная с eth2', 'position': 1, 'vif_device': '1'}]}, 'need_poweredoff']
instance
словарь
всегда
Метаданные о виртуальной машине

Пример:
{'cdrom': {'type': 'none'}, 'customization_agent': 'native', 'disks': [{'name': 'testvm_11-0', 'name_desc': '', 'os_device': 'xvda', 'size': 42949672960, 'sr': 'Локальное хранилище', 'sr_uuid': '0af1245e-bdb0-ba33-1446-57a962ec4075', 'vbd_userdevice': '0'}, {'name': 'testvm_11-1', 'name_desc': '', 'os_device': 'xvdb', 'size': 42949672960, 'sr': 'Локальное хранилище', 'sr_uuid': '0af1245e-bdb0-ba33-1446-57a962ec4075', 'vbd_userdevice': '1'}], 'domid': '56', 'folder': '', 'hardware': {'memory_mb': 8192, 'num_cpu_cores_per_socket': 2, 'num_cpus': 4}, 'home_server': '', 'is_template': False, 'name': 'testvm_11', 'name_desc': '', 'networks': [{'gateway': '192.168.0.254', 'gateway6': 'fc00::fffe', 'ip': '192.168.0.200', 'ip6': ['fe80:0000:0000:0000:e9cb:625a:32c5:c291', 'fc00:0000:0000:0000:0000:0000:0000:0001'], 'mac': 'ba:91:3a:48:20:76', 'mtu': '1500', 'name': 'Сеть пула, связанная с eth1', 'netmask': '255.255.255.128', 'prefix': '25', 'prefix6': '64', 'vif_device': '0'}], 'other_config': {'base_template_name': 'Windows Server 2016 (64-bit)', 'import_task': 'OpaqueRef:e43eb71c-45d6-5351-09ff-96e4fb7d0fa5', 'install-methods': 'cdrom', 'instant': 'true', 'mac_seed': 'f83e8d8a-cfdc-b105-b054-ef5cb416b77e'}, 'platform': {'acpi': '1', 'apic': 'true', 'cores-per-socket': '2', 'device_id': '0002', 'hpet': 'true', 'nx': 'true', 'pae': 'true', 'timeoffset': '-25200', 'vga': 'std', 'videoram': '8', 'viridian': 'true', 'viridian_reference_tsc': 'true', 'viridian_time_ref_count': 'true'}, 'state': 'poweredon', 'uuid': 'e3c0b2d5-5f05-424e-479c-d3df8b3e7cda', 'xenstore_data': {'vm-data': ''}}


Авторы

  • Боян Витник (@bvitnik) <bvitnik@mainstream.rs>

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/general/xenserver_guest_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API