Модуль 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
Параметры
Параметр | Комментарии |
|---|---|
always_pxe boolean | Удерживать PXE в качестве первого параметра загрузки. Обычно процесс PXE происходит только при первой загрузке. Установите этот аргумент, чтобы ваше устройство постоянно загружалось с iPXE. Варианты:
|
auth_token string | Токен API Packet. Вы также можете указать его в переменной среды |
count integer | Количество устройств для создания. Количество можно включить в имя хоста с помощью форматирования строк %d. По умолчанию: |
count_offset integer | С какого числа начать отсчет. По умолчанию: |
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 | |
ipxe_script_url string | URL кастомного скрипта iPXE для подготовки. Подробнее о кастомном iPXE для устройств Packet по адресу https://help.packet.net/technical/infrastructure/custom-ipxe. По умолчанию: |
locked aliases: lock boolean | Блокировать созданное устройство. Варианты:
|
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 | Желаемое состояние устройства. Если установлено Если установлено Варианты:
|
tags list / elements=string добавлено в community.general 0.2.0 | Список тегов устройства. В настоящее время реализовано только для создания устройств. |
user_data string | Данные пользователя, доступные для машины |
wait_for_public_IPv integer | Ожидать назначения публичного IPv4/IPv6 адреса экземпляру. Если установлено 4, будет ожидание назначения IPv4 экземпляру. Если установлено 6, ожидание назначения публичного IPv6 экземпляру. Варианты:
|
wait_timeout integer | Время ожидания (в секундах) либо автоматического назначения IP-адреса, либо достижения устройством состояния Если По умолчанию: |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: нет | Может работать в режиме |
diff_mode | Поддержка: нет | В режиме diff будет возвращать подробную информацию о том, что изменилось (или, возможно, должно измениться в |
Примеры
# 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, если устройство было каким-либо образом изменено (создано, модифицировано или удалено) Возвращено: успех Пример: |
devices список / элементы=строка | Информация о каждом обработанном устройстве Возвращено: успех Пример: |
Ссылки на коллекцию
© 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