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 — создание виртуальных машин из шаблона, указанного с помощью 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