Spec-Zone.ru › Ansible

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.

Это также можно передать в переменной среды CLOUDSCALE_API_TIMEOUT.

По умолчанию: 45

api_token

строка / обязательный

Токен API cloudscale.ch.

Это также можно передать в переменной среды CLOUDSCALE_API_TOKEN.

api_url

строка

добавлено в cloudscale_ch.cloud 1.3.0

URL API cloudscale.ch.

Это также можно передать в переменной среды CLOUDSCALE_API_URL.

По умолчанию: "https://api.cloudscale.ch/v1"

bulk_volume_size_gb

целое число

Размер тома массового хранения в ГБ.

Тома массового хранения не будет, если параметр не задан.

flavor

строка

Конфигурация сервера.

force

булево

Разрешить остановку работающего сервера для обновления, если это необходимо.

Варианты:

  • false ← (по умолчанию)
  • true

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

строка

Состояние сервера.

Варианты:

  • "running" ← (по умолчанию)
  • "stopped"
  • "absent"

tags

словарь

Теги, связанные с серверами. Установите это значение в {}, чтобы очистить все теги.

use_ipv6

булево

Включить IPv6 в публичном сетевом интерфейсе.

Варианты:

  • false
  • true ← (по умолчанию)

use_private_network

булево

Подключить частный сетевой интерфейс к серверу.

Варианты:

  • false
  • true

use_public_network

булево

Подключить публичный сетевой интерфейс к серверу.

Варианты:

  • false
  • true

user_data

строка

Данные конфигурации cloud-init (cloud-config) для использования на сервере.

END_OF_DOCUMENT_MARKER

uuid

string

UUID сервера.

Требуется указать либо name, либо uuid.

volume_size_gb

integer

Размер корневого тома в ГБ.

По умолчанию: 10

zone

string

Зона, в которой находится сервер (например, lpg1 или rma1).

Примечания

Примечание

  • Если указан параметр 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

Пример: {"memory_gb": 4, "name": "Flex-4-2", "slug": "flex-4-2", "vcpu_count": 2}

href

строка

API-URL для получения подробностей о данном сервере

Возвращается: успех, когда state != absent

Пример: "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

список / элементы=строка

Список отпечатков ключей SSH. Будет пустым, пока ключи хоста не будут получены от сервера.

Возвращается: успех, когда state != absent

Пример: ["ecdsa-sha2-nistp256 SHA256:XXXX", "..."]

ssh_host_keys

список / элементы=строка

Список ключей хоста SSH. Будет пустым, пока ключи хоста не будут получены от сервера.

Возвращается: успех, когда state != absent

Пример: ["ecdsa-sha2-nistp256 XXXXX", "..."]

state

строка

Текущий статус сервера

Возвращается: успех

Пример: "running"

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–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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API