cloudscale_ch.cloud.server – Управляет серверами на сервисе cloudscale.ch IaaS
Примечание
Этот плагин является частью коллекции cloudscale_ch.cloud (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install cloudscale_ch.cloud
Для использования в плейбуке укажите: cloudscale_ch.cloud.server
Новое в версии 1.0.0: из cloudscale_ch.cloud
Обзор
- Создание, обновление, запуск, остановка и удаление серверов на сервисе cloudscale.ch IaaS.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| api_timeout целое число | Значение по умолчанию: 30 | Таймаут в секундах для вызовов API cloudscale.ch. |
| api_token строка / обязательно | Токен API cloudscale.ch. Также можно передать через переменную среды CLOUDSCALE_API_TOKEN. | |
| api_url строка добавлено в 1.3.0 cloudscale_ch.cloud | Значение по умолчанию: "https://api.cloudscale.ch/v1" | URL API cloudscale.ch. Также можно передать через переменную среды CLOUDSCALE_API_URL. |
| bulk_volume_size_gb целое число | Размер тома резервного копирования в ГБ. Если не указано, тома резервного копирования нет. | |
| flavor строка | Конфигурация сервера. | |
| force булево |
| Разрешить остановку работающего сервера для обновления, если это необходимо. |
| image строка | Образ, используемый для создания сервера. | |
| name строка | Имя сервера. Требуется либо name, либо uuid. | |
| password строка | Пароль для сервера. | |
| server_groups список / элементы=строка | Список UUID или имён групп серверов. | |
| ssh_keys список / элементы=строка | Список открытых ключей SSH. Используйте содержимое вашего файла .pub. | |
| state строка |
| Состояние сервера. |
| tags словарь | Теги, связанные с серверами. Установите значение {} для удаления всех тегов. | |
| use_ipv6 булево |
| Включить IPv6 на общедоступном сетевом интерфейсе. |
| use_private_network булево |
| Подключить частный сетевой интерфейс к серверу. |
| use_public_network булево |
| Подключить общедоступный сетевой интерфейс к серверу. |
| user_data строка | Данные конфигурации cloud-init (cloud-config) для сервера. | |
| uuid строка | UUID сервера. Требуется либо name, либо uuid. | |
| volume_size_gb целое число | Значение по умолчанию: 10 | Размер корневого тома в ГБ. |
| zone строка | Зона, в которой находится сервер (например, lgp1 или rma1). |
Примечания
Примечание
- Если предоставлен параметр uuid, он имеет приоритет над name для выбора сервера. Это позволяет обновить имя сервера.
- Если параметр uuid не указан, для выбора сервера используется name. Если существует более одного сервера с таким именем, выполнение прерывается.
- Только параметры name и flavor учитываются при обновлении.
- Необходимо указать параметр force=true, чтобы разрешить перезагрузку существующих работающих серверов для применения изменений.
- Все операции выполняются с использованием публичного API cloudscale.ch v1.
- Для получения подробной информации обратитесь к полной документации API: https://www.cloudscale.ch/en/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_ch.cloud.server:
name: my-shiny-cloudscale-server
image: debian-8
flavor: flex-4
ssh_keys: ssh-rsa XXXXXXXXXX...XXXX ansible@cloudscale
server_groups: shiny-group
zone: lpg1
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_ch.cloud.server:
name: my-other-shiny-server
image: ubuntu-16.04
flavor: flex-8
ssh_keys: ssh-rsa XXXXXXXXXXX ansible@cloudscale
server_groups: shiny-group
zone: lpg1
api_token: xxxxxx
# Force to update the flavor of a running server
- name: Start cloudscale.ch server
cloudscale_ch.cloud.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_ch.cloud.server:
uuid: '{{ server1.uuid }}'
state: stopped
api_token: xxxxxx
# Delete my second server
- name: Delete my second server
cloudscale_ch.cloud.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_ch.cloud.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 is not failed
retries: 5
delay: 2
Возвращаемые значения
Общие возвращаемые значения описаны в здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| flavor словарь | успех, когда state != absent | Конфигурация сервера, которая использовалась для этого сервера Пример: {'memory_gb': 4, 'name': 'Flex-4', 'slug': 'flex-4', 'vcpu_count': 2} |
| href строка | успех, когда state != absent | URL API для получения подробной информации об этом сервере Пример: https://api.cloudscale.ch/v1/servers/cfde831a-4e87-4a75-960f-89b0148aa2cc |
| image словарь | успех, когда state != absent | Образ, используемый для загрузки этого сервера Пример: {'default_username': 'ubuntu', 'name': 'Ubuntu 18.04 LTS', 'operating_system': 'Ubuntu', 'slug': 'ubuntu-18.04'} |
| interfaces список / элементы=строка | успех, когда state != absent | Список сетевых портов, подключенных к серверу Пример: [{'addresses': ['...'], 'type': 'public'}] |
| name строка | успех | Имя отображения сервера Пример: its-a-me-mario.cloudscale.ch |
| server_groups список / элементы=строка | успех, когда state != absent | Список групп серверов Пример: [{'href': 'https://api.cloudscale.ch/v1/server-groups/...', 'name': 'db-group', 'uuid': '...'}] |
| ssh_fingerprints список / элементы=строка | успех, когда state != absent | Список отпечатков ключей SSH. Будет пустым, пока ключи не будут получены с сервера. Пример: ['ecdsa-sha2-nistp256 SHA256:XXXX', '...'] |
| ssh_host_keys список / элементы=строка | успех, когда state != absent | Список ключей SSH хоста. Будет пустым, пока ключи не будут получены с сервера. Пример: ['ecdsa-sha2-nistp256 XXXXX', '...'] |
| state строка | успех | Текущее состояние сервера Пример: запущен |
| tags словарь | успех | Теги, связанные с сервером. Пример: {'project': 'my project'} |
| uuid строка | успех | Уникальный идентификатор сервера Пример: cfde831a-4e87-4a75-960f-89b0148aa2cc |
| volumes список / элементы=строка | успех, когда state != absent | Список томов, подключенных к серверу Пример: [{'device': '/dev/vda', 'size_gb': '50', 'type': 'ssd'}] |
| zone словарь | успех, когда state != absent | Зона, используемая для загрузки этого сервера Пример: {'slug': 'lpg1'} |
Авторы
- Gaudenz Steinlin (@gaudenz)
- René Moser (@resmo)
- Denis Krienbühl (@href)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/cloudscale_ch/cloud/server_module.html