You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
decort-ansible/wiki/6.1.0/модуль-decort_kvmvm.md

22 KiB

Модуль decort_kvmvm

Обзор модуля decort_kvmvm

Модуль decort_kvmvm предназначен для выполнения следующих действий над виртуальными машинами:

  • создать
    • с образом
    • без образа
      • с загрузочным диском
      • без загрузочного диска
  • получить информацию
  • остановить/приостановить/запустить
  • подключить/отключить диски с данными
  • подключить/отключить сети
  • изменить
    • объём загрузочного диска в большую сторону
    • количество CPU
    • объём ОЗУ
    • тэги
    • affinity метку
    • affinity правила
    • anti-affinity правила
    • описание
    • чипсет
    • правило NUMA Affinity
    • использование CPU Pinning
    • использование Huge Pages
    • имя
    • XML виртуальной машины
  • удалить (безвозвратно)

Параметры модуля decort_kvmvm

Ниже в алфавитном порядке приведен полный список параметров для модуля decort_kvmvm. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой: ansible-doc -t module decort_kvmvm

Параметр Тип, допустимые значения Описание
aaff_rule (list) Список словарей, описывающих anti-affinity правила.
Ключи словаря:
topology (string) (обязательный) - назначение правила; значения: node (узел) или compute (ВМ)
policy (string) (обязательный) - степень "необходимости" этого правила; значения: RECOMMENDED или REQUIRED
mode (string) (обязательный) - режим сравнения; значения: EQ (должно соответствовать), NE (не должно соответствовать), ANY (любое)
key (string) (обязательный) - ключ, который учитывается при анализе данного правила
value (string) (обязательный) - значение ключа, учитываемого при анализе данного правила (зависит от ключа mode).
Чтобы очистить anti-affinity правила, нужно указать пустой список [].
account_id (int) Идентификатор аккаунта. Этот параметр является опциональным и используется в сценариях, когда уже существующая ресурсная группа задается комбинацией account_id и rg_name. Если задан account_id, то account_name игнорируется.
account_name (string) Имя аккаунта. Этот параметр является опциональным и используется в сценариях, когда уже существующая ресурсная группа задается комбинацией account_name и rg_name. Если задан account_id, то account_name игнорируется.
aff_rule (list) Список словарей, описывающих affinity правила.
Ключи словаря:
topology (string) (обязательный) - назначение правила; значения: node (узел) или compute (ВМ)
policy (string) (обязательный) - степень "необходимости" этого правила; значения: RECOMMENDED или REQUIRED
mode (string) (обязательный) - режим сравнения; значения: EQ (должно соответствовать), NE (не должно соответствовать), ANY (любое)
key (string) (обязательный) - ключ, который учитывается при анализе данного правила
value (string) (обязательный) - значение ключа, учитываемого при анализе данного правила (зависит от ключа mode).
Чтобы очистить affinity правила, нужно указать пустой список [].
affinity_label (str) Метка affinity.
Чтобы очистить метку affinity, нужно указать пустую строку "".
description (string) Опциональное описание виртуальной машины. Этот параметр используется только при создании.
app_id (string) Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль decort_kvmvm будет использовать значение переменной окружения DECORT_APP_ID.
app_secret (string) Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DCORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль decort_kvmvm будет использовать значение переменной окружения DECORT_APP_SECRET.
authenticator (str)
Значения:
oauth2
jwt
Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр.
boot_disk (int) Объём загрузочного диска виртуальной машины в ГБ.
chipset (string)
Значения:
Q35
i440fx
Эмулируемый чипсет.
ci_user_data (dict) конфигурация для cloud-init
controller_url (string) URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должен быть создан (или уже существует) данная виртуальная машина. Данный параметр является обязательным.
cpu (int) Количество виртуальных процессоров, выделяемых виртуальной машине.
cpu_pin (bool) Запуск виртуальной машины на выделенных процессорах. Чтобы использовать эту функцию, система должна быть предварительно сконфигурирована путем выделения процессоров на физическом узле.
Значение по умолчанию при создании: false.
custom_fields (dict) Словарь, управляющий XML виртуальной машины.
Ключи словаря:
disable (bool) - отключение управления виртуальной машиной через XML. Значение по умолчанию при создании: true
fields (dict) - поля для управления XML виртуальной машины.
data_disks (list) Список идентификаторов дисков, которые следует подключить к данной виртуальной машине как дополнительные.
Чтобы отключить все диски, нужно указать пустой список [].
hp_backed (bool) Использовать Huge Pages для выделения оперативной памяти виртуальной машины. Система должна быть предварительно сконфигурирована путем выделения Huge Pages на физическом узле.
Значение по умолчанию при создании: false.
id (int) Уникальный цифровой идентификатор виртуальной машины. Этот параметр используется как один из методов идентификации существующей ВМ (альтернатива по комбинации name, rg_name и account_name). Если при вызове модуля decort_kvmvm существующая ВМ идентифицируется по id, то параметры account_id, account_name, rg_id и rg_name игнорируются.
image_id (int) Уникальный цифровой идентификатор образа, на базе которого следует создать виртуальную машину. При создании задать этот параметр или параметр image_name. При любых других операциях данные параметры игнорируются. Если заданы оба этих параметра (image_id и image_name), то image_name игнорируется.
image_name (string) Название образа, на базе которого следует создать ВМ. При создании требуется задать этот параметр или параметр image_id. При любых других операциях данные параметры игнорируются.
jwt (string) JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме authenticator: jwt. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль decort_kvmvm будет использовать значение переменной окружения DECORT_JWT.
name (string) Имя ВМ. Чтобы модуль decort_kvmvm мог управлять сервером по его названию, также необходимо задать комбинацию account_name и rg_name или rg_id. Если для существующей ВМ указаны и name, и id, то параметр name игнорируется и идентификация сервера выполняется по id.
network_order_changing (bool)
Default:
false
Соблюдение очерёдности сетей при их изменении.
Если true, то сравнение списка уже подключённых к ВМ сетей со списком из параметра networks будет производится с учётом очерёдности сетей и, при выявлении несоответствия, сначала будет произведено отключение всех сетей от ВМ, а затем подключение сетей в соответствии с параметром networks.
Если false, то очерёдность при сравнении учитываться не будет. Соответственно, сети, которые имеются в списке параметра networks и уже подключены к ВМ, переподключаться не будут, что может кратно уменьшить время выполнения изменения сетей.
networks (list) Список словарей, описывающих сети ВМ.
Ключи словаря:
type (string) (обязательный) - тип сети; значения: VINS (внутренняя), EXTNET (внешняя), VFNIC (вирт. функция), DPDK, EMPTY (без подключения к сети)
id (int) (необязательный) - идентификатор внутренней/внешней/DPDK сети или пула вирт. функций
ip_addr (string) (необязательный) - IP-адрес, используемый для подключения к данной сети; применимо только для VINS и EXTNET.
ВМ не может одновременно быть подключена к сети DPDK и к сети другого типа.
Чтобы отключить все сети, нужно указать пустой список [].
numa_affinity (str)
Значения:
strict
loose
none
Правило применения NUMA affinity к виртуальной машине.
strict - строго с NUMA affinity, loose - использовать NUMA affinity, если возможно, none - отменить применение NUMA affinity.
Значение по умолчанию при создании: none.
oauth2_url (string) URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль decort_kvmvm будет использовать значение переменной окружения DECORT_OAUTH2_URL.
pool (str) Пул СХД, заданной параметром sep_id. Если пул не задан, то он будет выбран платформой.
ram (int) Объем оперативной памяти в МБ, выделенной данной ВМ. Параметр является обязательным при создании. Если указать его для уже существующей ВМ, то будет выполнена попытка изменить объем выделенной памяти.
rg_id (int) Уникальный цифровой идентификатор уже существующей ресурсной группы, в которой будет создана новая или находится уже существующая ВМ. Данный параметр является одним из методов идентификации существующей РГ (альтернативой является задание комбинации account_name и rg_name).
rg_name (string) Имя уже существующей ресурсной группы, в которой будет создаа новая или находится уже существующая ВМ. Данный параметр является одним из методов идентификации существующей РГ, когда задается пара account_name и rg_name (альтернативой является задание rg_id). Если заданы и rg_id, и rg_name, то параметр rg_name игнорируется.
sep_id (int) Идентификатор СХД для загрузочного диска ВМ. Если не задан, то будет использоваться СХД образа.
ssh_key (string) Открытая часть SSH-ключа, который необходимо добавить на создаваемую ВМ для пользователя, заданного параметром ssh_key_user. Данный параметр применим только для ОС Linux, используется только при создании и игнорируется при других операциях.
ssh_key_user (string) Имя пользователя в гостевой ОС (только для Linux), для которого добавляется SSH-ключ, заданный параметром ssh_key. Данный параметр является обязательным, если задан ssh_key. Используется только при создании и игнорируется при других операциях.
state (str)
Значения:
present
absent
poweredon
poweredoff
halted
paused
check
Default: present
Целевое состояние ВМ.
Значение halted - синоним к poweredoff. Значения present и poweredon равнозначны.
Значение check вызывает модуль в read-only режиме и считывает характеристики существующей ВМ.
tag (dict) Словарь, пары ключ-значение которого, описывают тэги для ВМ.
Чтобы очистить теги, нужно указать пустой словарь {}.
verify_ssl (bool)
Default: true
Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.
Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах.

