Spec-Zone.ru › Ansible

Модуль community.general.packet_device — управление физическим сервером в Packet Host

Примечание

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

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

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

Чтобы использовать модуль в плейбуке, укажите: community.general.packet_device.

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

Краткое описание

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

Требования

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

  • packet-python >= 1.35

Параметры

Параметр

Комментарии

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

Идентификатор площадки для создания устройства. Актуальный список см. в API Packet: https://www.packet.net/developers/api/facilities/.

features

dictionary

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

hostnames

псевдонимы: 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

псевдонимы: lock

boolean

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

Варианты:

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

operating_system

string

Идентификатор ОС для создания устройства. Актуальный список см. в API Packet: https://www.packet.net/developers/api/operatingsystems/.

plan

string

Идентификатор плана для создания устройства. Актуальный список см. в API Packet: https://www.packet.net/developers/api/plans/.

project_id

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

Идентификатор проекта, к которому относится устройство.

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 is
# 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

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

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

Ключ

Описание

devices

list / elements=string

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

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

Пример: [{"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–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/general/packet_device_module.html

Spec-Zone.ru

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