Spec-Zone.ru › Ansible 2.7

one_vm – Создаёт или завершает виртуальные машины OpenNebula

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

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

Описание

  • Управляет виртуальными машинами OpenNebula

Требования

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

  • python-oca

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
api_password
-
Пароль пользователя для входа в сервер RPC OpenNebula. Если не задан
api_url
-
URL сервера RPC OpenNebula.
Рекомендуется использовать HTTPS, чтобы имя пользователя/пароль не
передавались по сети без шифрования.
Если не задан, используется значение переменной среды ONE_URL.
api_username
-
Имя пользователя для входа на сервер RPC OpenNebula. Если не задан
то используется значение переменной среды ONE_USERNAME.
attributes
-
По умолчанию:
{}
Словарь атрибутов ключ/значение для добавления к новым виртуальным машинам или
для установки атрибутов существующих виртуальных машин.
Ключи регистронезависимы, и OpenNebula автоматически преобразует их в верхний регистр.
Обратите внимание, что state — специальный атрибут, который устанавливает имя ВМ при её развертывании.
# символов может быть добавлен к NAME, и модуль автоматически добавит
индексы к именам ВМ.
Например, NAME':' foo-### создаст ВМ с именами foo-000, foo-001,...
При использовании с count_attributes и exact_count модуль будет
сопоставлять базовое имя без индексной части.
count
-
По умолчанию:
1
Количество виртуальных машин, которые нужно запустить
count_attributes
-
Словарь атрибутов ключ/значение, которые можно использовать только с
exact_count для определения количества узлов, которые нужно развернуть на основе определённых
критериев атрибутов. Это можно выразить несколькими способами, что показано в разделе ПРИМЕРЫ.
count_labels
-
Список меток, которые можно использовать только с exact_count для определения
количества узлов, которые нужно развернуть на основе определённых критериев меток.
Это можно выразить несколькими способами, что показано в разделе ПРИМЕРЫ.
cpu
-
Процент ЦП, необходимый для новой виртуальной машины, делённый на 100. Половина процессора записывается как 0,5.
disk_saveas
-
Создаёт образ из диска виртуальной машины.
Это словарь, где нужно указать name нового образа.
Необязательно, можно указать disk_id диска, который нужно сохранить. По умолчанию disk_id равно 0.
ПРИМЕЧАНИЕ: Эта операция будет выполнена только для первой виртуальной машины (если передано более одного идентификатора ВМ), и ВМ должна быть в состоянии poweredoff.
Также эта операция завершится ошибкой, если образ с указанным name уже существует.
disk_size
-
Размер диска, создаваемого для новых виртуальных машин (в МБ, ГБ, ТБ и т. д.).
ПРИМЕЧАНИЕ: Этот параметр можно использовать только в том случае, если шаблон виртуальной машины, указанный с
template_id/template_name содержит ровно один диск.
exact_count
-
Указывает, сколько виртуальных машин, соответствующих count_attributes и
count_labels параметрам, нужно развернуть. Виртуальные машины создаются или удаляются на основе этого значения.
ПРИМЕЧАНИЕ: Виртуальные машины с наименьшими идентификаторами будут удаляться первыми.
group_id
-
Идентификатор группы, которая будет установлена как группа виртуальной машины
hard
boolean
    Варианты:
  • нет ←
  • да
Перезагрузка, выключение или удаление виртуальных машин hard
instance_ids
-
Список идентификаторов виртуальных машин, используемых для состояний: absent, running, rebooted, poweredoff

псевдонимы: ids
labels
-
По умолчанию:
[]
Список меток для ассоциации с новыми виртуальными машинами или для установки
state меток этих виртуальных машин.
memory
-
Размер оперативной памяти для новых виртуальных машин (в МБ, ГБ и т. д.)
mode
-
Установка разрешения доступа к виртуальной машине в формате октетов, например, 600 для предоставления владельцу use и manage и ничего группе и другим пользователям.
networks
-
По умолчанию:
[]
Список словарей с параметрами сети. Подробнее см. примеры.
owner_id
-
Идентификатор пользователя, который будет установлен как владелец виртуальной машины
state
-
    Варианты:
  • present ←
  • absent
  • running
  • rebooted
  • poweredoff
present — создание виртуальных машин из шаблона, указанного с помощью template_id/template_name.
running — запуск виртуальных машин
poweredoff — выключение виртуальных машин
rebooted — перезагрузка виртуальных машин
absent — завершение работы виртуальных машин
template_id
-
Идентификатор шаблона ВМ для создания новой виртуальной машины
template_name
-
Имя шаблона ВМ для создания новой виртуальной машины
vcpu
-
Количество процессоров (ядер) новой виртуальной машины.
wait
boolean
    Варианты:
  • нет
  • да ←
