Spec-Zone.ru › Ansible 2.6

packet_device - Управление сервером на bare metal в Packet Host.

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

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

Обзор

  • Управление сервером на bare metal в 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
Facility slug для создания устройства. См. API Packet для текущего списка — https://www.packet.net/developers/api/facilities/.
features
Словарь с «функциями» для создания устройства. См. документацию API Packet для получения подробной информации.
hostnames
Имя хоста устройства или список имён хостов.
Если задана строка или список с одним элементом, можно использовать формат строк Python "%d" для расширения чисел из count.
Если задано только одно имя хоста, оно может быть расширено в список, если count > 1.

псевдонимы: имя
ipxe_script_url
(добавлен в 2.4)
URL пользовательского скрипта iPXE для конфигурирования.
Дополнительная информация о пользовательском iPXE для устройств Packet по адресу https://help.packet.net/technical/infrastructure/custom-ipxe.
locked
(добавлен в 2.4)
Значение по умолчанию:
"нет"
Указывает, следует ли заблокировать созданное устройство.

псевдонимы: заблокировать
operating_system
OS 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
Блоб userdata, доступный для машины
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
bool
успех
Истинно, если устройство было изменено каким-либо способом (создано, изменено или удалено)

Пример:
Истина
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": "provisioning", "public_ipv6": ""2604:1380:2:5200::3"}]


Статус

Этот модуль помечен как предварительный, что означает, что он не гарантирует обратную совместимость интерфейса.

Техническое обслуживание

Этот модуль помечен как сообщество, что означает, что он поддерживается сообществом Ansible. См. Техническое обслуживание и поддержка модулей для получения дополнительной информации.

Список других модулей, которые также поддерживаются сообществом Ansible, см. здесь.

Автор

  • Tomas Karasek (@t0mk) <tom.to.the.k@gmail.com>
  • Matt Baldwin <baldwin@stackpointcloud.com>
  • Thibaud Morel l’Horset <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.6/modules/packet_device_module.html

Spec-Zone.ru

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