Spec-Zone.ru › Ansible

Модуль community.general.packet_device — Управление сервером без операционной системы в Packet Host

Примечание

Этот модуль является частью коллекции community.general (версия 9.5.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.general. Для использования этого модуля необходимы дополнительные требования, см. Требования для получения подробной информации.

Для использования в книге задач укажите: community.general.packet_device.

  • Описание
  • Требования
  • Параметры
  • Атрибуты
  • Примеры
  • Возвращаемые значения

Описание

  • Управление сервером без операционной системы в Packet Host (в терминах API — «устройство»).
  • При создании машины можно необязательно дождаться публичного IP-адреса или активного состояния.
  • Данный модуль зависит от пакет >= 1.0.
  • Документация API находится по адресу https://www.packet.net/developers/api/devices.

Требования

Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.

  • packet-python >= 1.35
END_OF_DOCUMENT_MARKER

Параметры

Параметр

Комментарии

always_pxe

boolean

Удерживать PXE в качестве первого параметра загрузки.

Обычно процесс PXE происходит только при первой загрузке. Установите этот аргумент, чтобы ваше устройство постоянно загружалось с iPXE.

Варианты:

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

auth_token

string

Токен API Packet. Вы также можете указать его в переменной среды PACKET_API_TOKEN.

count

integer

Количество устройств для создания. Количество можно включить в имя хоста с помощью форматирования строк %d.

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

count_offset

integer

С какого числа начать отсчет.

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

device_ids

list / elements=string

Список идентификаторов устройств, на которых нужно выполнить операцию.

facility

string

Facility slug для создания устройства. См. Packet API для текущего списка - https://www.packet.net/developers/api/facilities/.

features

dictionary

Словарь с «функциями» для создания устройства. См. документацию Packet API для получения подробностей.

hostnames

aliases: name

list / elements=string

Имя хоста устройства или список имён хостов.

Если задана строка или список из одного элемента, вы можете использовать формат строк Python "%d", чтобы расширить числа из count.

Если указано только одно имя хоста, оно может быть расширено до списка, если count>1.

ipxe_script_url

string

URL кастомного скрипта iPXE для подготовки.

Подробнее о кастомном iPXE для устройств Packet по адресу https://help.packet.net/technical/infrastructure/custom-ipxe.

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

locked

aliases: lock

boolean

Блокировать созданное устройство.

Варианты:

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

operating_system

string

OS slug для создания устройства. См. Packet API для текущего списка - https://www.packet.net/developers/api/operatingsystems/.

plan

string

Plan slug для создания устройства. См. Packet API для текущего списка - https://www.packet.net/developers/api/plans/.

project_id

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

ID проекта устройства.

state

string

Желаемое состояние устройства.

Если установлено present (по умолчанию), вызов модуля вернет результат сразу после успешного возврата HTTP-запроса на создание устройства.

Если установлено active, вызов модуля будет блокироваться, пока все указанные устройства не перейдут в состояние active в соответствии с API Packet или пока не произойдёт wait_timeout.

Варианты:

  • "present" ← (по умолчанию)
  • "absent"
  • "active"
  • "inactive"
  • "rebooted"

tags

list / elements=string

добавлено в community.general 0.2.0

Список тегов устройства.

В настоящее время реализовано только для создания устройств.

user_data

string

Данные пользователя, доступные для машины

wait_for_public_IPv

integer

Ожидать назначения публичного IPv4/IPv6 адреса экземпляру.

Если установлено 4, будет ожидание назначения IPv4 экземпляру.

Если установлено 6, ожидание назначения публичного IPv6 экземпляру.

Варианты:

  • 4
  • 6

wait_timeout

integer

Время ожидания (в секундах) либо автоматического назначения IP-адреса, либо достижения устройством состояния active.

Если wait_for_public_IPv установлено и state=active, модуль будет ждать обоих событий последовательно, применяя тайм-аут дважды.

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

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: нет

Может работать в режиме check_mode и возвращать прогнозируемый результат изменения состояния без модификации целевого объекта.

diff_mode

Поддержка: нет

В режиме diff будет возвращать подробную информацию о том, что изменилось (или, возможно, должно измениться в check_mode).

Примеры

# All the examples assume that you have your Packet API token in environment variable PACKET_API_TOKEN.
# You can also pass it to the auth_token parameter of the module instead.

# Creating devices

- name: Create 1 device
  hosts: localhost
  tasks:
  - community.general.packet_device:
      project_id: 89b497ee-5afc-420a-8fb5-56984898f4df
      hostnames: myserver
      tags: ci-xyz
      operating_system: ubuntu_16_04
      plan: baremetal_0
      facility: sjc1

# Create the same device and wait until it is in state "active", (when it's
# ready for other API operations). Fail if the device is not "active" in
# 10 minutes.

- name: Create device and wait up to 10 minutes for active state
  hosts: localhost
  tasks:
  - community.general.packet_device:
      project_id: 89b497ee-5afc-420a-8fb5-56984898f4df
      hostnames: myserver
      operating_system: ubuntu_16_04
      plan: baremetal_0
      facility: sjc1
      state: active
      wait_timeout: 600

- name: Create 3 ubuntu devices called server-01, server-02 and server-03
  hosts: localhost
  tasks:
  - community.general.packet_device:
      project_id: 89b497ee-5afc-420a-8fb5-56984898f4df
      hostnames: server-%02d
      count: 3
      operating_system: ubuntu_16_04
      plan: baremetal_0
      facility: sjc1

- name: Create 3 coreos devices with userdata, wait until they get IPs and then wait for SSH
  hosts: localhost
  tasks:
  - name: Create 3 devices and register their facts
    community.general.packet_device:
      hostnames: [coreos-one, coreos-two, coreos-three]
      operating_system: coreos_stable
      plan: baremetal_0
      facility: ewr1
      locked: true
      project_id: 89b497ee-5afc-420a-8fb5-56984898f4df
      wait_for_public_IPv: 4
      user_data: |
        #cloud-config
        ssh_authorized_keys:
          - {{ lookup('file', 'my_packet_sshkey') }}
        coreos:
          etcd:
            discovery: https://discovery.etcd.io/6a28e078895c5ec737174db2419bb2f3
            addr: $private_ipv4:4001
            peer-addr: $private_ipv4:7001
          fleet:
            public-ip: $private_ipv4
          units:
            - name: etcd.service
              command: start
            - name: fleet.service
              command: start
    register: newhosts

  - name: Wait for ssh
    ansible.builtin.wait_for:
      delay: 1
      host: "{{ item.public_ipv4 }}"
      port: 22
      state: started
      timeout: 500
    with_items: "{{ newhosts.devices }}"


# Other states of devices

- name: Remove 3 devices by uuid
  hosts: localhost
  tasks:
  - community.general.packet_device:
      project_id: 89b497ee-5afc-420a-8fb5-56984898f4df
      state: absent
      device_ids:
        - 1fb4faf8-a638-4ac7-8f47-86fe514c30d8
        - 2eb4faf8-a638-4ac7-8f47-86fe514c3043
        - 6bb4faf8-a638-4ac7-8f47-86fe514c301f

Возвращаемые значения

Общие возвращаемые значения описаны здесь, следующие поля уникальны для данного модуля:

Ключ

Описание

changed

boolean

True, если устройство было каким-либо образом изменено (создано, модифицировано или удалено)

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

Пример: true

devices

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

Информация о каждом обработанном устройстве

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

Пример: [{"hostname": "my-server.com", "id": "2a5122b9-c323-4d5c-b53c-9ad3f54273e7", "locked": false, "private-ipv4": "10.0.15.12", "public_ipv4": "147.229.15.12", "public_ipv6": "2604:1380:2:5200::3", "state": "provisioning", "tags": []}]

Авторы

  • Tomas Karasek (@t0mk)
  • Matt Baldwin (@baldwinSPC)
  • Thibaud Morel l’Horset (@teebes)

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

  • Система отслеживания проблем
  • Репозиторий (источники)
  • Задать вопрос
  • Отправить отчет об ошибке
  • Запросить функцию
  • Связь

© 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/community/general/packet_device_module.html

Spec-Zone.ru

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