Spec-Zone.ru › Ansible 2.9

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

Новая версия с 2.8.

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

Обзор

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

Требования

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

  • 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_uuid (строка): UUID хранилища, на котором будет создан диск. Используйте, если имя хранилища не уникально.

псевдонимы: disk
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 пула master.
Если значение не указано в задаче, будет использовано значение переменной среды XENSERVER_HOST.

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

псевдонимы: name_label
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 шлюз.

псевдонимы: network
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_src
template_uuid
строка
UUID шаблона, существующей ВМ или снимка, который должен быть использован для создания ВМ.
Требуется, если имя шаблона не уникально.
username
строка
По умолчанию:
"root"
Имя пользователя для подключения к XenServer.
Если значение не указано в задаче, будет использовано значение переменной среды XENSERVER_USER.

псевдонимы: admin, 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.
  • Для получения Python библиотеки XenAPI, просто выполните pip install XenAPI на вашем Ansible контрольном узле. Библиотека также доступна в Citrix Hypervisor/XenServer SDK (скачивается с сайта Citrix). Скопируйте файл XenAPI.py из SDK в вашу директорию site-packages Python на вашем Ansible контрольном узле, чтобы использовать его. Последняя версия библиотеки также доступна на GitHub: https://raw.githubusercontent.com/xapi-project/xen-api/master/scripts/examples/python/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. Они также могут быть найдены в фактах ВМ в ключе instance.xenstore_data, возвращаемом модулем. Пользователь должен реализовать скрипты времени запуска или пользовательского агента, который будет читать параметры из xenstore и настраивать сеть с заданными параметрами. Обратите внимание, что для того, чтобы данные xenstore стали доступными внутри гостевой системы, требуется перезагрузка ВМ, поэтому модуль потребует перезагрузки ВМ, если какой-либо параметр изменён. Это ограничение XenAPI и xenstore. Учитывая эти ограничения, настройка сети через xenstore наиболее полезна для запуска новых развернутых ВМ, намного меньше для переконфигурации существующих.
  • Дополнительная информация здесь: https://support.citrix.com/article/CTX226713

Примеры

- name: Create a VM from a template
  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
  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)
  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
  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)
  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
  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-разрядный)', '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': ''}}


Статус

  • Этот модуль не гарантирует обратной совместимости интерфейса. [превью]
  • Этот модуль поддерживается сообществом Ansible. [сообщество]

Авторы

  • Боян Витник (@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.9/modules/xenserver_guest_module.html

Spec-Zone.ru

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