Ожидать, пока виртуальная машина достигнет желаемого состояния перед возвратом. Помните, если вы ждёте, пока виртуальная машина будет в состоянии выполнения, это не означает, что вы сможете подключиться к этому компьютеру, только что процесс загрузки на этой виртуальной машине начался, см. пример «wait_for» для получения дополнительной информации.
wait_timeout
-
По умолчанию:
300
Сколько времени ждать, прежде чем ожидание прекратится, в секундах

Примеры

# Create a new instance
- one_vm:
    template_id: 90
  register: result

# Print VM properties
- debug:
    msg: result

# Deploy a new VM and set its name to 'foo'
- one_vm:
    template_name: 'app1_template'
    attributes:
      name: foo

# Deploy a new VM and set its group_id and mode
- one_vm:
    template_id: 90
    group_id: 16
    mode: 660

# Change VM's permissions to 640
- one_vm:
    instance_ids: 5
    mode: 640

# Deploy 2 new instances and set memory, vcpu, disk_size and 3 networks
- one_vm:
    template_id: 15
    disk_size: 35.2 GB
    memory: 4 GB
    vcpu: 4
    count: 2
    networks:
      - NETWORK_ID: 27
      - NETWORK: "default-network"
        NETWORK_UNAME: "app-user"
        SECURITY_GROUPS: "120,124"
      - NETWORK_ID: 27
        SECURITY_GROUPS: "10"

# Deploy an new instance with attribute 'bar: bar1' and set its name to 'foo'
- one_vm:
    template_id: 53
    attributes:
      name: foo
      bar: bar1

# Enforce that 2 instances with attributes 'foo1: app1' and 'foo2: app2' are deployed
- one_vm:
    template_id: 53
    attributes:
      foo1: app1
      foo2: app2
    exact_count: 2
    count_attributes:
      foo1: app1
      foo2: app2

# Enforce that 4 instances with an attribute 'bar' are deployed
- one_vm:
    template_id: 53
    attributes:
      name: app
      bar: bar2
    exact_count: 4
    count_attributes:
      bar:

# Deploy 2 new instances with attribute 'foo: bar' and labels 'app1' and 'app2' and names in format 'fooapp-##'
# Names will be: fooapp-00 and fooapp-01
- one_vm:
    template_id: 53
    attributes:
      name: fooapp-##
      foo: bar
    labels:
      - app1
      - app2
    count: 2

# Deploy 2 new instances with attribute 'app: app1' and names in format 'fooapp-###'
# Names will be: fooapp-002 and fooapp-003
- one_vm:
    template_id: 53
    attributes:
      name: fooapp-###
      app: app1
    count: 2

# Reboot all instances with name in format 'fooapp-#'
# Instances 'fooapp-00', 'fooapp-01', 'fooapp-002' and 'fooapp-003' will be rebooted
- one_vm:
    attributes:
      name: fooapp-#
    state: rebooted

# Enforce that only 1 instance with name in format 'fooapp-#' is deployed
# The task will delete oldest instances, so only the 'fooapp-003' will remain
- one_vm:
    template_id: 53
    exact_count: 1
    count_attributes:
      name: fooapp-#

# Deploy an new instance with a network
- one_vm:
    template_id: 53
    networks:
      - NETWORK_ID: 27
  register: vm

# Wait for SSH to come up
- wait_for_connection:
  delegate_to: '{{ vm.instances[0].networks[0].ip }}'

# Terminate VMs by ids
- one_vm:
    instance_ids:
      - 153
      - 160
    state: absent

# Reboot all VMs that have labels 'foo' and 'app1'
- one_vm:
    labels:
      - foo
      - app1
    state: rebooted

# Fetch all VMs that have name 'foo' and attribute 'app: bar'
- one_vm:
    attributes:
      name: foo
      app: bar
  register: results

# Deploy 2 new instances with labels 'foo1' and 'foo2'
- one_vm:
    template_name: app_template
    labels:
      - foo1
      - foo2
    count: 2

# Enforce that only 1 instance with label 'foo1' will be running
- one_vm:
    template_name: app_template
    labels:
      - foo1
    exact_count: 1
    count_labels:
      - foo1

# Terminate all instances that have attribute foo
- one_vm:
    template_id: 53
    exact_count: 0
    count_attributes:
      foo:

# Power-off the VM and save VM's disk with id=0 to the image with name 'foo-image'
- one_vm:
    instance_ids: 351
    state: powered-off
    disk_saveas:
      name: foo-image

# Save VM's disk with id=1 to the image with name 'bar-image'
- one_vm:
    instance_ids: 351
    disk_saveas:
      name: bar-image
      disk_id: 1

Возвращаемые значения

Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:

