Spec-Zone.ru › Ansible 2.10

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

Примечание

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

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

псевдонимы: диск
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.

псевдонимы: пароль, pass, 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 в папку 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: no, что требует библиотеки XenAPI из XenServer 7.2 SDK или более поздней версии и 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.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 стали доступными внутри гостя, необходимо перезагрузить VM, поэтому модуль потребует перезагрузки VM, если какие-либо параметры изменены. Это ограничение 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
список / элементы=строка
всегда
Обнаруженные или внесенные изменения в VM

Пример:
[{'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': 'Пуль-wide network associated with eth2', 'position': 1, 'vif_device': '1'}]}, 'need_poweredoff']
instance
словарь
всегда
Метаданные о VM

Пример:
{'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': 'Пуль-wide network associated with 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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/general/xenserver_guest_module.html

Spec-Zone.ru

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