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_token | нет | Токен API cloudscale.ch. Его также можно передать в переменной окружения CLOUDSCALE_API_TOKEN. | ||
| bulk_volume_size_gb | нет | null (нет тома накопительного хранилища) | Размер тома накопительного хранилища в ГБ | |
| flavor | нет | Тип сервера | ||
| image | нет | Изображение, используемое для создания сервера | ||
| name | нет | Имя сервера Требуется либо name, либо uuid. Эти параметры взаимоисключающие. | ||
| ssh_keys | нет | Список открытых ключей SSH Используйте полное содержимое вашего файла .pub. | ||
| state | нет | running |
| Состояние сервера |
| use_ipv6 | нет | True | Включить IPv6 на публичном сетевом интерфейсе | |
| use_private_network | нет | Присоединить частный сетевой интерфейс к серверу | ||
| use_public_network | нет | True | Присоединить публичный сетевой интерфейс к серверу | |
| user_data | нет | Данные конфигурации cloud-init (cloud-config) для использования на сервере. | ||
| uuid | нет | UUID сервера Требуется либо name, либо uuid. Эти параметры взаимоисключающие. | ||
| volume_size_gb | нет | 10 | Размер системного тома в ГБ |
Примеры
# 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 | Список серверов в той же группе анти-аффинности | успех, когда состояние != absent | строка | [] |
| flavor | Тип сервера, который использовался для этого сервера | успех, когда состояние != absent | строка | flex-8 |
| href | URL API для получения подробностей о данном сервере | успех, когда состояние != absent | строка | https://api.cloudscale.ch/v1/servers/cfde831a-4e87-4a75-960f-89b0148aa2cc |
| image | Изображение, используемое для загрузки этого сервера | успех, когда состояние != absent | строка | debian-8 |
| interfaces | Список сетевых портов, подключенных к серверу | успех, когда состояние != absent | список | [{'type': 'public', 'addresses': ['...']}] |
| name | Имя отображения сервера | успех | строка | its-a-me-mario.cloudscale.ch |
| ssh_fingerprints | Список отпечатков ключей SSH хоста. Будет null, пока ключи хоста не будут извлечены с сервера. | успех, когда состояние != absent | список | ['ecdsa-sha2-nistp256 SHA256:XXXX', '...'] |
| ssh_host_keys | Список ключей SSH хоста. Будет null, пока ключи хоста не будут извлечены с сервера. | успех, когда состояние != absent | список | ['ecdsa-sha2-nistp256 XXXXX', '...'] |
| state | Текущий статус сервера | успех | строка | running |
| uuid | Уникальный идентификатор этого сервера | успех | строка | cfde831a-4e87-4a75-960f-89b0148aa2cc |
| volumes | Список томов, подключенных к серверу | успех, когда состояние != absent | список | [{'device': '/dev/vda', 'size_gb': '50', 'type': 'ssd'}] |
Примечания
Примечание
- Вместо параметра api_token можно использовать переменную окружения CLOUDSCALE_API_TOKEN.
- Для создания нового сервера, как минимум, необходимы параметры
name,ssh_key,imageиflavor. - Если существует более одного сервера с именем, заданным параметром
name, выполнение прерывается. - После создания сервера все параметры, кроме
state, становятся только для чтения. Вы не можете изменить имя, тип или любое другое свойство. Это ограничение API cloudscale.ch. Модуль проигнорирует расхождения между настроенными параметрами и работающим сервером, если существует сервер с правильным именем или UUID. Изменяться будут только состояния.
Статус
Этот модуль помечен как превью, что означает, что он не гарантирует обратную совместимость.
Для получения помощи в разработке модулей, если вы так склонны, пожалуйста, прочитайте Информация о сообществе и участие, Тестирование Ansible и Разработка модулей.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/cloudscale_server_module.html