os_server – Создание/удаление вычислительных экземпляров из OpenStack
Новая в версии 2.0.
Описание
- Создание или удаление вычислительных экземпляров из OpenStack.
Требования
Ниже приведены требования к хосту, на котором выполняется этот модуль.
- openstacksdk
- python >= 2.7
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| api_timeout - | Сколько времени должен ждать слой сокетов перед таймаутом вызовов API. Если это опущено, ничего не будет передано в библиотеку запросов. | |
| auth - | Словарь, содержащий информацию об авторизации, необходимую стратегии плагина авторизации облака. Для плагина по умолчанию password, он будет содержать auth_url, username, password, project_name и любую информацию о доменах, если облако их поддерживает. Для других плагинов этот параметр должен содержать необходимые параметры плагина авторизации. Этот параметр не нужен, если предоставлено имя облака или присутствуют переменные среды OpenStack OS_*. | |
| auth_type - | Имя плагина авторизации для использования. Если облако использует что-то кроме парольной аутентификации, имя плагина должно быть указано здесь, а содержимое параметра auth должно быть соответствующим образом обновлено. | |
| auto_ip boolean |
| Обеспечить, чтобы у экземпляра был публичный IP-адрес, так как облако хочет это сделать Псевдонимы: auto_floating_ip, public_ip |
| availability_zone - | Зона доступности, в которой необходимо создать сервер. | |
| boot_from_volume boolean |
| Экземпляр должен загружаться с постоянного тома, созданного на основе предоставленного образа. Взаимоисключающее с boot_volume. |
| boot_volume - | Имя или ID тома, который должен использоваться в качестве загрузочного тома. Подразумевает boot_from_volume. Взаимоисключающее с image и boot_from_volume. Псевдонимы: root_volume | |
| cacert - | Путь к пакету сертификатов CA, который может использоваться при проверке запросов SSL API. | |
| cert - | Путь к клиенту сертификату для использования в рамках транзакции SSL. | |
| cloud - | Именованное облако или конфигурация облака для работы. Если cloud — строка, она ссылается на именованную конфигурацию облака, как определено в файле OpenStack clouds.yaml. Предоставляет значения по умолчанию для auth и auth_type. Этот параметр не нужен, если указан auth или присутствуют переменные среды OpenStack OS_*. Если cloud — словарь, он содержит полную конфигурацию облака, как в разделе clouds.yaml. | |
| config_drive boolean |
| Включать ли конфигурационный диск при загрузке сервера |
| delete_fip boolean добавлено в 2.2 |
| Когда state отсутствует, и этот параметр истинный, любой плавающий IP-адрес, связанный с экземпляром, будет удален вместе с экземпляром. |
| flavor - | Значение по умолчанию: 1 | Имя или ID флейвера, в котором должен быть создан новый экземпляр. Взаимоисключающее с flavor_ram |
| flavor_include - | Текст для фильтрации имён флейверов, в случае, например, Rackspace, где есть несколько флейверов с одинаковым объёмом RAM. flavor_include — фильтр положительного соответствия — он должен существовать в имени флейвера. | |
| flavor_ram - | Значение по умолчанию: 1 | Минимальный объём RAM в МБ, который должен иметь флейвер, в котором необходимо создать новый экземпляр. Взаимоисключающее с flavor. |
| floating_ip_pools - | Имя пула плавающих IP-адресов, из которого выбрать плавающий IP-адрес | |
| floating_ips - | Список допустимых существующих плавающих IP-адресов, которые нужно назначить этому узлу | |
| image - / обязательно | Имя или ID базового образа для загрузки. | |
| image_exclude - | Текст для фильтрации имён образов, например, в случае HP, где есть несколько имён образов, совпадающих с общими идентификационными частями. image_exclude — фильтр отрицательного соответствия — это текст, который не должен присутствовать в имени образа. По умолчанию "(deprecated)" | |
| interface - добавлено в 2.3 |
| Тип URL конечной точки для извлечения из каталога сервисов. Псевдонимы: endpoint_type |
| key - | Путь к ключу клиента для использования в рамках транзакции SSL. | |
| key_name - | Имя пары ключей, которое необходимо использовать при создании экземпляра | |
| meta - | Список пар ключ-значение, которые необходимо предоставить в качестве метаданных новому экземпляру или строка, содержащая список пар ключ-значение. Пример: meta: "key1=value1,key2=value2" | |
| name - / обязательно | Имя, которое должно быть присвоено экземпляру. Также можно указать ID экземпляра вместо его имени, если state — absent. | |
| network - | Имя или ID сети, к которой необходимо подключить этот экземпляр. Более простой вариант параметра nics, следует использовать только один из network или nics. | |
| nics - | Список сетей, к которым интерфейс экземпляра должен быть подключен. Сети могут быть указаны по id/имени сети или id/имени порта. Также принимается строка, содержащая список (сетевой/портовый) - (id/имя). Пример: nics: "net-id=uuid-1,port-name=myport" Следует использовать только один из network или nics. | |
| region_name - | Имя региона. | |
| reuse_ips boolean добавлено в 2.2 |
| Когда auto_ip истинный, и этот параметр истинный, код auto_ip попытается повторно использовать неназначенные плавающие IP-адреса в проекте, прежде чем создавать новый. Важно отметить, что сделать это безопасно одновременно невозможно, поэтому, если ваш сценарий включает одновременное создание серверов, настоятельно рекомендуется установить это значение в ложь и удалить плавающий IP-адрес, связанный с сервером, при удалении сервера с помощью delete_fip. |
| scheduler_hints - добавлено в 2.1 | Произвольные пары ключ/значение для планировщика для пользовательского использования | |
| security_groups - | Имена групп безопасности, к которым должен быть добавлен экземпляр. Это может быть список YAML или строка, разделенная запятыми. | |
| state - |
| Ресурс должен быть присутствовать или отсутствовать. |
| terminate_volume boolean |
| Если yes, удалить том при удалении экземпляра (если загружается с тома) |
| timeout - | Значение по умолчанию: 180 | Время ожидания модулем, пока экземпляр не перейдет в активное состояние. |
| userdata - | Необработанный блок данных, предоставляемый экземпляру. | |
| verify boolean |
| Нужно ли проверять запросы SSL API. До версии 2.3 значение по умолчанию было True. алиасы: validate_certs |
| volume_size - | Размер создаваемого тома в ГБ при загрузке из образа. | |
| volumes - | Значение по умолчанию: [] | Список имен или идентификаторов существующих томов, которые необходимо подключить к экземпляру. |
| wait boolean |
| Должен ли модуль ожидать создания экземпляра. |
Примечания
Примечание
- Можно использовать стандартные переменные среды OpenStack, такие как
OS_USERNAME, вместо явных значений. - Информация об авторизации управляется os-client-config, что означает, что значения могут быть взяты из файла конфигурации yaml в /etc/ansible/openstack.yaml, /etc/openstack/clouds.yaml или ~/.config/openstack/clouds.yaml, затем из стандартных переменных среды, а затем из явных параметров в playbooks. Более подробную информацию можно найти по адресу http://docs.openstack.org/developer/os-client-config
Примеры
- name: Create a new instance and attaches to a network and passes metadata to the instance
os_server:
state: present
auth:
auth_url: https://identity.example.com
username: admin
password: admin
project_name: admin
name: vm1
image: 4f905f38-e52a-43d2-b6ec-754a13ffb529
key_name: ansible_key
timeout: 200
flavor: 4
nics:
- net-id: 34605f38-e52a-25d2-b6ec-754a13ffb723
- net-name: another_network
meta:
hostname: test1
group: uge_master
# Create a new instance in HP Cloud AE1 region availability zone az2 and
# automatically assigns a floating IP
- name: launch a compute instance
hosts: localhost
tasks:
- name: launch an instance
os_server:
state: present
auth:
auth_url: https://identity.example.com
username: username
password: Equality7-2521
project_name: username-project1
name: vm1
region_name: region-b.geo-1
availability_zone: az2
image: 9302692b-b787-4b52-a3a6-daebb79cb498
key_name: test
timeout: 200
flavor: 101
security_groups: default
auto_ip: yes
# Create a new instance in named cloud mordred availability zone az2
# and assigns a pre-known floating IP
- name: launch a compute instance
hosts: localhost
tasks:
- name: launch an instance
os_server:
state: present
cloud: mordred
name: vm1
availability_zone: az2
image: 9302692b-b787-4b52-a3a6-daebb79cb498
key_name: test
timeout: 200
flavor: 101
floating_ips:
- 12.34.56.79
# Create a new instance with 4G of RAM on Ubuntu Trusty, ignoring
# deprecated images
- name: launch a compute instance
hosts: localhost
tasks:
- name: launch an instance
os_server:
name: vm1
state: present
cloud: mordred
region_name: region-b.geo-1
image: Ubuntu Server 14.04
image_exclude: deprecated
flavor_ram: 4096
# Create a new instance with 4G of RAM on Ubuntu Trusty on a Performance node
- name: launch a compute instance
hosts: localhost
tasks:
- name: launch an instance
os_server:
name: vm1
cloud: rax-dfw
state: present
image: Ubuntu 14.04 LTS (Trusty Tahr) (PVHVM)
flavor_ram: 4096
flavor_include: Performance
# Creates a new instance and attaches to multiple network
- name: launch a compute instance
hosts: localhost
tasks:
- name: launch an instance with a string
os_server:
auth:
auth_url: https://identity.example.com
username: admin
password: admin
project_name: admin
name: vm1
image: 4f905f38-e52a-43d2-b6ec-754a13ffb529
key_name: ansible_key
timeout: 200
flavor: 4
nics: "net-id=4cb08b20-62fe-11e5-9d70-feff819cdc9f,net-id=542f0430-62fe-11e5-9d70-feff819cdc9f..."
- name: Creates a new instance and attaches to a network and passes metadata to the instance
os_server:
state: present
auth:
auth_url: https://identity.example.com
username: admin
password: admin
project_name: admin
name: vm1
image: 4f905f38-e52a-43d2-b6ec-754a13ffb529
key_name: ansible_key
timeout: 200
flavor: 4
nics:
- net-id: 34605f38-e52a-25d2-b6ec-754a13ffb723
- net-name: another_network
meta: "hostname=test1,group=uge_master"
- name: Creates a new instance and attaches to a specific network
os_server:
state: present
auth:
auth_url: https://identity.example.com
username: admin
password: admin
project_name: admin
name: vm1
image: 4f905f38-e52a-43d2-b6ec-754a13ffb529
key_name: ansible_key
timeout: 200
flavor: 4
network: another_network
# Create a new instance with 4G of RAM on a 75G Ubuntu Trusty volume
- name: launch a compute instance
hosts: localhost
tasks:
- name: launch an instance
os_server:
name: vm1
state: present
cloud: mordred
region_name: ams01
image: Ubuntu Server 14.04
flavor_ram: 4096
boot_from_volume: True
volume_size: 75
# Creates a new instance with 2 volumes attached
- name: launch a compute instance
hosts: localhost
tasks:
- name: launch an instance
os_server:
name: vm1
state: present
cloud: mordred
region_name: ams01
image: Ubuntu Server 14.04
flavor_ram: 4096
volumes:
- photos
- music
# Creates a new instance with provisioning userdata using Cloud-Init
- name: launch a compute instance
hosts: localhost
tasks:
- name: launch an instance
os_server:
name: vm1
state: present
image: "Ubuntu Server 14.04"
flavor: "P-1"
network: "Production"
userdata: |
#cloud-config
chpasswd:
list: |
ubuntu:{{ default_password }}
expire: False
packages:
- ansible
package_upgrade: true
# Creates a new instance with provisioning userdata using Bash Scripts
- name: launch a compute instance
hosts: localhost
tasks:
- name: launch an instance
os_server:
name: vm1
state: present
image: "Ubuntu Server 14.04"
flavor: "P-1"
network: "Production"
userdata: |
{%- raw -%}#!/bin/bash
echo " up ip route add 10.0.0.0/8 via {% endraw -%}{{ intra_router }}{%- raw -%}" >> /etc/network/interfaces.d/eth0.conf
echo " down ip route del 10.0.0.0/8" >> /etc/network/interfaces.d/eth0.conf
ifdown eth0 && ifup eth0
{% endraw %}
# Deletes an instance via its ID
- name: remove an instance
hosts: localhost
tasks:
- name: remove an instance
os_server:
name: abcdef01-2345-6789-0abc-def0123456789
state: absent
Статус
- Данный модуль не гарантирует обратную совместимость. [превью]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- Monty Taylor (@emonty)
Подсказка
Если вы заметите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 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/os_server_module.html