cloudscale_server - Управляет серверами на облачной платформе cloudscale.ch IaaS
Новая версия с 2.3.
Обзор
- Создание, запуск, остановка и удаление серверов на облачной платформе cloudscale.ch IaaS.
- Все операции выполняются с использованием публичного API cloudscale.ch версии 1.
- Подробную информацию см. в полной документации 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 | По умолчанию: "да" | Включить IPv6 в общедоступном сетевом интерфейсе. |
| use_private_network | По умолчанию: "нет" | Присоединить частный сетевой интерфейс к серверу. |
| use_public_network | По умолчанию: "да" | Присоединить общедоступный сетевой интерфейс к серверу. |
| 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. Будет пустым, пока ключи хоста не получены с сервера. Пример: ['ecdsa-sha2-nistp256 SHA256:XXXX', '...'] |
| ssh_host_keys список | успех, когда state != absent | Список ключей хоста SSH. Будет пустым, пока ключи хоста не получены с сервера. Пример: ['ecdsa-sha2-nistp256 XXXXX', '...'] |
| state строка | успех | Текущее состояние сервера Пример: запущенный |
| uuid строка | успех | Уникальный идентификатор этого сервера Пример: cfde831a-4e87-4a75-960f-89b0148aa2cc |
| volumes список | успех, когда state != absent | Список томов, подключенных к серверу Пример: [{'type': 'ssd', 'device': '/dev/vda', 'size_gb': '50'}] |
Статус
Этот модуль помечен как превью, что означает, что его интерфейс не гарантируется как обратный.
Техническое обслуживание
Этот модуль помечен как сообщество, что означает, что он поддерживается сообществом Ansible. См. Поддержка и техническое обслуживание модулей для получения дополнительной информации.
Список других модулей, поддерживаемых сообществом Ansible, см. здесь.
Автор
- 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.6/modules/cloudscale_server_module.html