Ключ Возвращаемое значение Описание
instances
сложный тип
успех
список информации об экземплярах, состояние которых было изменено или которые были получены с опцией instance_ids.

attributes
словарь
Словарь атрибутов ключ/значение, связанных с экземпляром.

Пример:
{'HYPERVISOR': 'kvm', 'LOGO': 'images/logos/centos.png', 'TE_GALAXY': 'bar', 'USER_INPUTS': None}
cpu
вещественное число
Процент использования процессора, деленный на 100.

Пример:
0.2
disk_size
строка
Размер диска в МБ.

Пример:
20480 МБ
group_id
целое число
Идентификатор группы виртуальной машины.

Пример:
1
group_name
строка
Имя группы виртуальной машины.

Пример:
one-users
labels
список
Список строковых меток, связанных с экземпляром.

Пример:
['foo', 'spec-label']
lcm_state
строка
Состояние LCM экземпляра, которое актуально только при состоянии ACTIVE.

Пример:
RUNNING
memory
строка
Размер памяти в МБ.

Пример:
4096 МБ
mode
строка
успех
Режим виртуальной машины.

Пример:
660
networks
список
Список словарей с информацией об IP, имени, MAC-адресе и группах безопасности для каждого сетевого интерфейса.

Пример:
[{'ip': '10.120.5.33', 'mac': '02:00:0a:78:05:21', 'name': 'default-test-private', 'security_groups': '0,10'}, {'ip': '10.120.5.34', 'mac': '02:00:0a:78:05:22', 'name': 'default-test-private', 'security_groups': '0'}]
owner_id
целое число
Идентификатор владельца виртуальной машины.

Пример:
143
owner_name
строка
Имя владельца виртуальной машины.

Пример:
app-user
state
строка
Состояние экземпляра.

Пример:
ACTIVE
template_id
целое число
Идентификатор шаблона виртуальной машины.

Пример:
153
uptime_h
целое число
Время работы экземпляра в часах.

Пример:
35
vcpu
целое число
Количество процессоров (ядер).

Пример:
2
vm_id
целое число
Идентификатор виртуальной машины.

Пример:
153
vm_name
строка
Имя виртуальной машины.

Пример:
foo
instances_ids
список
успех
список идентификаторов экземпляров, состояние которых было изменено или которые были получены с опцией instance_ids.

Пример:
[1234, 1235]
tagged_instances
сложный тип
успех
список информации об экземплярах, основанной на определённых атрибутах и/или
метках, заданных опциями count_attributes и count_labels.

attributes
словарь
Словарь атрибутов ключ/значение, связанных с экземпляром.

Пример:
{'HYPERVISOR': 'kvm', 'LOGO': 'images/logos/centos.png', 'TE_GALAXY': 'bar', 'USER_INPUTS': None}
cpu
вещественное число
Процент использования процессора, деленный на 100.

Пример:
0.2
disk_size
строка
Размер диска в МБ.

Пример:
20480 МБ
group_id
целое число
Идентификатор группы виртуальной машины.

Пример:
1
group_name
строка
Имя группы виртуальной машины.

Пример:
one-users
labels
список
Список строковых меток, связанных с экземпляром.

Пример:
['foo', 'spec-label']
lcm_state
строка
Состояние LCM экземпляра, которое актуально только при состоянии ACTIVE.

Пример:
RUNNING
memory
строка
Размер памяти в МБ.

Пример:
4096 МБ
mode
строка
успех
Режим виртуальной машины.

Пример:
660
networks
список
список словарей с информацией об IP, ИМЕНИ, MAC, SECURITY_GROUPS для каждого сетевого интерфейса

Пример:
[{'ip': '10.120.5.33', 'mac': '02:00:0a:78:05:21', 'name': 'default-test-private', 'security_groups': '0,10'}, {'ip': '10.120.5.34', 'mac': '02:00:0a:78:05:22', 'name': 'default-test-private', 'security_groups': '0'}]
owner_id
целое число
ID пользователя VM

Пример:
143
owner_name
строка
Имя пользователя VM

Пример:
app-user
state
строка
состояние экземпляра

Пример:
ACTIVE
template_id
целое число
ID шаблона VM

Пример:
153
uptime_h
целое число
Время работы экземпляра в часах

Пример:
35
vcpu
целое число
Количество процессоров (ядер)

Пример:
2
vm_id
целое число
ID VM

Пример:
153
vm_name
строка
Имя VM

Пример:
foo


Статус

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

Авторы

  • Milan Ilic (@ilicmilan)

Подсказка

Если вы обнаружите какие-либо проблемы в этом документе, вы можете отредактировать этот документ, чтобы улучшить его.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.7/modules/one_vm_module.html

Spec-Zone.ru

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