Возвращаемые значения модуля decort_kvmvm

Модуль decort_kvmvm возвращает информацию о виртуальной машине в виде словаря facts со следующими ключами:

Ключ Тип данных Описание
account_id int Идентификатор аккаунта.
arch string Архитектура ВМ.
chipset string Эмулируемый чипсет.
cpu int Количество виртуальных процессоров.
cpu_pin bool Запуск виртуальной машины на выделенных процессорах.
custom_fields dict Словарь, управляющий XML виртуальной машины. Если null, то управление виртуальной машиной через XML отключено, иначе - управление через XML включено.
data_disks list Список идентификаторов дисков с данными, подключенных к ВМ.
disk_size int Размер загрузочного диска в ГБ.
hp_backed bool Использовать Huge Pages для выделения оперативной памяти виртуальной машины.
id int Идентификатор ВМ.
image_id id Идентификатор образа.
interfaces list Список словарей, описывающих сетевые интерфейсы ВМ.
name string Имя ВМ.
numa_affinity str Правило применения NUMA affinity к виртуальной машине.
password string Пароль пользователя ОС по умолчанию.
private_ips list Список IP-адресов на сетевых интерфейсах ВМ, которые подключены к внутренним сетям.
public_ips list Список IP адресов на сетевых интерфейсах ВМ, которые подключены к внешним сетям.
ram int Объём ОЗУ ВМ в МБ.
rg_id int Идентификатор ресурсной группы, которой принадлежит данная ВМ.
state string Состояние ВМ.
tags dict Словарь, пары ключ-значение которого, описывают тэги ВМ.
tech_status str Технический статус ВМ.
username string Имя пользователя ОС по умолчанию.

Пример использования модуля decort_kvmvm

В данном примере создается ВМ с именем MyFirstVM.

- name: Сreate VM
  decort_kvmvm:
    app_id: "{{ my_app_id }}"
    app_secret: "{{ my_app_secret }}"
    authenticator: oauth2
    controller_url: "https://cloud.digitalenergy.online"
    cpu: 2
    image_id: "{{ my_img.facts.id }}"
    name: MyFirstVM
    networks:
      - type: VINS
        id: "{{ my_vins.facts.id }}"
    oauth2_url: "https://sso.digitalenergy.online"
    ram: 4096
    rg_id: "{{ my_rg.facts.id }}"
    chipset: Q35
    custom_fields:
      fields:
        title: TestTitle
        cpu: 
          mode: custom
          cache:
            mode: disable
  register: my_vm