Spec-Zone.ru › Ansible 2.8

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

Новое в версии 2.3.

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

Обзор

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

Требования

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

  • packet-python >= 1.35

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
always_pxe
логический
добавлен в 2.4
    Варианты:
  • нет ←
  • да
Сохранить PXE в качестве первого варианта загрузки.
Обычно процесс PXE происходит только при первой загрузке. Установите этот аргумент, чтобы устройство постоянно загружалось в iPXE.
auth_token
-
Токен API Packet. Также можно указать его в переменной окружения PACKET_API_TOKEN.
count
-
По умолчанию:
1
Количество создаваемых устройств. Количество можно включить в имя хоста с помощью форматирования строк %d.
count_offset
-
По умолчанию:
1
С какого номера начать счёт.
device_ids
-
Список идентификаторов устройств, над которыми нужно выполнить операцию.
facility
-
Идентификатор (slug) объекта для создания устройства. См. API Packet для текущего списка — https://www.packet.net/developers/api/facilities/.
features
-
Словарь с «функциями» для создания устройства. См. документацию Packet API для подробностей.
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
логический
добавлен в 2.4
    Варианты:
  • нет ←
  • да
Заблокировать созданное устройство или нет.

псевдонимы: lock
operating_system
-
Идентификатор (slug) ОС для создания устройства. См. API Packet для текущего списка — https://www.packet.net/developers/api/operatingsystems/.
plan
-
Идентификатор (slug) плана для создания устройства. См. 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-адреса или пока устройство не достигнет состояния active state.
Если 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
логический
успех
Истина, если устройство было изменено каким-либо образом (создано, изменено или удалено)

Пример:
Истина
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.8/modules/packet_device_module.html

Spec-Zone.ru

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