Spec-Zone.ru › Ansible 2.9

packet_device – Управление сервером без операционной системы в Packet Host

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

Описание

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

Требования

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

  • packet-python ≥ 1.35

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
always_pxe
boolean
добавлен в 2.4
    Варианты:
  • нет ←
  • да
Удерживать PXE как первый параметр загрузки.
Обычно процесс PXE происходит только при первой загрузке. Установите этот параметр, чтобы устройство постоянно загружалось с iPXE.
auth_token
-
Токен API Packet. Также можно указать в переменной среды PACKET_API_TOKEN.
count
-
Значение по умолчанию:
1
Количество устройств для создания. Номер устройства можно включить в имя хоста с помощью формата строк %d.
count_offset
-
Значение по умолчанию:
1
Номер, с которого начать отсчет.
device_ids
-
Список идентификаторов устройств, для которых нужно выполнить операцию.
facility
-
Идентификатор объекта для создания устройства. См. API Packet для текущего списка - https://www.packet.net/developers/api/facilities/.
features
-
Словарь с "характеристиками" для создания устройства. Подробности см. в документации API Packet.
hostnames
-
Имя хоста устройства или список имён хостов.
Если строка или список с одним элементом, можно использовать Python-форматирование строк "%d", чтобы расширить номера из count.
Если только одно имя хоста, оно может быть расширено до списка, если count > 1.

псевдонимы: name
ipxe_script_url
-
добавлен в 2.4
URL пользовательского скрипта iPXE для подготовки.
Дополнительная информация о пользовательском iPXE для устройств Packet на https://help.packet.net/technical/infrastructure/custom-ipxe.
locked
boolean
добавлен в 2.4
    Варианты:
  • нет ←
  • да
Блокировать созданное устройство.

псевдонимы: lock
operating_system
-
Идентификатор ОС для создания устройства. См. API Packet для текущего списка - https://www.packet.net/developers/api/operatingsystems/.
plan
-
Идентификатор плана для создания устройства. См. API Packet для текущего списка - https://www.packet.net/developers/api/plans/.
project_id
- / обязательно
Идентификатор проекта устройства.
state
-
    Варианты:
  • наличие ←
  • отсутствует
  • активный
  • неактивный
  • перезагружен
Желаемое состояние устройства.
Если установлено значение present (по умолчанию), вызов модуля вернет результат сразу после успешного возврата HTTP-запроса на создание устройства.
Если установлено значение active, вызов модуля будет заблокирован до тех пор, пока все указанные устройства не будут находиться в активном состоянии в соответствии с API Packet или пока не истечет время ожидания wait_timeout.
user_data
-
Данные пользователя, доступные машине.
wait_for_public_IPv
-
добавлен в 2.4
    Варианты:
  • 4
  • 6
Дожидаться назначения публичного IPv4/IPv6 адреса экземпляру.
Если установлено значение 4, будет ожидание присвоения IPv4 экземпляру.
Если установлено значение 6, будет ожидание присвоения публичного IPv6 экземпляру.
wait_timeout
-
Значение по умолчанию:
900
Сколько времени (секунды) ожидать либо автоматическое присвоение IP-адреса, либо состояние устройства, указанное в поле state active.
Если wait_for_public_IPv установлено и state установлено на значение active, модуль будет ожидать обеих событий последовательно, применяя таймаут дважды.

Примечания

Примечание

  • Не поддерживает режим проверки.

Примеры

# All the examples assume that you have your Packet api token in env var 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:
  - packet_device:
      project_id: 89b497ee-5afc-420a-8fb5-56984898f4df
      hostnames: myserver
      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 devices in not "active" in
# 10 minutes.

- name: create device and wait up to 10 minutes for active state
  hosts: localhost
  tasks:
  - 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:
  - 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
    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
    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:
  - 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
успех
Истина, если устройство было изменено каким-либо образом (создано, изменено или удалено)

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

Пример:
[{"hostname": "my-server.com", "id": "2a5122b9-c323-4d5c-b53c-9ad3f54273e7", "public_ipv4": "147.229.15.12", "private-ipv4": "10.0.15.12", "tags": [], "locked": ложь, "state": "подготовка", "public_ipv6": ""2604:1380:2:5200::3"}]


Статус

  • Этот модуль не гарантирует обратную совместимость интерфейса. [превью]
  • Этот модуль поддерживается сообществом Ansible. [сообщество]

Авторы

  • Tomas Karasek (@t0mk) <tom.to.the.k@gmail.com>
  • Matt Baldwin (@baldwinSPC) <baldwin@stackpointcloud.com>
  • Thibaud Morel l’Horset (@teebes) <teebes@gmail.com>

Подсказка

Если вы обнаружите какие-либо проблемы в этой документации, вы можете изменить этот документ, чтобы улучшить его.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/packet_device_module.html

Spec-Zone.ru

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