Модуль openstack.cloud.server – создание/удаление вычислительных экземпляров в OpenStack
Примечание
Этот модуль входит в коллекцию openstack.cloud (версия 2.5.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install openstack.cloud. Для использования этого модуля необходимы дополнительные требования; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: openstack.cloud.server.
Краткое описание
- Создание и удаление вычислительных экземпляров в OpenStack.
Требования
На узле, выполняющем этот модуль, должны быть установлены следующие компоненты.
- python >= 3.6
- openstacksdk >= 1.0.0
Параметры
Параметр | Комментарии |
|---|---|
api_timeout integer | Время ожидания сокетным уровнем до истечения срока ожидания вызовов API. Если параметр не указан, в библиотеку requests ничего не передается. |
auth dictionary | Словарь с данными аутентификации, необходимыми выбранному в облаке модулю аутентификации. Для стандартного модуля password в нем должны содержаться auth_url, username, password, project_name и сведения о доменах (например, user_domain_name или project_domain_name), если облако их поддерживает. Для других модулей этот параметр должен содержать все параметры, необходимые соответствующему модулю аутентификации. Этот параметр не требуется, если указано именованное облако или заданы переменные среды OpenStack OS_*. |
auth_type string | Имя используемого модуля аутентификации. Если облако использует не парольную аутентификацию, укажите здесь имя модуля и соответствующим образом измените содержимое параметра auth. |
auto_ip aliases: auto_floating_ip, public_ip boolean | Обеспечить экземпляру общедоступный IP-адрес способом, предусмотренным облаком. Например, облако может назначить серверу плавающий IP-адрес или подключить сервер к общедоступной сети. При создании сервера для параметра wait необходимо задать значение Поддержка плавающих IP-адресов в этом модуле нестабильна; используйте с осторожностью. Параметры auto_ip, floating_ip_pools и floating_ips взаимодействуют неочевидным образом, а все возможные варианты такого взаимодействия невозможно документировать. Для явного и безопасного подключения и отключения плавающих IP-адресов используйте модуль openstack.cloud.resource. Варианты:
|
availability_zone string | Зона доступности, в которой нужно создать сервер. Этот атрибут сервера нельзя обновить. |
boot_from_volume boolean | Нужно ли загружать экземпляр с постоянного тома, созданного на основе указанного образа. Несовместим с параметром boot_volume. Этот атрибут сервера нельзя обновить. Варианты:
|
boot_volume aliases: root_volume string | Имя или идентификатор тома, с которого нужно выполнить загрузку. Подразумевает boot_from_volume. Несовместим с параметрами image и boot_from_volume. Этот атрибут сервера нельзя обновить. |
ca_cert aliases: cacert string | Путь к пакету сертификатов центра сертификации, используемому для проверки запросов к API по SSL. |
client_cert aliases: cert string | Путь к сертификату клиента, используемому при обмене данными по SSL. |
client_key aliases: key string | Путь к ключу клиента, используемому при обмене данными по SSL. |
cloud any | Именованное облако или конфигурация облака, с которым нужно работать. Если cloud — строка, она указывает на именованную конфигурацию облака, заданную в файле OpenStack clouds.yaml. Предоставляет значения по умолчанию для auth и auth_type. Этот параметр не требуется, если задан auth или присутствуют переменные среды OpenStack OS_*. Если cloud — словарь, он содержит полную конфигурацию облака, аналогичную разделу в clouds.yaml. |
config_drive boolean | Нужно ли загружать сервер с включенным диском конфигурации. Этот атрибут сервера нельзя обновить. Варианты:
|
delete_ips aliases: delete_fip boolean | Если state имеет значение Поддержка плавающих IP-адресов в этом модуле нестабильна; используйте с осторожностью. Варианты:
|
description string | Описание сервера. |
flavor string | Имя или идентификатор типа конфигурации, с которым нужно создать новый экземпляр. При значении state=present необходимо задать ровно один из параметров: flavor или flavor_ram. Этот атрибут сервера нельзя обновить. |
flavor_include string | Текст для фильтрации имен типов конфигурации. Параметр пригодится, например, в Rackspace, где есть несколько типов конфигурации с одинаковым объемом оперативной памяти. flavor_include — фильтр положительного совпадения: заданный текст должен присутствовать в имени типа конфигурации. Этот атрибут сервера нельзя обновить. |
flavor_ram integer | Минимальный объем оперативной памяти в МБ, который должен иметь тип конфигурации для создания нового экземпляра. При значении state=present необходимо задать ровно один из параметров: flavor или flavor_ram. Этот атрибут сервера нельзя обновить. |
floating_ip_pools list / elements=string | Имя пула плавающих IP-адресов, из которого нужно выбрать адрес. При создании сервера для параметра wait необходимо задать значение Поддержка плавающих IP-адресов в этом модуле нестабильна; используйте с осторожностью. Параметры auto_ip, floating_ip_pools и floating_ips взаимодействуют неочевидным образом, а все возможные варианты такого взаимодействия невозможно документировать. Для явного и безопасного подключения и отключения плавающих IP-адресов используйте модуль openstack.cloud.resource. |
floating_ips list / elements=string | Список существующих допустимых плавающих IP-адресов для назначения этому узлу. При создании сервера для параметра wait необходимо задать значение Поддержка плавающих IP-адресов в этом модуле нестабильна; используйте с осторожностью. Параметры auto_ip, floating_ip_pools и floating_ips взаимодействуют неочевидным образом, а все возможные варианты такого взаимодействия невозможно документировать. Для явного и безопасного подключения и отключения плавающих IP-адресов используйте модуль openstack.cloud.resource. |
image string | Имя или идентификатор базового образа для загрузки. Обязателен, если boot_from_volume=true. Этот атрибут сервера нельзя обновить. |
image_exclude string | Текст для фильтрации имен образов. Параметр пригодится, например, в HP, где есть несколько имен образов, совпадающих по общим идентифицирующим частям. image_exclude — фильтр отрицательного совпадения: заданный текст не должен присутствовать в имени образа. Этот атрибут сервера нельзя обновить. По умолчанию: |
interface aliases: endpoint_type string | Тип URL конечной точки, получаемой из каталога служб. Варианты:
|
key_name string | Имя пары ключей, используемой при создании экземпляра. Этот атрибут сервера нельзя обновить. |
metadata aliases: meta any | Список пар «ключ — значение», передаваемых в качестве метаданных новому экземпляру, либо строка со списком пар «ключ — значение». Пример: metadata: “key1=value1,key2=value2” |
name string / обязательный | Имя, присваиваемое экземпляру. Если state имеет значение absent, вместо имени можно указать идентификатор экземпляра. Этот атрибут сервера нельзя обновить. |
network string | Имя или идентификатор сети, к которой нужно подключить этот экземпляр. Упрощенный вариант параметра nics; следует указывать только один из параметров: network или nics. Этот атрибут сервера нельзя обновить. |
nics list / elements=any | Список сетей, к которым нужно подключить интерфейс экземпляра. Сети можно указать по net-id/net-name/port-id или port-name. Также можно указать строку со списком значений в формате (net/port)-(id/name). Пример: Следует указывать только один из параметров: network или nics. Этот атрибут сервера нельзя обновить. По умолчанию: |
|
tag string |
Тег для конкретного порта, передаваемый через метаданные. Например: |
region_name string | Имя региона. |
reuse_ips boolean | Если auto_ip включен и этот параметр включен, код auto_ip попытается повторно использовать неназначенные плавающие IP-адреса проекта, прежде чем создать новый. Важно отметить, что безопасно выполнять эту операцию одновременно невозможно. Поэтому, если в вашем сценарии серверы создаются одновременно, настоятельно рекомендуется отключить этот параметр и удалять плавающий IP-адрес сервера при удалении сервера с помощью параметра delete_ips. Поддержка плавающих IP-адресов в этом модуле нестабильна; используйте с осторожностью. Этот атрибут сервера нельзя обновить. Варианты:
|
scheduler_hints dictionary | Произвольные пары «ключ — значение», передаваемые планировщику для пользовательских задач. Этот атрибут сервера нельзя обновить. |
sdk_log_level string | Уровень журналирования OpenStackSDK Варианты:
|
sdk_log_path string | Путь к файлу журнала OpenStackSDK. Если значение пустое, журнал не ведется. |
security_groups list / elements=string | Имена или идентификаторы групп безопасности, в которые нужно добавить экземпляр. При создании сервера, если параметр security_groups не указан, API создает сервер в группе безопасности по умолчанию. Запрошенные группы безопасности не применяются к уже существующим портам. По умолчанию: |
state string | Должен ли ресурс быть Варианты:
|
tags list / elements=string | Список тегов для добавления к экземпляру. По умолчанию: |
terminate_volume boolean | Если Этот атрибут сервера нельзя обновить. Варианты:
|
timeout integer | Время ожидания модулем перехода экземпляра в активное состояние. По умолчанию: |
userdata string | Непрозрачный блок данных, доступный экземпляру. Этот атрибут сервера нельзя обновить. |
validate_certs aliases: verify boolean | Нужно ли проверять запросы к API по SSL. До Ansible 2.3 значением по умолчанию было Варианты:
|
volume_size integer | Размер создаваемого тома в ГБ при загрузке с тома, созданного на основе образа. Этот атрибут сервера нельзя обновить. |
volumes list / elements=string | Список имен или идентификаторов существующих томов для подключения к экземпляру. Этот атрибут сервера нельзя обновить. По умолчанию: |
wait boolean | Должен ли модуль ожидать создания экземпляра. Варианты:
|
Примечания
Примечание
- Вместо явного указания значений можно использовать стандартные переменные среды OpenStack, например
OS_USERNAME. - Параметры аутентификации обрабатывает openstacksdk. Это означает, что значения могут быть взяты из файла конфигурации YAML /etc/ansible/openstack.yaml, /etc/openstack/clouds.yaml или ~/.config/openstack/clouds.yaml, затем из стандартных переменных среды и, наконец, из явных параметров в плейбуках. Дополнительные сведения см. на странице https://docs.openstack.org/openstacksdk/
Примеры
- name: Create a new instance with metadata and attaches it to a network
openstack.cloud.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
openstack.cloud.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: true
# 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
openstack.cloud.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
openstack.cloud.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
openstack.cloud.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
openstack.cloud.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 with metadata and attaches it to a network
openstack.cloud.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
openstack.cloud.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
openstack.cloud.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
openstack.cloud.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
openstack.cloud.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
openstack.cloud.server:
name: vm1
state: present
image: "Ubuntu Server 22.04"
flavor: "P-1"
network: "Production"
userdata: |
#!/bin/sh
apt update
apt -y full-upgrade
# Create a new instance with server group for (anti-)affinity
# server group ID is returned from openstack.cloud.server_group module.
- name: launch a compute instance
hosts: localhost
tasks:
- name: launch an instance
openstack.cloud.server:
state: present
name: vm1
image: 4f905f38-e52a-43d2-b6ec-754a13ffb529
flavor: 4
scheduler_hints:
group: f5c8c61a-9230-400a-8ed2-3b023c190a7f
# Create an instance with "tags" for the nic
- name: Create instance with nics "tags"
openstack.cloud.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
flavor: 4
nics:
- port-name: net1_port1
tag: test_tag
- net-name: another_network
# Deletes an instance via its ID
- name: remove an instance
hosts: localhost
tasks:
- name: remove an instance
openstack.cloud.server:
name: abcdef01-2345-6789-0abc-def0123456789
state: absent
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
server dictionary | Словарь с описанием сервера. Возвращается: при успешном выполнении, если state имеет значение ‘present’. |
|
access_ipv4 string |
Адрес IPv4, который следует использовать для доступа к этому серверу. Может автоматически задаваться поставщиком облачных услуг. Возвращается: при успешном выполнении |
|
access_ipv6 string |
Адрес IPv6, который следует использовать для доступа к этому серверу. Может автоматически задаваться поставщиком облачных услуг. Возвращается: при успешном выполнении |
|
addresses dictionary |
Словарь адресов, по которым можно получить доступ к этому серверу. Словарь содержит такие ключи, как ‘private’ и ‘public’; каждый из них содержит список словарей с адресами соответствующего типа. Адреса представлены в словарях с ключами ‘addr’ и ‘version’: значение последнего — 4 или 6 в зависимости от протокола IP-адреса. Возвращается: при успешном выполнении |
|
admin_password string |
При первом создании сервера возвращает пароль администратора. Возвращается: при успешном выполнении |
|
attached_volumes list / elements=string |
Список подключённых томов. Каждый элемент списка содержит как минимум ключ ‘id’, идентифицирующий соответствующий том. Возвращается: при успешном выполнении |
|
availability_zone string |
Имя зоны доступности, к которой относится этот сервер. Возвращается: при успешном выполнении |
|
block_device_mapping string |
Позволяет точно настроить сопоставление блочных устройств для экземпляра. Обычно эта функция используется для загрузки серверов с томов. Возвращается: при успешном выполнении |
|
compute_host string |
Имя вычислительного узла, на котором работает этот экземпляр. Отображается в ответе только для пользователей с правами администратора. Возвращается: при успешном выполнении |
|
config_drive string |
Указывает, использовался ли для этого сервера конфигурационный диск. Возвращается: при успешном выполнении |
|
created_at string |
Временная метка создания сервера. Возвращается: при успешном выполнении |
|
description string |
Описание сервера. До микроверсии 2.19 этому полю присваивалось имя сервера. Возвращается: при успешном выполнении |
|
disk_config string |
Конфигурация диска: AUTO или MANUAL. Возвращается: при успешном выполнении |
|
flavor dictionary |
Свойство flavor, полученное от сервера. Возвращается: при успешном выполнении |
|
flavor_id string |
Идентификатор flavor в виде ID или полного URL, используемого для этого сервера. Возвращается: при успешном выполнении |
|
has_config_drive string |
Указывает, позволяет ли конфигурационный диск внедрять метаданные. Эта функция доступна не у всех поставщиков облачных услуг. Возвращается: при успешном выполнении |
|
host_id string |
Идентификатор узла, на котором размещён этот сервер. Возвращается: при успешном выполнении |
|
host_status string |
Состояние узла. Возвращается: при успешном выполнении |
|
hostname string |
Имя узла, заданное для экземпляра при загрузке. По умолчанию отображается в ответе только для пользователей с правами администратора. Возвращается: при успешном выполнении |
|
hypervisor_hostname string |
Имя узла гипервизора. Отображается в ответе только для пользователей с правами администратора. Возвращается: при успешном выполнении |
|
id string |
Идентификатор сервера. Возвращается: при успешном выполнении |
|
image dictionary |
Свойство image, полученное от сервера. Возвращается: при успешном выполнении |
|
image_id string |
Идентификатор образа в виде ID или полного URL образа, используемого для этого сервера. Возвращается: при успешном выполнении |
|
instance_name string |
Имя экземпляра. Compute API формирует его на основе шаблона имени экземпляра. Отображается в ответе только для пользователей с правами администратора. Возвращается: при успешном выполнении |
|
is_locked boolean |
Состояние блокировки сервера. Возвращается: при успешном выполнении |
|
kernel_id string |
UUID образа ядра при использовании AMI. Если образ не используется, значение равно null. По умолчанию отображается в ответе только для пользователей с правами администратора. Возвращается: при успешном выполнении |
|
key_name string |
Имя связанной пары ключей. Возвращается: при успешном выполнении |
|
launch_index integer |
Если серверы запускаются с помощью множественного создания, это порядковый номер запуска сервера. По умолчанию отображается в ответе только для пользователей с правами администратора. Возвращается: при успешном выполнении |
|
launched_at string |
Временная метка запуска сервера. Возвращается: при успешном выполнении |
|
links string |
Список словарей со ссылками, относящимися к этому серверу. Возвращается: при успешном выполнении |
|
max_count string |
Максимальное количество создаваемых серверов. Возвращается: при успешном выполнении |
|
metadata dictionary |
Список строк тегов. Возвращается: при успешном выполнении |
|
min_count string |
Минимальное количество создаваемых серверов. Возвращается: при успешном выполнении |
|
name string |
Имя сервера Возвращается: при успешном выполнении |
|
networks string |
Объект сетей. Обязательный параметр, если для арендатора определено несколько сетей. Если параметр networks не указан, сервер подключается к единственной сети, созданной для текущего арендатора. Возвращается: при успешном выполнении |
|
power_state string |
Состояние питания этого сервера. Возвращается: при успешном выполнении |
|
progress integer |
Пока сервер создаётся, это значение показывает процент выполнения. После завершения оно будет равно 100. Возвращается: при успешном выполнении |
|
project_id string |
Идентификатор проекта, с которым связан этот сервер. Возвращается: при успешном выполнении |
|
ramdisk_id string |
UUID образа ramdisk при использовании AMI. Если образ не используется, значение равно null. По умолчанию отображается в ответе только для пользователей с правами администратора. Возвращается: при успешном выполнении |
|
reservation_id string |
Идентификатор резервации сервера. Этот идентификатор может быть полезен для отслеживания групп серверов, созданных с помощью множественного создания: у всех таких серверов будет одинаковый reservation_id. По умолчанию отображается в ответе только для пользователей с правами администратора. Возвращается: при успешном выполнении |
|
root_device_name string |
Имя корневого устройства экземпляра. По умолчанию отображается в ответе только для пользователей с правами администратора. Возвращается: при успешном выполнении |
|
scheduler_hints dictionary |
Словарь данных, передаваемых планировщику. Возвращается: при успешном выполнении |
|
security_groups list / elements=dictionary |
Список применимых групп безопасности. Каждая группа содержит ключи description, name, id и rules. Возвращается: при успешном выполнении |
|
server_groups list / elements=string |
UUID групп серверов, к которым относится сервер. В настоящее время список может содержать не более одного элемента. Возвращается: при успешном выполнении |
|
status string |
Текущее состояние сервера. Допустимые значения: ‘ACTIVE’, ‘BUILDING’, ‘DELETED’, ‘ERROR’, ‘HARD_REBOOT’, ‘PASSWORD’, ‘PAUSED’, ‘REBOOT’, ‘REBUILD’, ‘RESCUED’, ‘RESIZED’, ‘REVERT_RESIZE’, ‘SHUTOFF’, ‘SOFT_DELETED’, ‘STOPPED’, ‘SUSPENDED’, ‘UNKNOWN’ или ‘VERIFY_RESIZE’. Возвращается: при успешном выполнении |
|
tags list / elements=string |
Список связанных тегов. Возвращается: при успешном выполнении |
|
task_state string |
Состояние задачи этого сервера. Возвращается: при успешном выполнении |
|
terminated_at string |
Временная метка завершения работы сервера (если он был завершён). Возвращается: при успешном выполнении |
|
trusted_image_certificates list / elements=string |
Список идентификаторов доверенных сертификатов, использованных при проверке подписи образа для проверки сертификата подписи. Возвращается: при успешном выполнении |
|
updated_at string |
Временная метка последнего обновления этого сервера. Возвращается: при успешном выполнении |
|
user_data string |
Данные конфигурации или скрипты, используемые при запуске. Кодировка Base64. Возвращается: при успешном выполнении |
|
user_id string |
Идентификатор владельца этого сервера. Возвращается: при успешном выполнении |
|
vm_state string |
Состояние виртуальной машины этого сервера. Возвращается: при успешном выполнении |
|
volumes list / elements=string |
То же, что и attached_volumes. Возвращается: при успешном выполнении |
Ссылки на коллекцию
© 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/openstack/cloud/server_module.html