cs_instance — Управляет экземплярами и виртуальными машинами на облаках на основе Apache CloudStack.
Новая версия с 2.0.
- Описание
- Требования (к хосту, на котором выполняется модуль)
- Параметры
- Примеры
- Возвращаемые значения
- Примечания
Описание
- Развёртывание, запуск, обновление, масштабирование, перезапуск, восстановление, остановка и уничтожение экземпляров.
Требования (к хосту, на котором выполняется модуль)
- python >= 2.6
- cs >= 0.6.10
Параметры
| параметр | обязателен | по умолчанию | возможные значения | комментарии |
|---|---|---|---|---|
| account | нет | Учётная запись, к которой относится экземпляр. | ||
| affinity_groups | нет | Имена групп совместимости, которые должны быть применены к новому экземпляру. псевдонимы: affinity_group | ||
| api_http_method | нет | get |
| Используемый HTTP-метод. |
| api_key | нет | API-ключ CloudStack API. | ||
| api_region | нет | cloudstack | Имя раздела ini в файле cloustack.ini. | |
| api_secret | нет | Секретный ключ CloudStack API. | ||
| api_timeout | нет | 10 | Таймаут HTTP. | |
| api_url | нет | URL CloudStack API, например, https://cloud.example.com/client/api. | ||
| 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 | нет | True | Обрабатывать асинхронные задачи до завершения. | |
| project | нет | Имя проекта, в котором необходимо развернуть экземпляр. | ||
| root_disk_size | нет | Размер корневого диска в Гбайт, необходимый при развёртывании экземпляра с гипервизором KVM и необходимости изменения размера корневого диска при запуске (требуется CloudStack >= 4.4, установлено и включено cloud-initramfs-growroot в шаблоне) | ||
| security_groups | нет | Список групп безопасности, которые необходимо применить к экземпляру. псевдонимы: security_group | ||
| service_offering | нет | Имя или идентификатор предложения услуг нового экземпляра. Если не задано, используется первое найденное предложение услуг. | ||
| ssh_key | нет | Имя SSH-ключа, который необходимо развернуть на новом экземпляре. | ||
| state | нет | present |
| Состояние экземпляра. |
| tags | нет | Список тегов. Теги — это список словарей, имеющих ключи key и value.Если нужно удалить все теги, установите пустой список, например, tags: [].псевдонимы: tag | ||
| template | нет | Имя или идентификатор шаблона, который необходимо использовать для создания нового экземпляра. Требуется при использовании state=present.Взаимоисключающее с параметром ISO. | ||
| template_filter (добавлен в 2.1)
| нет | executable |
| Имя фильтра, используемого для поиска шаблона или ISO. Используется для параметров iso или template в state=present.псевдонимы: iso_filter |
| user_data | нет | Необязательные данные (ASCII), которые можно отправить экземпляру после успешного развёртывания. Данные будут автоматически закодированы в base64. Рассмотрите возможность переключения на HTTP_POST, используя CLOUDSTACK_METHOD=post, чтобы увеличить лимит размера HTTP_GET с 2 КБ до 32 КБ. | ||
| zone | нет | Имя зоны, в которой необходимо развернуть экземпляр. Если не задано, используется зона по умолчанию. |
Примеры
# Create a instance from an ISO
# NOTE: Names of offerings and ISOs depending on the CloudStack configuration.
- 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
# 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
# Create or update a instance on Exoscale's public cloud using display_name.
# Note: user_data can be used to kickstart the instance using cloud-init yaml config.
- 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
# 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
# Ensure an instance is stopped
- cs_instance:
name: web-vm-1
state: stopped
delegate_to: localhost
# Ensure an instance is running
- cs_instance:
name: web-vm-1
state: started
delegate_to: localhost
# Remove an instance
- cs_instance:
name: web-vm-1
state: absent
delegate_to: localhost
Возвращаемые значения
Общие возвращаемые значения документированы здесь Возвращаемые значения, следующие поля уникальны для этого модуля:
| name | description | returned | type | sample |
|---|---|---|---|---|
| account | Аккаунт, к которому относится экземпляр. | success | string | example account |
| affinity_groups | Группы близости, в которых находится экземпляр. | success | list | [ "webservers" ] |
| created | Дата создания экземпляра. | success | string | 2014-12-01T14:57:57+0100 |
| default_ip | Основной IP-адрес экземпляра. | success | string | 10.23.37.42 |
| display_name | Отображаемое имя экземпляра. | success | string | web-01 |
| domain | Домен, к которому относится экземпляр. | success | string | example domain |
| group | Имя группы, к которой относится экземпляр. | success | string | web |
| hypervisor | Гипервизор, связанный с этим экземпляром. | success | string | KVM |
| id | UUID экземпляра. | success | string | 04589590-ac63-4ffc-93f5-b698b8ac38b6 |
| instance_name | Внутреннее имя экземпляра (только для администраторов ROOT). | success | string | i-44-3992-VM |
| iso | Имя ISO, с которым был развернут экземпляр. | success | string | Debian-8-64bit |
| name | Имя экземпляра. | success | string | web-01 |
| password | Пароль экземпляра, если он существует. | success | string | Ge2oe7Do |
| password_enabled | True, если включено 설정 password. | success | boolean | True |
| project | Название проекта, к которому относится экземпляр. | success | string | Production |
| public_ip | Общедоступный IP-адрес экземпляра через статическое правило NAT. | success | string | 1.2.3.4 |
| security_groups | Группы безопасности, в которых находится экземпляр. | success | list | [ "default" ] |
| service_offering | Название предлагаемого сервиса для экземпляра. | success | string | 2cpu_2gb |
| ssh_key | Имя SSH-ключа, развернутого на экземпляре. | success | string | key@work |
| state | Состояние экземпляра. | success | string | Running |
| tags | Список тегов ресурсов, связанных с экземпляром. | success | dict | [ { "key": "foo", "value": "bar" } ] |
| template | Имя шаблона, с которым был развернут экземпляр. | success | string | Debian-8-64bit |
| zone | Имя зоны, в которой находится экземпляр. | success | string | ch-gva-2 |
Примечания
Примечание
- 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 можно найти по адресу http://docs.ansible.com/ansible/guide_cloudstack.html
- Этот модуль поддерживает режим проверки.
Статус
Этот модуль помечен как stableinterface, что означает, что разработчики этого модуля гарантируют, что не будет вноситься обратной совместимости с интерфейсом изменений.
Для получения помощи в разработке модулей, если вы этого пожелаете, пожалуйста, прочтите Информация о сообществе и участие, Тестирование Ansible и Разработка модулей.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/cs_instance_module.html