Spec-Zone.ru › Ansible 2.8

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

Новое в версии 2.0.

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

Описание

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

Требования

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

  • python >= 2.6
  • cs >= 0.6.10

Параметры

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

псевдонимы: affinity_group
allow_root_disk_shrink
булево
добавлено в 2.7
    Варианты:
  • нет ←
  • да
Включает сжатие корневого тома, когда новый размер меньше старого.
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
строка
Секретный ключ API 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, см. также примечания.
cpu
целое число
Количество ЦП для выделения экземпляру, используется с настраиваемыми предложениями услуг.
cpu_speed
целое число
Тактовая частота/доли, выделенные экземпляру, используется с настраиваемыми предложениями услуг.
details
словарь
добавлено в 2.6
Карта для указания пользовательских параметров.
disk_offering
строка
Имя предложения диска, которое необходимо использовать.
disk_size
целое число
Размер диска в ГБ, необходимый при развертывании экземпляра из ISO.
display_name
строка
Пользовательское отображаемое имя экземпляров.
Отображаемое имя будет установлено в name, если не указано.
Требуется либо name, либо display_name.
domain
строка
Домен, к которому относится экземпляр.
force
булево
    Варианты:
  • нет ←
  • да
Принудительно остановить/запустить экземпляр, если необходимо применить изменения, в противном случае запущенный экземпляр не будет изменён.
group
строка
Группа, в которой должен находиться новый экземпляр.
host
строка
добавлено в 2.6
Хост, на котором должен быть развернут или запущен экземпляр.
Учитывается только при 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
строка
    Варианты:
  • deployed
  • started
  • stopped
  • restarted
  • restored
  • destroyed
  • expunged
  • present ←
  • absent
Состояние экземпляра.
Теги
список
Список тегов. Теги представляют собой список словарей, имеющих ключи key и value.
Если вы хотите удалить все теги, установите пустой список, например, теги: [].

псевдонимы: тег
шаблон
строка
Имя, отображаемый текст или идентификатор шаблона, который будет использоваться для создания нового экземпляра.
Требуется при использовании state=present.
Взаимоисключающее с параметром iso.
фильтр_шаблона
строка
добавлен в 2.1
    Варианты:
  • все
  • featured
  • self
  • selfexecutable
  • sharedexecutable
  • executable ←
  • community
Имя фильтра, используемого для поиска шаблона или iso.
Используется для параметров iso или шаблон при state=present.
Фильтр all был добавлен в 2.6.

псевдонимы: фильтр_iso
данные_пользователя
строка
Дополнительные данные (ASCII), которые могут быть отправлены экземпляру после успешного развертывания.
Данные будут автоматически закодированы в base64.
Рассмотрите переключение на HTTP_POST, используя CLOUDSTACK_METHOD=post, чтобы увеличить лимит размера HTTP_GET с 2 КБ до 32 КБ.
зона
строка
Имя зоны, в которой должен быть развернут экземпляр.
Если не задано, используется зона по умолчанию.

Примечания

Примечание

  • 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 Cloud.
  • Этот модуль поддерживает режим проверки.

Примеры

# 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
строка
успех
Аккаунт, к которому относится экземпляр.

Пример:
example account
affinity_groups
список
успех
Группы сродства, в которых находится экземпляр.

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

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

Пример:
10.23.37.42
default_ip6
строка
добавлено в 2.6
если доступно
Основной IPv6-адрес экземпляра.

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

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

Пример:
example domain
group
строка
успех
Имя группы, к которой относится экземпляр.

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

Пример:
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, если настройка пароля включена.

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

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

Пример:
1.2.3.4
security_groups
список
успех
Безопасные группы, в которых находится экземпляр.

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

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

Пример:
key@work
state
строка
успех
Состояние экземпляра.

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

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

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

Пример:
Linux Debian 9 64-bit 200G Disk (2017-10-08-622866)
user-data
строка
успех
Необязательные данные, отправленные экземпляру.

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

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


Статус

  • В этом модуле гарантируется отсутствие изменений интерфейса, несовместимых со старыми версиями. [stableinterface]
  • Этот модуль поддерживается сообществом Ansible. [community]

Авторы

  • 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.8/modules/cs_instance_module.html

Spec-Zone.ru

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