hetzner.hcloud.hcloud inventory — плагин динамического инвентаря Ansible для Hetzner Cloud.
Примечание
Этот плагин инвентаря входит в состав коллекции hetzner.hcloud (версия 6.10.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в состав ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install hetzner.hcloud. Для работы с этим плагином инвентаря требуются дополнительные компоненты; подробности см. в разделе Требования.
Чтобы использовать его в плейбуке, укажите: hetzner.hcloud.hcloud.
Краткое описание
- Читает инвентарь из API Hetzner Cloud.
- Использует файл конфигурации YAML с расширением
hcloud.ymlилиhcloud.yaml.
Требования
Указанные ниже компоненты должны быть установлены на локальном управляющем узле, который выполняет этот плагин инвентаря.
- python-dateutil >= 2.7.5
- requests >=2.20
Параметры
Параметр | Комментарии |
|---|---|
api_endpoint string | Конечная точка API Hetzner Cloud. По умолчанию: Конфигурация:
|
api_token псевдонимы: token string / обязательный | |
cache boolean | Включение или отключение кэширования исходных данных инвентаря; для работы требуется настроенный плагин кэширования. Варианты:
Конфигурация:
|
cache_connection string | Данные подключения к кэшу или путь к нему; сведения см. в документации плагина кэширования. Конфигурация:
|
cache_plugin string | Плагин кэширования для исходных данных инвентаря. По умолчанию: Конфигурация:
|
cache_prefix string | Префикс для файлов/таблиц плагина кэширования. По умолчанию: Конфигурация:
|
cache_timeout integer | Продолжительность кэширования в секундах. По умолчанию: Конфигурация:
|
compose dictionary | Создавать переменные из выражений jinja2. По умолчанию: |
connect_with string | Подключаться к серверу, используя значение из этого поля. Если указанное значение доступно, оно будет присвоено переменной Варианты:
|
group string | Группа, в которую автоматически добавляются все серверы. По умолчанию: |
groups dictionary | Добавлять узлы в группы на основе условий Jinja2. По умолчанию: |
hostname string добавлено в hetzner.hcloud 3.0.0 | Шаблон имени узла экземпляра. Если он не указан, будет использоваться имя сервера Hetzner Cloud. Доступны переменные узла Hetzner Cloud. Имена доступных переменных предоставляются с модификаторами |
hostvars_prefix string добавлено в hetzner.hcloud 2.5.0 | Префикс имен переменных узлов, полученных из Hetzner Cloud. По умолчанию: |
hostvars_suffix string добавлено в hetzner.hcloud 2.5.0 | Суффикс имен переменных узлов, полученных из Hetzner Cloud. |
images list / элементы=string | Добавлять в инвентарь экземпляры с указанным именем образа; доступно только для системных образов. По умолчанию: |
keyed_groups list / элементы=dictionary | Добавлять узлы в группы на основе значений переменной. По умолчанию: |
|
default_value string добавлено в ansible-core 2.12 |
Значение по умолчанию, если значение переменной узла равно Этот параметр нельзя использовать одновременно с |
|
key string |
Ключ входного словаря, используемый для создания групп. |
|
parent_group string |
Родительская группа для группы, созданной по ключу. |
|
prefix string |
Имя группы, созданной по ключу, будет начинаться с этого префикса. По умолчанию: |
|
separator string |
Разделитель, используемый при формировании имени группы, созданной по ключу. По умолчанию: |
|
trailing_separator boolean добавлено в ansible-core 2.12 |
Задайте для этого параметра значение Этот параметр нельзя использовать одновременно с Варианты:
|
label_selector string | Добавлять в инвентарь экземпляры с этой меткой. По умолчанию: |
leading_separator boolean добавлено в ansible-core 2.11 | Используется вместе с По умолчанию имя группы, созданной по ключу, начинается с символа подчеркивания, если для нее не заданы префикс или разделитель. Это происходит потому, что по умолчанию используются префикс Задайте для этого параметра значение Если имя группы формируется из сопоставления, разделитель все равно используется для объединения элементов. Чтобы полностью отказаться от разделителя в имени группы, задайте для группы, созданной по ключу, пустую строку в качестве разделителя. Варианты:
|
locations list / элементы=string | Добавлять в инвентарь экземпляры, расположенные в этом регионе. По умолчанию: |
network string | Добавлять в инвентарь экземпляры, подключенные к этой сети по имени или идентификатору. По умолчанию: |
plugin string / обязательный | Указывает, что это экземпляр инвентаря hetzner.hcloud.hcloud. Варианты:
|
status list / элементы=string | Добавлять в инвентарь экземпляры с этим статусом. По умолчанию: |
strict boolean | Если Поскольку в выражениях можно использовать факты, они могут быть доступны не всегда, поэтому по умолчанию такие ошибки игнорируются. Варианты:
|
types list / элементы=string | Добавлять в инвентарь экземпляры этого типа. По умолчанию: |
use_extra_vars boolean добавлено в ansible-core 2.11 | Объединять дополнительные переменные с доступными переменными для композиции (наивысший приоритет). Варианты:
Конфигурация:
|
Примечание
Параметры конфигурации, перечисленные выше для каждого типа записей (переменная Ansible, переменная окружения и т. д.), расположены в порядке от низкого приоритета к высокому. Например, переменная, расположенная ниже в списке, переопределит переменную, расположенную выше. Типы записей также упорядочены по приоритету от низкого к высокому. Например, запись ansible.cfg (расположенная выше в списке) переопределяется переменной Ansible (расположенной ниже в списке).
Примечания
Примечание
- На этом этапе формирование инвентаря еще не завершено, поэтому автоматически заполняемые группы
allиungroupedбудут отражать только то, что в них явно добавили предыдущие источники инвентаря. - Во время построения инвентаря «магические переменные» времени выполнения недоступны. Например,
groupsиhostvarsеще не существуют.
Примеры
# Minimal example. 'HCLOUD_TOKEN' is exposed in environment.
plugin: hetzner.hcloud.hcloud
---
# Example with templated token, e.g. provided through extra vars.
plugin: hetzner.hcloud.hcloud
api_token: "{{ _vault_hetzner_cloud_token }}"
---
# Example with locations, types, status
plugin: hetzner.hcloud.hcloud
locations:
- nbg1
types:
- cpx22
status:
- running
---
# Group by a location with prefix e.g. "hcloud_location_nbg1"
# and image_os_flavor without prefix and separator e.g. "ubuntu"
# and status with prefix e.g. "server_status_running"
plugin: hetzner.hcloud.hcloud
keyed_groups:
- key: hcloud_location
prefix: hcloud_location
- key: image_os_flavor
separator: ""
- key: hcloud_status
prefix: server_status
---
# Use a custom hostname template.
plugin: hetzner.hcloud.hcloud
# Available variables are for example:
## Server
# hcloud_id: 42984895
# hcloud_name: "my-server"
# hcloud_labels:
# foo: "bar"
# hcloud_status: "running"
## Server Type
# hcloud_type: "cpx22"
# hcloud_server_type: "cpx22"
# hcloud_architecture: "x86"
## Image
# hcloud_image_id: 114690387
# hcloud_image_name: "debian-12"
# hcloud_image_os_flavor: "debian"
## Location
# hcloud_location: "hel1"
# # The hcloud_datacenter variable is deprecated and will be removed after 1 July 2026.
# # Please use the hcloud_location variable instead.
# # See https://docs.hetzner.cloud/changelog#2025-12-16-phasing-out-datacenters.
# hcloud_datacenter: "hel1-dc2"
## Network
# hcloud_ipv4: "65.109.140.95" # Value is optional!
# hcloud_ipv6: "2a01:4f9:c011:b83f::1" # Value is optional!
# hcloud_ipv6_network: 2a01:4f9:c011:b83f::" # Value is optional!
# hcloud_ipv6_network_mask: "64" # Value is optional!
# hcloud_private_ipv4: "10.0.0.3" # Value is optional!
# hcloud_private_networks:
# - id: 114690387
# name: "my-private-network"
# ip: "10.0.0.3"
#
hostname: "my-prefix-{{ hcloud_location }}-{{ hcloud_name }}-{{ hcloud_server_type }}"
Ссылки на коллекцию
© 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/hetzner/hcloud/hcloud_inventory.html