cs_instance — Управляет экземплярами и виртуальными машинами на облаках на базе Apache CloudStack.
Новая версия 2.0.
Описание
- Развертывание, запуск, обновление, масштабирование, перезапуск, восстановление, остановка и удаление экземпляров.
Требования
Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.
- python >= 2.6
- cs >= 0.6.10
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| account | Аккаунт, к которому относится экземпляр. | |
| affinity_groups | Имена групп взаимного влияния, которые необходимо применить к новому экземпляру. псевдонимы: affinity_group | |
| api_http_method |
| HTTP-метод, используемый для запроса к API-точке. Если не указан, рассматривается переменная среды CLOUDSTACK_METHOD. В качестве последнего варианта используется значение из файла конфигурации ini, также см. примечания. Значение по умолчанию — get, если не указано. |
| api_key | API-ключ API CloudStack. Если не указан, рассматривается переменная среды CLOUDSTACK_KEY. В качестве последнего варианта используется значение из файла конфигурации ini, также см. примечания. | |
| api_region | По умолчанию: cloudstack | Имя раздела ini в файле cloustack.ini. Если не указан, рассматривается переменная среды CLOUDSTACK_REGION. |
| api_secret | Секретный ключ API CloudStack. Если не задано, рассматривается переменная среды CLOUDSTACK_SECRET. В качестве последнего варианта используется значение из файла конфигурации ini, также см. примечания. | |
| api_timeout | Таймаут HTTP в секундах. Если не указан, рассматривается переменная среды CLOUDSTACK_TIMEOUT. В качестве последнего варианта используется значение из файла конфигурации ini, также см. примечания. Значение по умолчанию — 10 секунд, если не указано. | |
| api_url | URL API CloudStack, например, https://cloud.example.com/client/api. Если не указан, рассматривается переменная среды CLOUDSTACK_ENDPOINT. В качестве последнего варианта используется значение из файла конфигурации ini, также см. примечания. | |
| cpu | Количество ЦП, которое необходимо выделить экземпляру, используется с пользовательскими предложениями услуг. | |
| cpu_speed | Частота такта/доли, выделенные экземпляру, используется с пользовательскими предложениями услуг. | |
| disk_offering | Имя предложения по диску, которое необходимо использовать. | |
| disk_size | Размер диска в ГБ, необходимый при развертывании экземпляра из ISO. | |
| display_name | Пользовательское имя отображения экземпляров. Имя отображения будет установлено в name, если не указано.Требуется либо name, либо display_name. | |
| domain | Домен, к которому относится экземпляр. | |
| force | По умолчанию: нет | Принудительно остановить/запустить экземпляр, если это необходимо для применения изменений, в противном случае работающий экземпляр не будет изменён. |
| group | Группа, в которой должен находиться новый экземпляр. | |
| hypervisor |
| Имя гипервизора, который будет использоваться для создания нового экземпляра. Актуально при использовании state=present, но учитывается только если не задано в ISO/шаблоне.Если не задано или не найдено в ISO/шаблоне, используется первый найденный гипервизор. |
| 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. Если вы хотите удалить все теги, установите пустой список, например, tags: []. псевдонимы: tag | |
| template | Имя или идентификатор шаблона, который будет использоваться для создания нового экземпляра. Требуется при использовании state=present. Взаимоисключающий с параметром ISO. | |
| template_filter (добавлено в 2.1) |
| Имя фильтра, используемого для поиска шаблона или iso. Используется для параметров iso или template в state=present. псевдонимы: iso_filter |
| user_data | Дополнительные данные (ASCII), которые можно отправить экземпляру после успешного развертывания. Данные будут автоматически закодированы в base64. Рекомендуется переключиться на HTTP_POST, используя CLOUDSTACK_METHOD=post, чтобы увеличить предел размера HTTP_GET с 2 КБ до 32 КБ. | |
| zone | Имя зоны, в которой должен быть развернут экземпляр. Если не задано, используется зона по умолчанию. |
Примечания
Примечание
- Ansible использует метод конфигурации библиотеки
csесли учетные данные не предоставлены аргументамиapi_url,api_key,api_secret. Конфигурация считывается из нескольких мест в следующем порядке.CLOUDSTACK_ENDPOINT,CLOUDSTACK_KEY,CLOUDSTACK_SECRETиCLOUDSTACK_METHOD.CLOUDSTACK_TIMEOUTпеременные среды.CLOUDSTACK_CONFIGпеременная среды, указывающая на файл.ini. Файлcloudstack.iniв текущем рабочем каталоге. Файл.cloudstack.iniв домашнем каталоге пользователя. Дополнительно можно указать несколько учетных данных и конечных точек, используя секции ini вcloudstack.ini. Используйте аргументapi_regionдля выбора имени секции, секция по умолчанию —cloudstack. Более подробная информация доступна по адресу https://github.com/exoscale/cs. - Подробное руководство по модулям CloudStack можно найти в Руководстве по облаку CloudStack.
- Этот модуль поддерживает режим проверки.
Примеры
# NOTE: Names of offerings and ISOs depending on the CloudStack configuration.
- name: create a instance from an ISO
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
delegate_to: localhost
- name: for changing a running instance, use the 'force' parameter
- cs_instance:
name: web-vm-1
display_name: web-vm-01.example.com
iso: Linux Debian 7 64-bit
service_offering: 2cpu_2gb
force: yes
delegate_to: localhost
# 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.
cs_instance:
display_name: web-vm-1
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
delegate_to: localhost
- name: create an instance with multiple interfaces specifying the IP addresses
cs_instance:
name: web-vm-1
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
delegate_to: localhost
- name: ensure an instance is stopped
cs_instance:
name: web-vm-1
state: stopped
delegate_to: localhost
- name: ensure an instance is running
cs_instance:
name: web-vm-1
state: started
delegate_to: localhost
- name: remove an instance
- cs_instance:
name: web-vm-1
state: absent
delegate_to: localhost
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращено | Описание |
|---|---|---|
| account string | success | Учетная запись, к которой относится экземпляр. Пример: example account |
| affinity_groups list | success | Группы соответствия, в которых находится экземпляр. Пример: [ "webservers" ] |
| created string | success | Дата создания экземпляра. Пример: 2014-12-01T14:57:57+0100 |
| default_ip string | success | IP-адрес по умолчанию экземпляра. Пример: 10.23.37.42 |
| display_name string | success | Отображаемое имя экземпляра. Пример: web-01 |
| domain string | success | Домен, к которому относится экземпляр. Пример: example domain |
| group string | success | Имя группы, к которой относится экземпляр. Пример: web |
| hypervisor string | success | Гипервизор, связанный с этим экземпляром. Пример: KVM |
| id string | success | UUID экземпляра. Пример: 04589590-ac63-4ffc-93f5-b698b8ac38b6 |
| instance_name string | success | Внутреннее имя экземпляра (только для администратора ROOT). Пример: i-44-3992-VM |
| iso string | success | Имя ISO, с которым был развернут экземпляр. Пример: Debian-8-64bit |
| name string | success | Имя экземпляра. Пример: web-01 |
| password string | success | Пароль экземпляра, если он существует. Пример: Ge2oe7Do |
| password_enabled boolean | success | True, если включена настройка пароля. Пример: True |
| project string | success | Имя проекта, к которому относится экземпляр. Пример: Production |
| public_ip string | success | Публичный IP-адрес с экземпляром через правило статического NAT. Пример: 1.2.3.4 |
| security_groups list | success | Группы безопасности, в которых находится экземпляр. Пример: [ "default" ] |
| service_offering string | success | Имя предложения сервиса, которое имеет экземпляр. Пример: 2cpu_2gb |
| ssh_key string | success | Имя ключа SSH, развернутого на экземпляре. Пример: key@work |
| state string | success | Состояние экземпляра. Пример: Running |
| tags dict | success | Список тегов ресурсов, связанных с экземпляром. Пример: [ { "key": "foo", "value": "bar" } ] |
| template string | success | Имя шаблона, с которым был развернут экземпляр. Пример: Debian-8-64bit |
| zone string | success | Имя зоны, в которой находится экземпляр. Пример: ch-gva-2 |
Статус
Этот модуль помечен как stableinterface, что означает, что сопровождающие этого модуля гарантируют, что не будет внесено никаких несовместимых с обратной совместимостью изменений интерфейса.
Автор
- René Moser (@resmo)
Подсказка
Если вы заметили какие-либо ошибки в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.5/modules/cs_instance_module.html