cloudscale_server – Управляет серверами на IaaS-сервисе cloudscale.ch
Новая версия с 2.3.
Описание
- Создание, обновление, запуск, остановка и удаление серверов на IaaS-сервисе cloudscale.ch.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| anti_affinity_with строка | UUID другого сервера для создания группы антисродства. Взаимоисключительно с параметром server_groups. Устаревший, удален в версии 2.11. | |
| api_timeout - добавлено в 2.5 | По умолчанию: 30 | Таймаут в секундах для вызовов API cloudscale.ch. |
| api_token - | Токен API cloudscale.ch. Также может быть передан в переменной окружения CLOUDSCALE_API_TOKEN. | |
| bulk_volume_size_gb целое число | Размер тома накопителя в ГБ. Если не задан, то накопитель не создается. | |
| flavor строка | Тип сервера. | |
| force булево добавлено в 2.8 |
| Разрешить остановку работающего сервера для обновления, если необходимо. |
| image - | Изображение, используемое для создания сервера. | |
| name строка | Имя сервера. Требуется либо name, либо uuid. | |
| password строка добавлено в 2.8 | Пароль для сервера. | |
| server_groups список добавлено в 2.8 | Список UUID или имен групп серверов. Взаимоисключительно с параметром anti_affinity_with. | |
| 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 | Размер корневого тома в ГБ. |
Примечания
Примечание
- С версии 2.8, uuid и name больше не взаимоисключающие.
- Если параметр uuid предоставлен, он имеет приоритет над name для выбора сервера. Это позволяет обновить имя сервера.
- Если параметр uuid не предоставлен, name используется для выбора сервера. Если существует более одного сервера с таким именем, выполнение прерывается.
- Для обновления оцениваются только параметры name и flavor.
- Параметр force=true должен быть указан, чтобы разрешить перезагрузку существующих работающих серверов для применения изменений.
- Вместо параметра api_token можно использовать переменную окружения
CLOUDSCALE_API_TOKEN. - Все операции выполняются с использованием публичного API cloudscale.ch v1.
- Подробности см. в полной документации API: https://www.cloudscale.ch/ru/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_server:
name: my-shiny-cloudscale-server
image: debian-8
flavor: flex-4
ssh_keys: ssh-rsa XXXXXXXXXX...XXXX ansible@cloudscale
server_groups: shiny-group
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_server:
name: my-other-shiny-server
image: ubuntu-16.04
flavor: flex-8
ssh_keys: ssh-rsa XXXXXXXXXXX ansible@cloudscale
server_groups: shiny-group
api_token: xxxxxx
# Force to update the flavor of a running server
- name: Start cloudscale.ch server
cloudscale_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_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 is defined and server.ssh_fingerprints
retries: 60
delay: 2
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| anti_affinity_with список | успех, если состояние не равно absent | Список серверов в той же группе антиаффинитета Устарело, удалено в версии 2.11. |
| flavor строка | успех, если состояние не равно absent | Используемый тип виртуальной машины этого сервера Пример: flex-8 |
| href строка | успех, если состояние не равно absent | API URL для получения подробностей об этом сервере Пример: 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 |
| server_groups список добавлен в 2.8 | успех, если состояние не равно absent | Список групп серверов Пример: [{'href': 'https://api.cloudscale.ch/v1/server-groups/...', 'uuid': '...', 'name': 'db-group'}] |
| ssh_fingerprints список | успех, если состояние не равно absent | Список отпечатков ключей SSH хоста. Будет null, пока ключи хоста не будут получены с сервера. Пример: ['ecdsa-sha2-nistp256 SHA256:XXXX', '...'] |
| ssh_host_keys список | успех, если состояние не равно absent | Список ключей SSH хоста. Будет null, пока ключи хоста не будут получены с сервера. Пример: ['ecdsa-sha2-nistp256 XXXXX', '...'] |
| state строка | успех | Текущее состояние сервера Пример: running |
| uuid строка | успех | Уникальный идентификатор этого сервера Пример: cfde831a-4e87-4a75-960f-89b0148aa2cc |
| volumes список | успех, если состояние не равно absent | Список подключенных к серверу томов Пример: [{'type': 'ssd', 'device': '/dev/vda', 'size_gb': '50'}] |
Статус
- Гарантии обратной совместимости данного модуля нет. [превью]
- Данный модуль поддерживается сообществом Ansible. [community]
Авторы
- Gaudenz Steinlin (@gaudenz)
- René Moser (@resmo)
Подсказка
Если вы заметили какие-либо проблемы в этом документе, вы можете отредактировать его, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/modules/cloudscale_server_module.html