cloudscale_ch.cloud.server модуль — Управление серверами на службе cloudscale.ch IaaS
Примечание
Этот модуль входит в коллекцию cloudscale_ch.cloud (версия 2.4.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install cloudscale_ch.cloud.
Для использования в книге задач укажите: cloudscale_ch.cloud.server.
Новое в cloudscale_ch.cloud 1.0.0
Описание
- Создание, обновление, запуск, остановка и удаление серверов на службе cloudscale.ch IaaS.
Псевдонимы: cloudscale_server
Параметры
Параметр | Комментарии |
|---|---|
api_timeout целое число | Время ожидания в секундах для вызовов API cloudscale.ch. Это также можно передать в переменной среды По умолчанию: |
api_token строка / обязательный | Токен API cloudscale.ch. Это также можно передать в переменной среды |
api_url строка добавлено в cloudscale_ch.cloud 1.3.0 | URL API cloudscale.ch. Это также можно передать в переменной среды По умолчанию: |
bulk_volume_size_gb целое число | Размер тома массового хранения в ГБ. Тома массового хранения не будет, если параметр не задан. |
flavor строка | Конфигурация сервера. |
force булево | Разрешить остановку работающего сервера для обновления, если это необходимо. Варианты:
|
image строка | Изображение, используемое для создания сервера. |
interfaces список / элементы=словарь добавлено в cloudscale_ch.cloud 1.4.0 | Список объектов сетевых интерфейсов, определяющих интерфейсы, которые необходимо подключить к серверу. Дополнительные сведения см. в https://www.cloudscale.ch/en/api/v1/#interfaces-attribute-specification. |
|
addresses список / элементы=словарь |
Подключение частного сетевого интерфейса и настройка подсети и/или IP-адреса. |
|
address строка |
Статический IP-адрес интерфейса. Используйте «[]», чтобы избежать назначения IP-адреса через DHCP. |
|
subnet строка |
UUID подсети, из которой будет назначен адрес. |
|
network строка |
Создание сетевого интерфейса в сети, идентифицируемой UUID. Используйте «public» вместо UUID, чтобы подключить публичный сетевой интерфейс. Можно опустить, если подсеть указана в параметре addresses. |
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 string | UUID сервера. Требуется указать либо name, либо uuid. |
volume_size_gb integer | Размер корневого тома в ГБ. По умолчанию: |
zone string | Зона, в которой находится сервер (например, |
Примечания
Примечание
- Если указан параметр uuid, он имеет приоритет над name при выборе сервера. Это позволяет обновить имя сервера.
- Если параметр uuid не указан, для выбора сервера используется name. Если существует более одного сервера с таким именем, выполнение прерывается.
- При обновлении учитываются только параметры name и flavor.
- Для перезагрузки существующих работающих серверов для применения изменений необходимо указать параметр force=true.
- Все операции выполняются с помощью публичного API cloudscale.ch версии 1.
- Для получения подробной информации см. полную документацию 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-10
flavor: flex-4-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-2
ssh_keys:
- ssh-rsa XXXXXXXXXX...XXXX 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-10
flavor: flex-8-2
force: true
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-10
flavor: flex-4-2
ssh_keys:
- ssh-rsa XXXXXXXXXX...XXXX ansible@cloudscale
api_token: xxxxxx
register: server
until: server is not failed
retries: 5
delay: 2
# Start a server with two network interfaces:
#
# A public interface with IPv4/IPv6
# A private interface on a specific private network with an IPv4 address
- name: Start a server with a public and private network interface
cloudscale_ch.cloud.server:
name: my-cloudscale-server-with-two-network-interfaces
image: debian-10
flavor: flex-4-2
ssh_keys:
- ssh-rsa XXXXXXXXXX...XXXX ansible@cloudscale
api_token: xxxxxx
interfaces:
- network: 'public'
- addresses:
- subnet: UUID_of_private_subnet
# Start a server with a specific IPv4 address from subnet range
- name: Start a server with a specific IPv4 address from subnet range
cloudscale_ch.cloud.server:
name: my-cloudscale-server-with-specific-address
image: debian-10
flavor: flex-4-2
ssh_keys:
- ssh-rsa XXXXXXXXXX...XXXX ansible@cloudscale
api_token: xxxxxx
interfaces:
- addresses:
- subnet: UUID_of_private_subnet
address: 'A.B.C.D'
# Start a server with two network interfaces:
#
# A public interface with IPv4/IPv6
# A private interface on a specific private network with no IPv4 address
- name: Start a server with a private network interface and no IP address
cloudscale_ch.cloud.server:
name: my-cloudscale-server-with-specific-address
image: debian-10
flavor: flex-4-2
ssh_keys:
- ssh-rsa XXXXXXXXXX...XXXX ansible@cloudscale
api_token: xxxxxx
interfaces:
- network: 'public'
- network: UUID_of_private_network
addresses: []
Значения возврата
Общие значения возврата документированы здесь, следующие — поля, уникальные для данного модуля:
Ключ | Описание |
|---|---|
flavor словарь | Используемый для этого сервера flavor Возвращается: успех, когда state != absent Пример: |
href строка | API-URL для получения подробностей о данном сервере Возвращается: успех, когда state != absent Пример: |
image словарь | Используемый для загрузки этого сервера образ Возвращается: успех, когда state != absent Пример: |
interfaces список / элементы=строка | Список сетевых портов, подключенных к серверу Возвращается: успех, когда state != absent Пример: |
name строка | Имя сервера для отображения Возвращается: успех Пример: |
server_groups список / элементы=строка | Список групп серверов Возвращается: успех, когда state != absent Пример: |
ssh_fingerprints список / элементы=строка | Список отпечатков ключей SSH. Будет пустым, пока ключи хоста не будут получены от сервера. Возвращается: успех, когда state != absent Пример: |
ssh_host_keys список / элементы=строка | Список ключей хоста SSH. Будет пустым, пока ключи хоста не будут получены от сервера. Возвращается: успех, когда state != absent Пример: |
state строка | Текущий статус сервера Возвращается: успех Пример: |
tags словарь | Теги, связанные с сервером. Возвращается: успех Пример: |
uuid строка | Уникальный идентификатор этого сервера Возвращается: успех Пример: |
volumes список / элементы=строка | Список объемов, подключенных к серверу Возвращается: успех, когда state != absent Пример: |
zone словарь | Используемая для загрузки этого сервера зона Возвращается: успех, когда state != absent Пример: |
Ссылки на сборку
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/cloudscale_ch/cloud/server_module.html