ngine_io.cloudstack.cs_instance – Управляет экземплярами и виртуальными машинами в облаках на основе Apache CloudStack.
Примечание
Этот плагин является частью коллекции ngine_io.cloudstack (версия 2.0.0).
Для его установки используйте: ansible-galaxy collection install ngine_io.cloudstack.
Для использования в книге задач укажите: ngine_io.cloudstack.cs_instance.
Новое в версии 0.1.0: модуля ngine_io.cloudstack
Обзор
- Развертывание, запуск, обновление, масштабирование, перезапуск, восстановление, остановка и уничтожение экземпляров.
Требования
Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.
- python >= 2.6
- cs >= 0.9.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| account строка | Аккаунт, к которому относится экземпляр. | |
| affinity_groups список / элементы=строка | Названия групп сродства, которые должны быть применены к новому экземпляру. псевдонимы: affinity_group | |
| allow_root_disk_shrink булево |
| Включает уменьшение размера тома, когда новый размер меньше старого. |
| api_http_method строка |
| HTTP-метод, используемый для запроса к API-точке входа. Если не указан, используется переменная среды CLOUDSTACK_METHOD. |
| api_key строка / обязательно | API-ключ CloudStack API. Если не указан, используется переменная среды CLOUDSTACK_KEY. | |
| api_secret строка / обязательно | Секретный ключ CloudStack API. Если не указан, используется переменная среды CLOUDSTACK_SECRET. | |
| api_timeout целое число | По умолчанию: 10 | Таймаут HTTP в секундах. Если не указан, используется переменная среды CLOUDSTACK_TIMEOUT. |
| api_url строка / обязательно | URL CloudStack API, например, https://cloud.example.com/client/api. Если не указан, используется переменная среды CLOUDSTACK_ENDPOINT. | |
| api_verify_ssl_cert строка | Проверка сертификата авторитета CA. Если не указан, используется переменная среды CLOUDSTACK_VERIFY. | |
| cpu целое число | Количество процессоров, выделяемых экземпляру, используется с настраиваемыми предложениями услуг. | |
| cpu_speed целое число | Частота тактовой частоты/доли, выделенные экземпляру, используются с настраиваемыми предложениями услуг. | |
| details словарь | Карта для указания пользовательских параметров. | |
| disk_offering строка | Имя предложения диска, которое будет использоваться. | |
| disk_size целое число | Размер диска в ГБ, необходимый при развертывании экземпляра из ISO. | |
| display_name строка | Пользовательское имя отображения экземпляров. Имя отображения будет установлено в name, если не указано. Необходимо указать либо name, либо display_name. | |
| domain строка | Домен, к которому относится экземпляр. | |
| force булево |
| Принудительно остановить/запустить экземпляр, если это необходимо для применения изменений. В противном случае запущенный экземпляр не будет изменён. |
| group строка | Группа, в которой должен находиться новый экземпляр. | |
| host строка | Хост, на котором экземпляр должен быть развернут или запущен. Учитывается только при state=started или экземпляр запущен. Требуются права администратора root. | |
| hypervisor строка | Имя гипервизора, который должен использоваться для создания нового экземпляра. Актуально при использовании state=present, но учитывается только если не задано в ISO/шаблоне. Если не задано или не найдено в ISO/шаблоне, будет использован первый найденный гипервизор. Возможные значения: KVM, VMware, BareMetal, XenServer, LXC, HyperV, UCS, OVM, Simulator. | |
| ip6_address строка | IPv6-адрес для сети по умолчанию экземпляра. | |
| ip_address строка | IPv4-адрес для сети по умолчанию экземпляра во время создания. | |
| ip_to_networks список / элементы=словарь | Список сопоставлений в формате {'network': ИмяСети, 'ip': 1.2.3.4}
Исключает параметр networks. псевдонимы: ip_to_network | |
| iso строка | Имя или идентификатор ISO, который необходимо использовать для создания нового экземпляра. Требуется при использовании state=present. Исключает параметр template. | |
| keyboard строка |
| Тип клавиатуры для экземпляра. |
| memory целое число | Память, выделенная экземпляру, используется с настраиваемыми предложениями услуг. | |
| name строка | Имя хоста экземпляра. name может содержать только буквы ASCII.Имя будет сгенерировано (UUID) CloudStack, если не указано, и его нельзя изменить впоследствии. Необходимо указать либо name, либо display_name. | |
| networks список / элементы=строка | Список сетей для использования с новым экземпляром. псевдонимы: network | |
| poll_async булево |
| Опрашивать асинхронные задачи до завершения. |
| project строка | Имя проекта, в котором будет развернут экземпляр. | |
| root_disk_size целое число | Размер корневого диска в ГБ, необходимый при развертывании экземпляра с гипервизором KVM и желании изменить размер корневого диска при запуске (требуется CloudStack >= 4.4, cloud-initramfs-growroot установлен и включен в шаблоне). | |
| security_groups список / элементы=строка | Список групп безопасности, которые должны быть применены к экземпляру. псевдонимы: security_group | |
| service_offering строка | Имя или идентификатор предложения услуг нового экземпляра. Если не указано, используется первое найденное предложение услуг. | |
| ssh_key строка | Имя SSH-ключа, который будет развернут на новом экземпляре. | |
| state строка |
| Состояние экземпляра. |
| tags список / элементы=словарь | Список тегов. Теги — список словарей с ключами key и value.Чтобы удалить все теги, задайте пустой список, например, теги: []. псевдонимы: tag | |
| template строка | Имя, текст отображения или идентификатор шаблона, который необходимо использовать для создания нового экземпляра. Требуется при использовании state=present. Исключает параметр iso. | |
| template_filter строка |
| Имя фильтра, используемого для поиска шаблона или iso. Используется для параметров iso или template при state=present. Фильтр all был добавлен в версии 2.6.псевдонимы: iso_filter |
| user_data строка | Дополнительные данные (ASCII), которые можно отправить экземпляру после успешного развертывания. Данные будут автоматически закодированы в base64. Рекомендуется переключиться на HTTP_POST, используя CLOUDSTACK_METHOD=post, чтобы увеличить лимит размера HTTP_GET с 2 КБ до 32 КБ. | |
| zone строка / обязательно | Имя зоны, в которой должен быть развернут экземпляр. |
Примечания
Примечание
- Подробное руководство по модулям cloudstack можно найти в Руководстве по облачным сервисам CloudStack.
- Этот модуль поддерживает режим проверки.
Примеры
# NOTE: Names of offerings and ISOs depending on the CloudStack configuration.
- name: create a instance from an ISO
ngine_io.cloudstack.cs_instance:
name: web-vm-1
iso: Linux Debian 7 64-bit
hypervisor: VMware
project: Integration
zone: ch-zrh-ix-01
service_offering: 1cpu_1gb
disk_offering: PerfPlus Storage
disk_size: 20
networks:
- Server Integration
- Sync Integration
- Storage Integration
- name: for changing a running instance, use the 'force' parameter
ngine_io.cloudstack.cs_instance:
name: web-vm-1
zone: zone01
display_name: web-vm-01.example.com
iso: Linux Debian 7 64-bit
service_offering: 2cpu_2gb
force: yes
# NOTE: user_data can be used to kickstart the instance using cloud-init yaml config.
- name: create or update a instance on Exoscale's public cloud using display_name.
ngine_io.cloudstack.cs_instance:
display_name: web-vm-1
zone: zone01
template: Linux Debian 7 64-bit
service_offering: Tiny
ssh_key: john@example.com
tags:
- key: admin
value: john
- key: foo
value: bar
user_data: |
#cloud-config
packages:
- nginx
- name: create an instance with multiple interfaces specifying the IP addresses
ngine_io.cloudstack.cs_instance:
name: web-vm-1
zone: zone01
template: Linux Debian 7 64-bit
service_offering: Tiny
ip_to_networks:
- network: NetworkA
ip: 10.1.1.1
- network: NetworkB
ip: 192.0.2.1
- name: ensure an instance is stopped
ngine_io.cloudstack.cs_instance:
name: web-vm-1
zone: zone01
state: stopped
- name: ensure an instance is running
ngine_io.cloudstack.cs_instance:
name: web-vm-1
zone: zone01
state: started
- name: remove an instance
ngine_io.cloudstack.cs_instance:
name: web-vm-1
zone: zone01
state: absent
Значения возврата
Общие значения возврата описаны в здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| account string | успешно | Аккаунт, к которому относится экземпляр. Пример: example account |
| affinity_groups list / elements=string | успешно | Группы аффинити, в которых находится экземпляр. Пример: [ "webservers" ] |
| created string | успешно | Дата создания экземпляра. Пример: 2014-12-01T14:57:57+0100 |
| default_ip string | успешно | Основной IP-адрес экземпляра. Пример: 10.23.37.42 |
| default_ip6 string | если доступно | Основной IPv6-адрес экземпляра. Пример: 2a04:c43:c00:a07:4b4:beff:fe00:74 |
| display_name string | успешно | Имя экземпляра для отображения. Пример: web-01 |
| domain string | успешно | Домен, к которому относится экземпляр. Пример: example domain |
| group string | успешно | Имя группы, к которой относится экземпляр. Пример: web |
| host string | успешно и экземпляр запущен | Имя хоста гипервизора, на котором запущен экземпляр. Пример: host-01.example.com |
| hypervisor string | успешно | Гипервизор, связанный с этим экземпляром. Пример: KVM |
| id string | успешно | UUID экземпляра. Пример: 04589590-ac63-4ffc-93f5-b698b8ac38b6 |
| instance_name string | успешно | Внутреннее имя экземпляра (только для администратора ROOT). Пример: i-44-3992-VM |
| iso string | если доступно | Название ISO, с которым был развернут экземпляр. Пример: Debian-8-64bit |
| name string | успешно | Имя экземпляра. Пример: web-01 |
| password string | если доступно | Пароль экземпляра, если он существует. Пример: Ge2oe7Do |
| password_enabled boolean | успешно | True, если настройка пароля включена. Пример: True |
| project string | успешно | Название проекта, к которому относится экземпляр. Пример: Production |
| public_ip string | если доступно | Публичный IP-адрес экземпляра через правило статической NAT. Пример: 1.2.3.4 |
| security_groups list / elements=string | успешно | Безопасные группы, в которых находится экземпляр. Пример: [ "default" ] |
| service_offering string | успешно | Название предлагаемой услуги для экземпляра. Пример: 2cpu_2gb |
| ssh_key string | если доступно | Имя SSH-ключа, развернутого для экземпляра. Пример: key@work |
| state string | успешно | Состояние экземпляра. Пример: Запущен |
| tags list / elements=string | успешно | Список тегов ресурсов, связанных с экземпляром. Пример: [ { "key": "foo", "value": "bar" } ] |
| template string | успешно | Название шаблона, с которым был развернут экземпляр. Пример: Linux Debian 9 64-bit |
| template_display_text string | успешно | Текст для отображения шаблона, с которым был развернут экземпляр. Пример: Linux Debian 9 64-bit 200G Disk (2017-10-08-622866) |
| user-data string | успешно | Дополнительные данные, отправленные экземпляру. Пример: VXNlciBkYXRhIGV4YW1wbGUK |
| zone string | успешно | Имя зоны, в которой находится экземпляр. Пример: ch-gva-2 |
Авторы
- René Moser (@resmo)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/ngine_io/cloudstack/cs_instance_module.html