Spec-Zone.ru › Ansible 2.10

ngine_io.cloudstack.cs_instance – Управляет экземплярами и виртуальными машинами в облаках на основе Apache CloudStack.

Примечание

Этот плагин входит в коллекцию ngine_io.cloudstack (версия 1.1.0).

Для его установки используйте: ansible-galaxy collection install ngine_io.cloudstack.

Для использования в книге задач укажите: ngine_io.cloudstack.cs_instance.

Новое в версии 0.1.0: of ngine_io.cloudstack

  • Обзор
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Обзор

  • Развёртывание, запуск, обновление, масштабирование, перезапуск, восстановление, остановка и удаление экземпляров.

Требования

Ниже перечислены требования к хосту, на котором выполняется этот модуль.

  • python >= 2.6
  • cs >= 0.9.0

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
account
строка
Аккаунт, к которому относится экземпляр.
affinity_groups
список / элементы=строка
Названия групп Affinity, которые необходимо применить к новому экземпляру.

псевдонимы: affinity_group
allow_root_disk_shrink
булево
    Варианты:
  • нет ←
  • да
Включает уменьшение размера тома, когда новый размер меньше старого.
api_http_method
строка
    Варианты:
  • get
  • post
Метод HTTP, используемый для запроса к API-точке.
Если не указано, используется значение переменной среды CLOUDSTACK_METHOD.
В качестве последней опции используется значение из файла конфигурации ini, см. также примечания.
Значение по умолчанию — get, если не указано.
api_key
строка
API-ключ CloudStack API.
Если не указано, используется значение переменной среды CLOUDSTACK_KEY.
В качестве последней опции используется значение из файла конфигурации ini, см. также примечания.
api_region
строка
Значение по умолчанию:
"cloudstack"
Имя раздела ini в файле cloustack.ini.
Если не указано, используется значение переменной среды CLOUDSTACK_REGION.
api_secret
строка
Секретный ключ CloudStack API.
Если не указано, используется значение переменной среды CLOUDSTACK_SECRET.
В качестве последней опции используется значение из файла конфигурации ini, см. также примечания.
api_timeout
целое число
Таймаут HTTP в секундах.
Если не указано, используется значение переменной среды CLOUDSTACK_TIMEOUT.
В качестве последней опции используется значение из файла конфигурации ini, см. также примечания.
Значение по умолчанию — 10 секунд, если не указано.
api_url
строка
URL CloudStack API, например, https://cloud.example.com/client/api.
Если не указано, используется значение переменной среды CLOUDSTACK_ENDPOINT.
В качестве последней опции используется значение из файла конфигурации ini, см. также примечания.
api_verify_ssl_cert
строка
Файл сертификата CA-авторитета.
Если не указано, используется значение переменной среды CLOUDSTACK_VERIFY.
В качестве последней опции используется значение из файла конфигурации ini, см. также примечания.
Значение по умолчанию — null, если не указано.
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
строка
    Варианты:
  • de
  • de-ch
  • es
  • fi
  • fr
  • fr-be
  • fr-ch
  • is
  • it
  • jp
  • nl-be
  • no
  • pt
  • uk
  • us
Тип устройства клавиатуры для экземпляра.
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
строка
    Варианты:
  • все
  • featured
  • самостоятельный
  • самовыполняемый
  • совместно используемый
  • выполняемый ←
  • сообщество
Имя фильтра, используемого для поиска шаблона или ISO.
Используется для параметров iso или template при state=present.
Фильтр all был добавлен в 2.6.

псевдонимы: 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
  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
    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
    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
    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
    state: stopped

- name: ensure an instance is running
  ngine_io.cloudstack.cs_instance:
    name: web-vm-1
    state: started

- name: remove an instance
  ngine_io.cloudstack.cs_instance:
    name: web-vm-1
    state: absent

Значения возврата

Общие значения возврата описаны здесь, следующие поля уникальны для этого модуля:

Ключ Возвращаемое значение Описание
account
строка
успех
Аккаунт, к которому относится виртуальная машина.

Пример:
аккаунт-пример
affinity_groups
список / элементы=строка
успех
Группы аффинитета, в которых находится виртуальная машина.

Пример:
[ "webservers" ]
created
строка
успех
Дата создания виртуальной машины.

Пример:
2014-12-01T14:57:57+0100
default_ip
строка
успех
Основной IP-адрес виртуальной машины.

Пример:
10.23.37.42
default_ip6
строка
если доступно
Основной IPv6-адрес виртуальной машины.

Пример:
2a04:c43:c00:a07:4b4:beff:fe00:74
display_name
строка
успех
Имя виртуальной машины для отображения.

Пример:
web-01
domain
строка
успех
Домен, к которому относится виртуальная машина.

Пример:
домен-пример
group
строка
успех
Имя группы, к которой относится виртуальная машина.

Пример:
web
host
строка
успех и виртуальная машина запущена
Имя хоста гипервизора, на котором запущена виртуальная машина.

Пример:
host-01.example.com
hypervisor
строка
успех
Гипервизор, связанный с этой виртуальной машиной.

Пример:
KVM
id
строка
успех
UUID виртуальной машины.

Пример:
04589590-ac63-4ffc-93f5-b698b8ac38b6
instance_name
строка
успех
Внутреннее имя виртуальной машины (только для администратора ROOT).

Пример:
i-44-3992-VM
iso
строка
если доступно
Имя ISO, с которым была развернута виртуальная машина.

Пример:
Debian-8-64bit
name
строка
успех
Имя виртуальной машины.

Пример:
web-01
password
строка
если доступно
Пароль виртуальной машины, если он существует.

Пример:
Ge2oe7Do
password_enabled
логический
успех
Истина, если настройка пароля включена.

Пример:
True
project
строка
успех
Имя проекта, к которому относится виртуальная машина.

Пример:
Производство
public_ip
строка
если доступно
Публичный IP-адрес виртуальной машины через статическое правило NAT.

Пример:
1.2.3.4
security_groups
список / элементы=строка
успех
Группы безопасности, в которых находится виртуальная машина.

Пример:
[ "default" ]
service_offering
строка
успех
Название предлагаемого сервиса, которым обладает виртуальная машина.

Пример:
2cpu_2gb
ssh_key
строка
если доступно
Имя SSH-ключа, развернутого на виртуальной машине.

Пример:
ключ@работа
state
строка
успех
Состояние виртуальной машины.

Пример:
Запущена
tags
список / элементы=строка
успех
Список тегов ресурсов, связанных с виртуальной машиной.

Пример:
[ { "key": "foo", "value": "bar" } ]
template
строка
успех
Имя шаблона, с которым была развернута виртуальная машина.

Пример:
Linux Debian 9 64-bit
template_display_text
строка
успех
Текст для отображения шаблона, с которым была развернута виртуальная машина.

Пример:
Linux Debian 9 64-bit 200ГБ диск (2017-10-08-622866)
user-data
строка
успех
Дополнительные данные, отправленные виртуальной машине.

Пример:
VXNlciBkYXRhIGV4YW1wbGUK
zone
строка
успех
Имя зоны, в которой находится виртуальная машина.

Пример:
ch-gva-2


Авторы

  • 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.10/collections/ngine_io/cloudstack/cs_instance_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API