Spec-Zone.ru › Ansible

Модуль 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.

Также значение можно передать в переменной среды CLOUDSCALE_API_TIMEOUT.

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

api_token

string / обязательный

Токен API cloudscale.ch.

Также значение можно передать в переменной среды CLOUDSCALE_API_TOKEN.

api_url

string

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

URL API cloudscale.ch.

Также значение можно передать в переменной среды CLOUDSCALE_API_URL.

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

bulk_volume_size_gb

integer

Размер тома хранилища массовых данных в ГБ.

Если параметр не задан, том хранилища массовых данных не создаётся.

flavor

string

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

force

boolean

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

Варианты:

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

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

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

Варианты:

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

tags

dictionary

Теги, связанные с серверами. Чтобы удалить все теги, задайте значение {}.

use_ipv6

boolean

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

Варианты:

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

use_private_network

boolean

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

Варианты:

  • false
  • true

use_public_network

boolean

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

Варианты:

  • false
  • true

user_data

string

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

uuid

string

UUID сервера.

Необходимо указать либо name, либо uuid.

volume_size_gb

integer

Начальный размер корневого тома в ГБ.

Этот параметр не влияет на существующие серверы.

Чтобы изменить размер корневого тома, используйте модуль volume.

По умолчанию: 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

dictionary

Конфигурация, использованная для этого сервера

Возвращается: при успешном выполнении, если state != absent

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

href

string

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

Возвращается: при успешном выполнении, если state != absent

Пример: "https://api.cloudscale.ch/v1/servers/cfde831a-4e87-4a75-960f-89b0148aa2cc"

image

dictionary

Образ, использованный для загрузки этого сервера

Возвращается: при успешном выполнении, если state != absent

Пример: {"default_username": "ubuntu", "name": "Ubuntu 18.04 LTS", "operating_system": "Ubuntu", "slug": "ubuntu-18.04"}

interfaces

list / элементы=string

Список сетевых портов, подключённых к серверу

Возвращается: при успешном выполнении, если state != absent

Пример: [{"addresses": ["..."], "type": "public"}]

name

string

Отображаемое имя сервера

Возвращается: при успешном выполнении

Пример: "its-a-me-mario.cloudscale.ch"

server_groups

list / элементы=string

Список групп серверов

Возвращается: при успешном выполнении, если state != absent

Пример: [{"href": "https://api.cloudscale.ch/v1/server-groups/...", "name": "db-group", "uuid": "..."}]

ssh_fingerprints

list / элементы=string

Список отпечатков ключей узла SSH. Значение будет равно null, пока не удастся получить ключи узла с сервера.

Возвращается: при успешном выполнении, если state != absent

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

ssh_host_keys

list / элементы=string

Список ключей узла SSH. Значение будет равно null, пока не удастся получить ключи узла с сервера.

Возвращается: при успешном выполнении, если state != absent

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

state

string

Текущее состояние сервера

Возвращается: при успешном выполнении

Пример: "running"

tags

dictionary

Теги, связанные с сервером.

Возвращается: при успешном выполнении

Пример: {"project": "my project"}

uuid

string

Уникальный идентификатор этого сервера

Возвращается: при успешном выполнении

Пример: "cfde831a-4e87-4a75-960f-89b0148aa2cc"

volumes

list / элементы=string

Список томов, подключённых к серверу

Возвращается: при успешном выполнении, если state != absent

Пример: [{"device": "/dev/vda", "size_gb": "50", "type": "ssd"}]

zone

dictionary

Зона, использованная для загрузки этого сервера

Возвращается: при успешном выполнении, если state != absent

Пример: {"slug": "lpg1"}

Авторы

  • Gaudenz Steinlin (@gaudenz)
  • René Moser (@resmo)
  • Denis Krienbühl (@href)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)

© 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

Spec-Zone.ru

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