cloudscale_server – Управляет серверами на облачном сервисе cloudscale.ch IaaS
Новая версия с 2.3.
Описание
- Создание, запуск, остановка и удаление серверов на облачном сервисе cloudscale.ch IaaS.
- Все операции выполняются с использованием публичного API cloudscale.ch v1.
- Для получения подробной информации обратитесь к полной документации 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 | Список томов, подключенных к серверу Пример: [{'type': 'ssd', 'device': '/dev/vda', 'size_gb': '50'}] |
Статус
- Этот модуль не гарантирует обратную совместимость. [превью]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- 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.7/modules/cloudscale_server_module.html