Модуль community.general.one_vm — создание или завершение экземпляров OpenNebula
Примечание
Этот модуль входит в коллекцию community.general (версия 12.6.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в состав ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.general. Для использования этого модуля необходимы дополнительные требования; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.general.one_vm.
Краткое описание
- Управляет экземплярами OpenNebula.
Требования
Следующие требования необходимы на хосте, на котором выполняется этот модуль.
- pyone
Параметры
Параметр | Комментарии |
|---|---|
api_password string | Пароль пользователя для входа на RPC-сервер OpenNebula. Если не задан, используется значение переменной среды Чтобы переопределить этот путь, задайте переменную среды |
api_url string | URL RPC-сервера OpenNebula. Рекомендуется использовать HTTPS, чтобы имя пользователя и пароль передавались по сети в зашифрованном виде. Если не задан, используется значение переменной среды |
api_username string | Имя пользователя для входа на RPC-сервер OpenNebula. Если не задано, используется значение переменной среды |
attributes dictionary | Словарь атрибутов «ключ/значение», добавляемых к новым экземплярам, или используемых для задания Регистр символов в ключах не учитывается; OpenNebula автоматически преобразует их в верхний регистр. Обратите внимание: К Например, При использовании с По умолчанию: |
count integer | Количество запускаемых экземпляров. По умолчанию: |
count_attributes dictionary | Словарь атрибутов «ключ/значение», который можно использовать только с |
count_labels list / elements=string | Список меток, который можно использовать только с |
cpu float | Требуемая для нового экземпляра доля CPU, деленная на 100. Половина процессора задается как 0.5. |
datastore_id integer добавлено в community.general 0.2.0 | Имя хранилища данных, используемого для создания нового экземпляра. |
datastore_name string добавлено в community.general 0.2.0 | Имя хранилища данных, используемого для создания нового экземпляра. |
disk_saveas dictionary | Создает образ из диска виртуальной машины. Это словарь, в котором необходимо указать При необходимости можно указать ПРИМЕЧАНИЕ: Эта операция выполняется только для первой виртуальной машины (если передано несколько идентификаторов виртуальных машин), и виртуальная машина должна находиться в состоянии Операция также завершается ошибкой, если образ с указанным |
disk_size list / elements=string | Размер диска, создаваемого для новых экземпляров (в МБ, ГБ, ТБ,…). ПРИМЕЧАНИЕ: Если шаблон содержит несколько дисков, размеры сопоставляются с дисками в порядке, указанном в |
exact_count integer | Задает количество экземпляров, соответствующих параметрам ПРИМЕЧАНИЕ: Сначала завершаются экземпляры с наименьшими идентификаторами. |
group_id integer | Идентификатор группы, которая назначается группе экземпляра. |
hard boolean | Перезагружать, выключать или завершать экземпляры Варианты:
|
instance_ids псевдонимы: ids list / elements=integer | Список идентификаторов экземпляров, используемых для состояний: |
labels list / elements=string | Список меток, назначаемых новым экземплярам, или используемых для задания По умолчанию: |
memory string | Размер памяти для новых экземпляров (в МБ, ГБ, ..). |
mode string | Задает режим прав доступа к экземпляру в восьмеричном формате, например |
networks list / elements=dictionary | Список словарей с параметрами сети. Подробнее см. примеры. По умолчанию: |
owner_id integer | Идентификатор пользователя, назначаемого владельцем экземпляра. |
persistent boolean добавлено в community.general 0.2.0 | Создает приватную постоянную копию шаблона вместе с любым образом, определенным в DISK, и создает экземпляр этой копии. Варианты:
|
state string |
Варианты:
|
template_id integer | Идентификатор шаблона виртуальной машины, используемого для создания нового экземпляра. |
template_name string | Имя шаблона виртуальной машины, используемого для создания нового экземпляра. |
updateconf dictionary добавлено в community.general 6.3.0 | Если задан При создании новых виртуальных машин имитирует вызов API Позволяет полностью изменять атрибут Поддерживаются следующие атрибуты: BACKUP_CONFIG: CONTEXT: (любое значение, кроме CPU_MODEL: FEATURES: GRAPHICS: INPUT: OS: RAW: VIDEO: |
vcpu integer | Количество процессоров (ядер), используемых новой виртуальной машиной. |
vm_start_on_hold boolean | Установите значение true, чтобы при создании приостановить виртуальную машину. Варианты:
|
wait boolean | Ожидать, пока экземпляр достигнет требуемого состояния, прежде чем вернуть управление. Обратите внимание: ожидание перехода экземпляра в состояние «работает» не означает, что к этой машине уже можно подключиться по SSH; оно лишь означает, что процесс загрузки экземпляра начался. Подробности см. в примере использования модуля ansible.builtin.wait_for. Варианты:
|
wait_timeout integer | Время ожидания до его завершения по тайм-ауту, в секундах. По умолчанию: |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: полная | Модуль может работать в режиме |
diff_mode | Поддержка: нет | В режиме diff возвращает сведения об изменениях (или о тех, которые, возможно, необходимо внести в |
Примеры
- name: Create a new instance
community.general.one_vm:
template_id: 90
register: result
- name: Print VM properties
ansible.builtin.debug:
msg: result
- name: Deploy a new VM on hold
community.general.one_vm:
template_name: 'app1_template'
vm_start_on_hold: 'True'
- name: Deploy a new VM and set its name to 'foo'
community.general.one_vm:
template_name: 'app1_template'
attributes:
name: foo
- name: Deploy a new VM and set its group_id and mode
community.general.one_vm:
template_id: 90
group_id: 16
mode: 660
- name: Deploy a new VM as persistent
community.general.one_vm:
template_id: 90
persistent: true
- name: Change VM's permissions to 640
community.general.one_vm:
instance_ids: 5
mode: 640
- name: Deploy 2 new instances and set memory, vcpu, disk_size and 3 networks
community.general.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"
- name: Deploy a new instance which uses a Template with two Disks
community.general.one_vm:
template_id: 42
disk_size:
- 35.2 GB
- 50 GB
memory: 4 GB
vcpu: 4
count: 1
networks:
- NETWORK_ID: 27
- name: "Deploy an new instance with attribute 'bar: bar1' and set its name to 'foo'"
community.general.one_vm:
template_id: 53
attributes:
name: foo
bar: bar1
- name: "Enforce that 2 instances with attributes 'foo1: app1' and 'foo2: app2' are deployed"
community.general.one_vm:
template_id: 53
attributes:
foo1: app1
foo2: app2
exact_count: 2
count_attributes:
foo1: app1
foo2: app2
- name: Enforce that 4 instances with an attribute 'bar' are deployed
community.general.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
- name: Deploy 2 new instances
community.general.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
- name: Deploy 2 new instances
community.general.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
- name: Reboot all instances with names in a certain format
community.general.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
- name: Enforce that only 1 instance with name in a certain format is deployed
community.general.one_vm:
template_id: 53
exact_count: 1
count_attributes:
name: fooapp-#
- name: Deploy an new instance with a network
community.general.one_vm:
template_id: 53
networks:
- NETWORK_ID: 27
register: vm
- name: Wait for SSH to come up
ansible.builtin.wait_for:
port: 22
host: '{{ vm.instances[0].networks[0].ip }}'
- name: Terminate VMs by ids
community.general.one_vm:
instance_ids:
- 153
- 160
state: absent
- name: Reboot all VMs that have labels 'foo' and 'app1'
community.general.one_vm:
labels:
- foo
- app1
state: rebooted
- name: "Fetch all VMs that have name 'foo' and attribute 'app: bar'"
community.general.one_vm:
attributes:
name: foo
app: bar
register: results
- name: Deploy 2 new instances with labels 'foo1' and 'foo2'
community.general.one_vm:
template_name: app_template
labels:
- foo1
- foo2
count: 2
- name: Enforce that only 1 instance with label 'foo1' will be running
community.general.one_vm:
template_name: app_template
labels:
- foo1
exact_count: 1
count_labels:
- foo1
- name: Terminate all instances that have attribute foo
community.general.one_vm:
template_id: 53
exact_count: 0
count_attributes:
foo:
- name: "Power-off the VM and save VM's disk with id=0 to the image with name 'foo-image'"
community.general.one_vm:
instance_ids: 351
state: poweredoff
disk_saveas:
name: foo-image
- name: "Save VM's disk with id=1 to the image with name 'bar-image'"
community.general.one_vm:
instance_ids: 351
disk_saveas:
name: bar-image
disk_id: 1
- name: "Deploy 2 new instances with a custom 'start script'"
community.general.one_vm:
template_name: app_template
count: 2
updateconf:
CONTEXT:
START_SCRIPT: ip r r 169.254.16.86/32 dev eth0
- name: "Add a custom 'start script' to a running VM"
community.general.one_vm:
instance_ids: 351
updateconf:
CONTEXT:
START_SCRIPT: ip r r 169.254.16.86/32 dev eth0
- name: "Update SSH public keys inside the VM's context"
community.general.one_vm:
instance_ids: 351
updateconf:
CONTEXT:
SSH_PUBLIC_KEY: |-
ssh-rsa ...
ssh-ed25519 ...
Возвращаемые значения
Общие возвращаемые значения описаны здесь, ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
instances list / elements=dictionary | Список сведений об экземплярах, состояние которых изменено или которые получены с помощью параметра Возвращается: при успехе |
|
attributes dictionary |
Словарь атрибутов «ключ/значение», связанных с экземпляром. Возвращается: при успехе Пример: |
|
cpu float |
Процент использования ЦП, делённый на 100. Возвращается: при успехе Пример: |
|
disk_size string |
Размер диска в МБ. Возвращается: при успехе Пример: |
|
group_id integer |
Идентификатор группы виртуальной машины. Возвращается: при успехе Пример: |
|
group_name string |
Название группы виртуальной машины. Возвращается: при успехе Пример: |
|
labels list / elements=string |
Список текстовых меток, связанных с экземпляром. Возвращается: при успехе Пример: |
|
lcm_state string |
Состояние LCM экземпляра, которое имеет значение только при состоянии ACTIVE. Возвращается: при успехе Пример: |
|
memory string |
Объём памяти в МБ. Возвращается: при успехе Пример: |
|
mode string |
Режим виртуальной машины. Возвращается: при успехе Пример: |
|
networks list / elements=string |
Список словарей со сведениями об IP, NAME, MAC и SECURITY_GROUPS для каждого сетевого интерфейса. Возвращается: при успехе Пример: |
|
owner_id integer |
Идентификатор владельца виртуальной машины. Возвращается: при успехе Пример: |
|
owner_name string |
Имя владельца виртуальной машины. Возвращается: при успехе Пример: |
|
state string |
Состояние экземпляра. Возвращается: при успехе Пример: |
|
template_id integer |
Идентификатор шаблона виртуальной машины. Возвращается: при успехе Пример: |
|
updateconf dictionary добавлено в community.general 6.3.0 |
Словарь атрибутов «ключ/значение», заданных вызовом API updateconf. Возвращается: при успехе Пример: |
|
uptime_h integer |
Время работы экземпляра в часах. Возвращается: при успехе Пример: |
|
vcpu integer |
Количество процессоров (ядер). Возвращается: при успехе Пример: |
|
vm_id integer |
Идентификатор виртуальной машины. Возвращается: при успехе Пример: |
|
vm_name string |
Имя виртуальной машины. Возвращается: при успехе Пример: |
instances_ids list / elements=string | Список идентификаторов экземпляров, состояние которых изменено или которые получены с помощью параметра Возвращается: при успехе Пример: |
tagged_instances list / elements=dictionary | Список сведений об экземплярах на основе заданных атрибутов и/или меток, указанных с помощью параметров Возвращается: при успехе |
|
attributes dictionary |
Словарь атрибутов «ключ/значение», связанных с экземпляром. Возвращается: при успехе Пример: |
|
cpu float |
Процент использования ЦП, делённый на 100. Возвращается: при успехе Пример: |
|
disk_size list / elements=string |
Размер диска в МБ. Возвращается: при успехе Пример: |
|
group_id integer |
Идентификатор группы виртуальной машины. Возвращается: при успехе Пример: |
|
group_name string |
Название группы виртуальной машины. Возвращается: при успехе Пример: |
|
labels list / elements=string |
Список текстовых меток, связанных с экземпляром. Возвращается: при успехе Пример: |
|
lcm_state string |
Состояние LCM экземпляра, которое имеет значение только при состоянии ACTIVE. Возвращается: при успехе Пример: |
|
memory string |
Объём памяти в МБ. Возвращается: при успехе Пример: |
|
mode string |
Режим виртуальной машины. Возвращается: при успехе Пример: |
|
networks list / elements=string |
Список словарей со сведениями об IP, NAME, MAC и SECURITY_GROUPS для каждого сетевого интерфейса. Возвращается: при успехе Пример: |
|
owner_id integer |
Идентификатор пользователя виртуальной машины. Возвращается: при успехе Пример: |
|
owner_name string |
Имя пользователя виртуальной машины. Возвращается: при успехе Пример: |
|
state string |
Состояние экземпляра. Возвращается: при успехе Пример: |
|
template_id integer |
Идентификатор шаблона виртуальной машины. Возвращается: при успехе Пример: |
|
updateconf dictionary добавлено в community.general 6.3.0 |
Словарь атрибутов «ключ/значение», заданных вызовом API updateconf. Возвращается: при успехе Пример: |
|
uptime_h integer |
Время работы экземпляра в часах. Возвращается: при успехе Пример: |
|
vcpu integer |
Количество процессоров (ядер). Возвращается: при успехе Пример: |
|
vm_id integer |
Идентификатор виртуальной машины. Возвращается: при успехе Пример: |
|
vm_name string |
Имя виртуальной машины. Возвращается: при успехе Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/general/one_vm_module.html