Spec-Zone.ru › Ansible 2.10

cloudscale_ch.cloud.server – Управляет серверами на сервисе cloudscale.ch IaaS

Примечание

Этот плагин является частью коллекции cloudscale_ch.cloud (версия 1.3.0).

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

Для использования в плейбуке укажите: cloudscale_ch.cloud.server

Новое в версии 1.0.0: из cloudscale_ch.cloud

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

Обзор

  • Создание, обновление, запуск, остановка и удаление серверов на сервисе cloudscale.ch IaaS.

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
api_timeout
целое число
Значение по умолчанию:
30
Таймаут в секундах для вызовов API cloudscale.ch.
api_token
строка / обязательно
Токен API cloudscale.ch.
Также можно передать через переменную среды CLOUDSCALE_API_TOKEN.
api_url
строка
добавлено в 1.3.0 cloudscale_ch.cloud
Значение по умолчанию:
"https://api.cloudscale.ch/v1"
URL API cloudscale.ch.
Также можно передать через переменную среды CLOUDSCALE_API_URL.
bulk_volume_size_gb
целое число
Размер тома резервного копирования в ГБ.
Если не указано, тома резервного копирования нет.
flavor
строка
Конфигурация сервера.
force
булево
    Варианты:
  • нет ←
  • да
Разрешить остановку работающего сервера для обновления, если это необходимо.
image
строка
Образ, используемый для создания сервера.
name
строка
Имя сервера.
Требуется либо name, либо uuid.
password
строка
Пароль для сервера.
server_groups
список / элементы=строка
Список UUID или имён групп серверов.
ssh_keys
список / элементы=строка
Список открытых ключей SSH.
Используйте содержимое вашего файла .pub.
state
строка
    Варианты:
  • запущен ←
  • остановлен
  • отсутствует
Состояние сервера.
tags
словарь
Теги, связанные с серверами. Установите значение {} для удаления всех тегов.
use_ipv6
булево
    Варианты:
  • нет
  • да ←
Включить IPv6 на общедоступном сетевом интерфейсе.
use_private_network
булево
    Варианты:
  • нет ←
  • да
Подключить частный сетевой интерфейс к серверу.
use_public_network
булево
    Варианты:
  • нет
  • да ←
Подключить общедоступный сетевой интерфейс к серверу.
user_data
строка
Данные конфигурации cloud-init (cloud-config) для сервера.
uuid
строка
UUID сервера.
Требуется либо name, либо uuid.
volume_size_gb
целое число
Значение по умолчанию:
10
Размер корневого тома в ГБ.
zone
строка
Зона, в которой находится сервер (например, lgp1 или rma1).

Примечания

Примечание

  • Если предоставлен параметр uuid, он имеет приоритет над name для выбора сервера. Это позволяет обновить имя сервера.
  • Если параметр uuid не указан, для выбора сервера используется name. Если существует более одного сервера с таким именем, выполнение прерывается.
  • Только параметры name и flavor учитываются при обновлении.
  • Необходимо указать параметр force=true, чтобы разрешить перезагрузку существующих работающих серверов для применения изменений.
  • Все операции выполняются с использованием публичного API cloudscale.ch v1.
  • Для получения подробной информации обратитесь к полной документации API: https://www.cloudscale.ch/en/api/v1.
  • Для всех операций требуется действительный токен API. Вы можете создать любое количество токенов, используя панель управления cloudscale.ch по адресу https://control.cloudscale.ch.

Примеры

# Create and start a server with an existing server group (shiny-group)
- name: Start cloudscale.ch server
  cloudscale_ch.cloud.server:
    name: my-shiny-cloudscale-server
    image: debian-8
    flavor: flex-4
    ssh_keys: ssh-rsa XXXXXXXXXX...XXXX ansible@cloudscale
    server_groups: shiny-group
    zone: lpg1
    use_private_network: True
    bulk_volume_size_gb: 100
    api_token: xxxxxx

