Spec-Zone.ru › Ansible 2.8

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

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

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

Обзор

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

Требования

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

  • python-oca

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
api_password
-
Пароль пользователя для входа на сервер RPC OpenNebula. Если не указан,
то используется значение переменной окружения ONE_PASSWORD.
Если оба api_username и api_password не указаны, то будет попытка
аутентификации с помощью файла ONE auth. Путь по умолчанию — "~/.one/one_auth".
Установите переменную окружения ONE_AUTH, чтобы переопределить этот путь.
api_url
-
URL сервера RPC OpenNebula.
Рекомендуется использовать HTTPS, чтобы имя пользователя/пароль не
передавались по сети без шифрования.
Если не указан, то используется значение переменной окружения ONE_URL.
api_username
-
Имя пользователя для входа на сервер RPC OpenNebula. Если не указан,
то используется значение переменной окружения ONE_USERNAME.
attributes
-
Значение по умолчанию:
{}
Словарь атрибутов ключ/значение, которые нужно добавить к новым экземплярам или
для установки state экземпляров с этими атрибутами.
Ключи нечувствительны к регистру, и OpenNebula автоматически преобразует их в верхний регистр.
Обратите внимание, что NAME — это специальный атрибут, который устанавливает имя виртуальной машины при развертывании.
# символы могут быть добавлены к 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
    Варианты:
  • нет
  • да ←
Ожидание достижения экземпляром желаемого состояния перед возвратом. Имейте в виду, что ожидание экземпляра в состоянии "running" не означает, что вы сможете подключиться к этому компьютеру, только что процесс загрузки начался на этом экземпляре, см. пример "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
complex
success
список информации об экземплярах, состояние которых изменилось или которые были получены с помощью опции instance_ids.

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

Пример:
{'HYPERVISOR': 'kvm', 'LOGO': 'images/logos/centos.png', 'TE_GALAXY': 'bar', 'USER_INPUTS': None}
cpu
float
Процент использования процессора, деленный на 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
строка
success
Режим виртуальной машины

Пример:
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
список
success
список идентификаторов экземпляров, состояние которых изменилось или которые были получены с помощью опции instance_ids.

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

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

Пример:
{'HYPERVISOR': 'kvm', 'LOGO': 'images/logos/centos.png', 'TE_GALAXY': 'bar', 'USER_INPUTS': None}
cpu
float
Процент использования процессора, деленный на 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
строка
success
Режим виртуальной машины

Пример:
660
сети
список
список словарей с информацией об 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
состояние
строка
состояние экземпляра

Пример:
ACTIVE
template_id
целое число
идентификатор шаблона ВМ

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

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

Пример:
2
vm_id
целое число
идентификатор ВМ

Пример:
153
vm_name
строка
имя ВМ

Пример:
foo


Статус

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

Авторы

  • 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.8/modules/one_vm_module.html

Spec-Zone.ru

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