cloudscale_ch.cloud.server – Управляет серверами на службе IaaS cloudscale.ch
Примечание
Этот плагин является частью коллекции cloudscale_ch.cloud (версия 2.0.0).
Для его установки используйте: ansible-galaxy collection install cloudscale_ch.cloud.
Для использования в плейбуке укажите: cloudscale_ch.cloud.server.
Новое в версии 1.0.0: модуля cloudscale_ch.cloud
Обзор
- Создание, обновление, запуск, остановка и удаление серверов на службе IaaS cloudscale.ch.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| 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 строка | Конфигурация (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 | Конфигурация (flavor), используемая для этого сервера Пример: {'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–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/cloudscale_ch/cloud/server_module.html