Модуль openstack.cloud.server – Создание/удаление вычислительных экземпляров из OpenStack
Примечание
Этот модуль является частью коллекции openstack.cloud (версия 2.2.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 целое число | Сколько времени должна ждать транспортная сокет-обёртка перед истечением времени ожидания для вызовов API. Если это значение опущено, библиотеке запросов ничего не будет передано. |
auth словарь | Словарь, содержащий информацию об авторизации, необходимую для стратегии подключаемого модуля авторизации облака. Для стандартного плагина password в нём будут содержаться auth_url, username, password, project_name и любая информация о доменах (например, user_domain_name или project_domain_name), если облако их поддерживает. Для других плагинов этот параметр должен содержать необходимые параметры плагина авторизации. Этот параметр не требуется, если указано имя облака или присутствуют переменные окружения OpenStack OS_*. |
auth_type строка | Имя плагина авторизации, который необходимо использовать. Если облако использует что-то другое, кроме парольной аутентификации, имя плагина должно быть указано здесь, а содержимое параметра auth должно быть соответствующим образом обновлено. |
auto_ip псевдонимы: auto_floating_ip, public_ip логическое значение | Обеспечить наличие у экземпляра публичного IP-адреса, как хочет облако. Например, облако может добавить плавающий IP-адрес для сервера или подключить сервер к публичной сети. Требует, чтобы wait было Поддержка плавающих IP-адресов нестабильна в данном модуле, используйте с осторожностью. Параметры auto_ip, floating_ip_pools и floating_ips взаимодействуют не очевидным образом и не документабельным образом. Для явного и безопасного присоединения и отсоединения плавающих IP-адресов используйте вместо этого модуль openstack.cloud.resource. Варианты:
|
availability_zone строка | Зона доступности, в которой необходимо создать сервер. Это свойство сервера изменить нельзя. |
boot_from_volume логическое значение | Экземпляр должен загружаться с постоянного тома, созданного на основе предоставленного образа. Взаимоисключающее с boot_volume. Это свойство сервера изменить нельзя. Варианты:
|
boot_volume псевдонимы: root_volume строка | Имя или идентификатор тома, который необходимо использовать в качестве тома для загрузки. Подразумевает boot_from_volume. Взаимоисключающее с image и boot_from_volume. Это свойство сервера изменить нельзя. |
ca_cert псевдонимы: cacert строка | Путь к пакету сертификатов CA, который может использоваться для проверки запросов SSL к API. |
client_cert псевдонимы: cert строка | Путь к клиенту сертификату, который необходимо использовать в рамках SSL-транзакции. |
client_key псевдонимы: key строка | Путь к ключу клиента, который необходимо использовать в рамках SSL-транзакции. |
cloud любой | Именованное облако или конфигурация облака для работы. Если cloud — строка, она ссылается на именованную конфигурацию облака, как определено в файле OpenStack clouds.yaml. Предоставляет значения по умолчанию для auth и auth_type. Этот параметр не требуется, если предоставлен auth или присутствуют переменные окружения OpenStack OS_*. Если cloud — словарь, он содержит полную конфигурацию облака, аналогичную той, что находится в секции clouds.yaml. |
config_drive логическое значение | Включать ли загрузку сервера с включенным конфигурационным диском. Это свойство сервера изменить нельзя. Варианты:
|
delete_ips псевдонимы: delete_fip логическое значение | Когда state — Поддержка плавающих IP-адресов нестабильна в данном модуле, используйте с осторожностью. Варианты:
|
description строка | Описание сервера. |
flavor строка | Имя или идентификатор флейвера, в котором должен быть создан новый экземпляр. Когда state=present, должно быть определено ровно одно из flavor и flavor_ram. Это свойство сервера изменить нельзя. |
flavor_include строка | Текст для фильтрации имён флейверов, в случаях, таких как Rackspace, где существует несколько флейверов с одинаковым количеством оперативной памяти. flavor_include — фильтр положительного совпадения — он должен присутствовать в имени флейвера. Это свойство сервера изменить нельзя. |
flavor_ram integer | Минимальный объём оперативной памяти в МБ, который должен иметь образ виртуальной машины. При state=present необходимо определить одно из значений flavor или flavor_ram. Это свойство сервера изменить нельзя. |
floating_ip_pools list / elements=string | Имя пула плавающего IP-адреса для выбора плавающего 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: “ключ1=значение1,ключ2=значение2” |
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 |
Tag для конкретного порта, передаваемого через метаданные. Например: |
region_name string | Имя региона. |
reuse_ips boolean | Если auto_ip имеет значение true и этот параметр имеет значение true, код auto_ip попытается повторно использовать неназначенные плавающие IP-адреса в проекте, прежде чем создавать новые. Важно отметить, что сделать это одновременно невозможно, поэтому, если ваш случай использования включает одновременное создание серверов, настоятельно рекомендуется установить это значение в false и удалить плавающий IP-адрес, связанный с сервером, при удалении сервера с помощью delete_ips. Поддержка плавающих IP-адресов в этом модуле нестабильна, используйте с осторожностью. Это свойство сервера изменить нельзя. Варианты:
|
scheduler_hints dictionary | Произвольные пары ключ/значение для планировщика для пользовательского использования. Это свойство сервера изменить нельзя. |
sdk_log_level string | Уровень логирования OpenStackSDK Варианты:
|
sdk_log_path string | Путь к файлу журнала OpenStackSDK. Если пусто, журнал не записывается |
security_groups список / элементы=строка | Названия или идентификаторы групп безопасности, к которым необходимо добавить экземпляр. При создании сервера, если параметр security_groups опущен, API создает сервер в группе безопасности по умолчанию. Запрошенные группы безопасности не применяются к существующим портам. По умолчанию: |
state строка | Необходимо ли ресурсу Доступные значения:
|
terminate_volume булево | Если Это свойство сервера обновить нельзя. Доступные значения:
|
timeout целое число | Количество времени, которое модуль должен ждать, пока экземпляр не перейдет в активное состояние. По умолчанию: |
userdata строка | Необработанные данные, которые доступны экземпляру. Это свойство сервера обновить нельзя. |
validate_certs алиасы: verify булево | Подтверждать ли запросы SSL API. До Ansible 2.3 это по умолчанию было Доступные значения:
|
volume_size целое число | Размер создаваемого тома в ГБ, если загрузка происходит с тома, основанного на изображении. Это свойство сервера обновить нельзя. |
volumes список / элементы=строка | Список имеющихся томов, имена или идентификаторы, которые необходимо подключить к экземпляру. Это свойство сервера обновить нельзя. По умолчанию: |
wait булево | Если модуль должен ждать создания экземпляра. Доступные значения:
|
Примечания
Примечание
- Можно использовать стандартные переменные окружения 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, для flavor, который будет использоваться для этого сервера. Возвращается: при успехе |
|
has_config_drive string |
Указывает, включает ли диск конфигурации внедрение метаданных. Не все облачные провайдеры поддерживают эту функцию. Возвращается: при успехе |
|
host_id string |
ID, представляющий хост этого сервера. Возвращается: при успехе |
|
host_status string |
Состояние хоста. Возвращается: при успехе |
|
hostname string |
Имя хоста, установленное на экземпляре при его загрузке. По умолчанию, появляется в ответе только для административных пользователей. Возвращается: при успехе |
|
hypervisor_hostname string |
Имя хоста гипервизора. Появляется в ответе только для административных пользователей. Возвращается: при успехе |
|
id string |
ID сервера. Returned: success |
|
image dictionary |
Свойство image, возвращаемое сервером. Returned: success |
|
image_id string |
Ссылка на образ, как ID или полный URL, для использования с этим сервером. Returned: success |
|
instance_name string |
Имя экземпляра. Compute API генерирует имя экземпляра из шаблона имени экземпляра. Появляется в ответе только для административных пользователей. Returned: success |
|
is_locked boolean |
Заблокирован ли сервер. Returned: success |
|
kernel_id string |
UUID образа ядра при использовании AMI. Будет null, если нет. По умолчанию, отображается в ответе только для административных пользователей. Returned: success |
|
key_name string |
Имя связанного ключа. Returned: success |
|
launch_index integer |
При запуске серверов через несколько команд create, это последовательность, в которой были запущены серверы. По умолчанию, отображается в ответе только для административных пользователей. Returned: success |
|
launched_at string |
Метка времени запуска сервера. Returned: success |
|
links string |
Список словарей, содержащих ссылки, относящиеся к этому серверу. Returned: success |
|
max_count string |
Максимальное количество серверов для создания. Returned: success |
|
metadata dictionary |
Список тегов. Returned: success |
|
min_count string |
Минимальное количество серверов для создания. Returned: success |
|
name string |
Имя сервера. Returned: success |
|
networks string |
Объект сетей. Обязательный параметр, когда для клиента определено несколько сетей. Если параметр networks не указан, сервер подключается к единственной сети, созданной для текущего клиента. Returned: success |
|
power_state string |
Состояние питания этого сервера. Returned: success |
|
progress integer |
Пока сервер строится, это значение представляет процент завершения. После завершения он будет равен 100. Returned: success |
|
project_id string |
ID проекта, с которым связан этот сервер. Returned: success |
|
ramdisk_id string |
UUID образа ramdisk при использовании AMI. Будет null, если нет. По умолчанию, отображается в ответе только для административных пользователей. Returned: success |
|
reservation_id string |
ID резервирования для сервера. Это ID, который может быть полезен для отслеживания групп серверов, созданных с помощью нескольких команд create, которые будут иметь один и тот же reservation_id. По умолчанию, отображается в ответе только для административных пользователей. Returned: success |
|
root_device_name string |
Имя корневого устройства для экземпляра. По умолчанию, отображается в ответе только для административных пользователей. Returned: success |
|
scheduler_hints словарь |
Словарь данных для отправки планировщику. Возвращается: успех |
|
security_groups список / элементы=словарь |
Список применимых групп безопасности. Каждая группа содержит ключи: описание, имя, идентификатор и правила. Возвращается: успех |
|
server_groups список / элементы=строка |
Идентификаторы UUID групп серверов, к которым принадлежит сервер. В настоящее время может содержать не более одной записи. Возвращается: успех |
|
status строка |
Состояние сервера. Допустимые значения включают «ACTIVE», «BUILDING», «DELETED», «ERROR», «HARD_REBOOT», «PASSWORD», «PAUSED», «REBOOT», «REBUILD», «RESCUED», «RESIZED», «REVERT_RESIZE», «SHUTOFF», «SOFT_DELETED», «STOPPED», «SUSPENDED», «UNKNOWN» или «VERIFY_RESIZE». Возвращается: успех |
|
tags список / элементы=строка |
Список связанных тегов. Возвращается: успех |
|
task_state строка |
Состояние задачи сервера. Возвращается: успех |
|
terminated_at строка |
Отметка времени завершения сервера (если он был завершён). Возвращается: успех |
|
trusted_image_certificates список / элементы=строка |
Список идентификаторов доверенных сертификатов, которые использовались при проверке подписи изображения для проверки сертификата подписи. Возвращается: успех |
|
updated_at строка |
Отметка времени последнего обновления сервера. Возвращается: успех |
|
user_data строка |
Конфигурационная информация или скрипты для использования при запуске. Кодировка в Base64. Возвращается: успех |
|
user_id строка |
Идентификатор владельцев этого сервера. Возвращается: успех |
|
vm_state строка |
Состояние виртуальной машины этого сервера. Возвращается: успех |
|
volumes список / элементы=строка |
То же, что и attached_volumes. Возвращается: успех |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/openstack/cloud/server_module.html