cloudscale_server — Управляет серверами на IaaS-сервисе cloudscale.ch
Новое в версии 2.3.
Обзор
- Создание, запуск, остановка и удаление серверов на IaaS-сервисе cloudscale.ch.
- Все операции выполняются с использованием публичного API v1 cloudscale.ch.
- Для получения подробностей обратитесь к полной документации API: https://www.cloudscale.ch/en/api/v1.
- Для всех операций требуется действительный токен API. Вы можете создать любое количество токенов с помощью панели управления cloudscale.ch по адресу https://control.cloudscale.ch.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| anti_affinity_with |
UUID другого сервера для создания группы антиаффинитета.
|
|
| api_timeout (добавлено в 2.5) |
По умолчанию: 30 |
Время ожидания в секундах для вызовов API cloudscale.ch. |
| api_token | Токен API cloudscale.ch. Также может быть передан в переменной среды CLOUDSCALE_API_TOKEN. |
|
| bulk_volume_size_gb | Размер объёма накопителя в ГБ. Объём накопителя не создается, если параметр не задан. |
|
| flavor | Конфигурация сервера. |
|
| image | Изображение, используемое для создания сервера. |
|
| name | Имя сервера. Необходимо указать name или uuid. Эти параметры взаимоисключающие. |
|
| ssh_keys | Список открытых ключей SSH. Используйте полное содержимое файла .pub. |
|
| state |
|
Состояние сервера |
| use_ipv6 | По умолчанию: yes |
Включить IPv6 на публичном сетевом интерфейсе. |
| use_private_network | По умолчанию: no |
Прикрепить частный сетевой интерфейс к серверу. |
| use_public_network | По умолчанию: yes |
Прикрепить публичный сетевой интерфейс к серверу. |
| user_data | Данные конфигурации cloud-init (cloud-config) для сервера. |
|
| uuid | UUID сервера. Необходимо указать name или uuid. Эти параметры взаимоисключающие. |
|
| volume_size_gb | По умолчанию: 10 |
Размер корневого объёма в ГБ. |
Примечания
Примечание
- Вместо параметра api_token можно использовать переменную среды CLOUDSCALE_API_TOKEN.
- Для создания нового сервера необходимо указать как минимум
name,ssh_key,imageиflavor. - Если существует более одного сервера с именем, заданным параметром
name, выполнение прерывается. - После создания сервера все параметры, кроме
state, становятся только для чтения. Вы не можете изменить имя, конфигурацию или любые другие свойства. Это ограничение API cloudscale.ch. Модуль проигнорирует любые различия между заданными параметрами и работающим сервером, если сервер с правильным именем или UUID существует. Будут применены только изменения состояния.
Примеры
# Start a server (if it does not exist) and register the server details
- name: Start cloudscale.ch server
cloudscale_server:
name: my-shiny-cloudscale-server
image: debian-8
flavor: flex-4
ssh_keys: ssh-rsa XXXXXXXXXX...XXXX ansible@cloudscale
use_private_network: True
bulk_volume_size_gb: 100
api_token: xxxxxx
register: server1
# Start another server in anti-affinity to the first one
- name: Start second cloudscale.ch server
cloudscale_server:
name: my-other-shiny-server
image: ubuntu-16.04
flavor: flex-8
ssh_keys: ssh-rsa XXXXXXXXXXX ansible@cloudscale
anti_affinity_with: '{{ server1.uuid }}'
api_token: xxxxxx
# Stop the first server
- name: Stop my first server
cloudscale_server:
uuid: '{{ server1.uuid }}'
state: stopped
api_token: xxxxxx
# Delete my second server
- name: Delete my second server
cloudscale_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_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.ssh_fingerprints
retries: 60
delay: 2
Значения возврата
Общие значения возврата описаны в этом разделе, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| anti_affinity_with строка |
успех, если state ≠ absent | Список серверов в одной группе антиаффинитета |
| flavor строка |
успех, если state ≠ absent | Конфигурация, используемая для этого сервера Пример: flex-8 |
| href строка |
успех, если state ≠ absent | URL API для получения подробностей о сервере Пример: https://api.cloudscale.ch/v1/servers/cfde831a-4e87-4a75-960f-89b0148aa2cc |
| image строка |
успех, если state ≠ absent | Изображение, используемое для загрузки этого сервера Пример: debian-8 |
| interfaces список |
успех, если state ≠ absent | Список сетевых портов, подключенных к серверу Пример: [{'type': 'public', 'addresses': ['...']}] |
| name строка |
успех | Имя отображения сервера Пример: its-a-me-mario.cloudscale.ch |
| ssh_fingerprints список |
успех, если state ≠ absent | Список отпечатков ключей SSH. Будет null, пока ключи хоста не будут получены с сервера. Пример: ['ecdsa-sha2-nistp256 SHA256:XXXX', '...'] |
| ssh_host_keys список |
успех, если state ≠ absent | Список ключей хоста SSH. Будет null, пока ключи хоста не будут получены с сервера. Пример: ['ecdsa-sha2-nistp256 XXXXX', '...'] |
| state строка |
успех | Текущее состояние сервера Пример: running |
| uuid строка |
успех | Уникальный идентификатор этого сервера Пример: cfde831a-4e87-4a75-960f-89b0148aa2cc |
| volumes список |
успех, если state ≠ absent | Список объёмов, прикрепленных к серверу Пример: [{'device': '/dev/vda', 'size_gb': '50', 'type': 'ssd'}] |
Статус
Этот модуль помечен как экспериментальный, что означает, что его интерфейс не гарантируется как обратная совместимость.
Автор
- Gaudenz Steinlin (@gaudenz) <gaudenz.steinlin@cloudscale.ch>
Подсказка
Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.5/modules/cloudscale_server_module.html