# Start another server in anti-affinity (server group shiny-group)
- name: Start second cloudscale.ch server
  cloudscale_ch.cloud.server:
    name: my-other-shiny-server
    image: ubuntu-16.04
    flavor: flex-8
    ssh_keys: ssh-rsa XXXXXXXXXXX ansible@cloudscale
    server_groups: shiny-group
    zone: lpg1
    api_token: xxxxxx

# Force to update the flavor of a running server
- name: Start cloudscale.ch server
  cloudscale_ch.cloud.server:
    name: my-shiny-cloudscale-server
    image: debian-8
    flavor: flex-8
    force: yes
    ssh_keys: ssh-rsa XXXXXXXXXX...XXXX ansible@cloudscale
    use_private_network: True
    bulk_volume_size_gb: 100
    api_token: xxxxxx
  register: server1

# Stop the first server
- name: Stop my first server
  cloudscale_ch.cloud.server:
    uuid: '{{ server1.uuid }}'
    state: stopped
    api_token: xxxxxx

# Delete my second server
- name: Delete my second server
  cloudscale_ch.cloud.server:
    name: my-other-shiny-server
    state: absent
    api_token: xxxxxx

# Start a server and wait for the SSH host keys to be generated
- name: Start server and wait for SSH host keys
  cloudscale_ch.cloud.server:
    name: my-cloudscale-server-with-ssh-key
    image: debian-8
    flavor: flex-4
    ssh_keys: ssh-rsa XXXXXXXXXXX ansible@cloudscale
    api_token: xxxxxx
  register: server
  until: server is not failed
  retries: 5
  delay: 2

Возвращаемые значения

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

Ключ Возвращаемое значение Описание
flavor
словарь
успех, когда state != absent
Конфигурация сервера, которая использовалась для этого сервера

Пример:
{'memory_gb': 4, 'name': 'Flex-4', 'slug': 'flex-4', 'vcpu_count': 2}
href
строка
успех, когда state != absent
URL API для получения подробной информации об этом сервере

Пример:
https://api.cloudscale.ch/v1/servers/cfde831a-4e87-4a75-960f-89b0148aa2cc
image
словарь
успех, когда state != absent
Образ, используемый для загрузки этого сервера

Пример:
{'default_username': 'ubuntu', 'name': 'Ubuntu 18.04 LTS', 'operating_system': 'Ubuntu', 'slug': 'ubuntu-18.04'}
interfaces
список / элементы=строка
успех, когда state != absent
Список сетевых портов, подключенных к серверу

Пример:
[{'addresses': ['...'], 'type': 'public'}]
name
строка
успех
Имя отображения сервера

Пример:
its-a-me-mario.cloudscale.ch
server_groups
список / элементы=строка
успех, когда state != absent
Список групп серверов

Пример:
[{'href': 'https://api.cloudscale.ch/v1/server-groups/...', 'name': 'db-group', 'uuid': '...'}]
ssh_fingerprints
список / элементы=строка
успех, когда state != absent
Список отпечатков ключей SSH. Будет пустым, пока ключи не будут получены с сервера.

Пример:
['ecdsa-sha2-nistp256 SHA256:XXXX', '...']
ssh_host_keys
список / элементы=строка
успех, когда state != absent
Список ключей SSH хоста. Будет пустым, пока ключи не будут получены с сервера.

Пример:
['ecdsa-sha2-nistp256 XXXXX', '...']
state
строка
успех
Текущее состояние сервера

Пример:
запущен
tags
словарь
успех
Теги, связанные с сервером.

Пример:
{'project': 'my project'}
uuid
строка
успех
Уникальный идентификатор сервера

Пример:
cfde831a-4e87-4a75-960f-89b0148aa2cc
volumes
список / элементы=строка
успех, когда state != absent
Список томов, подключенных к серверу

Пример:
[{'device': '/dev/vda', 'size_gb': '50', 'type': 'ssd'}]
zone
словарь
успех, когда state != absent
Зона, используемая для загрузки этого сервера

Пример:
{'slug': 'lpg1'}


Авторы

  • Gaudenz Steinlin (@gaudenz)
  • René Moser (@resmo)
  • Denis Krienbühl (@href)

© 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/cloudscale_ch/cloud/server_module.html

Spec-Zone.ru

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