Spec-Zone.ru › Ansible 2.11

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

Примечание

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

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

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

Новое в версии 1.0.0: модуля cloudscale_ch.cloud

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

Обзор

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

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
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
строка
Конфигурация (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
Конфигурация (flavor), используемая для этого сервера

Пример:
{'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–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/cloudscale_ch/cloud/server_module.html

Spec-Zone.ru

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