Модуль cloudscale_ch.cloud.server — управление серверами в сервисе IaaS cloudscale.ch
Примечание
Этот модуль входит в коллекцию cloudscale_ch.cloud (версия 2.5.3).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install cloudscale_ch.cloud.
Чтобы использовать коллекцию в плейбуке, укажите: cloudscale_ch.cloud.server.
Добавлено в cloudscale_ch.cloud 1.0.0
Краткое описание
- Создание, обновление, запуск, остановка и удаление серверов в сервисе IaaS cloudscale.ch.
Псевдонимы: cloudscale_server
Параметры
Параметр | Комментарии |
|---|---|
api_timeout integer | Тайм-аут в секундах для запросов к API cloudscale.ch. Также значение можно передать в переменной среды По умолчанию: |
api_token string / обязательный | Токен API cloudscale.ch. Также значение можно передать в переменной среды |
api_url string добавлено в cloudscale_ch.cloud 1.3.0 | URL API cloudscale.ch. Также значение можно передать в переменной среды По умолчанию: |
bulk_volume_size_gb integer | Размер тома хранилища массовых данных в ГБ. Если параметр не задан, том хранилища массовых данных не создаётся. |
flavor string | Конфигурация сервера. |
force boolean | При необходимости разрешить остановку работающего сервера для его обновления. Варианты:
|
image string | Образ, используемый для создания сервера. |
interfaces list / элементы=dictionary добавлено в cloudscale_ch.cloud 1.4.0 | Список объектов сетевых интерфейсов, указывающих интерфейсы для подключения к серверу. Дополнительные сведения см. на странице https://www.cloudscale.ch/en/api/v1/#interfaces-attribute-specification. |
|
addresses list / элементы=dictionary |
Подключить частный сетевой интерфейс и настроить подсеть и/или IP-адрес. |
|
address string |
Статический IP-адрес интерфейса. Используйте «[]», чтобы не назначать IP-адрес через DHCP. |
|
subnet string |
UUID подсети, из которой будет назначен адрес. |
|
network string |
Создать сетевой интерфейс в сети, заданной UUID. Чтобы подключить публичный сетевой интерфейс, вместо UUID укажите ‘public’. Параметр можно не указывать, если в поле addresses задана подсеть. |
name string | Имя сервера. Необходимо указать либо name, либо uuid. |
password string | Пароль сервера. |
server_groups list / элементы=string | Список UUID или имён групп серверов. |
ssh_keys list / элементы=string | Список открытых ключей SSH. Укажите здесь полное содержимое файла .pub. |
state string | Состояние сервера. Варианты:
|
tags dictionary | Теги, связанные с серверами. Чтобы удалить все теги, задайте значение |
use_ipv6 boolean | Включить IPv6 на публичном сетевом интерфейсе. Варианты:
|
use_private_network boolean | Подключить к серверу частный сетевой интерфейс. Варианты:
|
use_public_network boolean | Подключить к серверу публичный сетевой интерфейс. Варианты:
|
user_data string | Данные конфигурации Cloud-init (cloud-config), используемые для сервера. |
uuid string | UUID сервера. Необходимо указать либо name, либо uuid. |
volume_size_gb integer | Начальный размер корневого тома в ГБ. Этот параметр не влияет на существующие серверы. Чтобы изменить размер корневого тома, используйте модуль volume. По умолчанию: |
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 dictionary | Конфигурация, использованная для этого сервера Возвращается: при успешном выполнении, если state != absent Пример: |
href string | URL API для получения подробной информации об этом сервере Возвращается: при успешном выполнении, если state != absent Пример: |
image dictionary | Образ, использованный для загрузки этого сервера Возвращается: при успешном выполнении, если state != absent Пример: |
interfaces list / элементы=string | Список сетевых портов, подключённых к серверу Возвращается: при успешном выполнении, если state != absent Пример: |
name string | Отображаемое имя сервера Возвращается: при успешном выполнении Пример: |
server_groups list / элементы=string | Список групп серверов Возвращается: при успешном выполнении, если state != absent Пример: |
ssh_fingerprints list / элементы=string | Список отпечатков ключей узла SSH. Значение будет равно null, пока не удастся получить ключи узла с сервера. Возвращается: при успешном выполнении, если state != absent Пример: |
ssh_host_keys list / элементы=string | Список ключей узла SSH. Значение будет равно null, пока не удастся получить ключи узла с сервера. Возвращается: при успешном выполнении, если state != absent Пример: |
state string | Текущее состояние сервера Возвращается: при успешном выполнении Пример: |
tags dictionary | Теги, связанные с сервером. Возвращается: при успешном выполнении Пример: |
uuid string | Уникальный идентификатор этого сервера Возвращается: при успешном выполнении Пример: |
volumes list / элементы=string | Список томов, подключённых к серверу Возвращается: при успешном выполнении, если state != absent Пример: |
zone dictionary | Зона, использованная для загрузки этого сервера Возвращается: при успешном выполнении, если state != absent Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/cloudscale_ch/cloud/server_module.html