Spec-Zone.ru › Ansible

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.

По умолчанию: "https://api.hetzner.cloud/v1"

Конфигурация:

  • Переменная окружения: HCLOUD_ENDPOINT

api_token

псевдонимы: token

string / обязательный

Токен API Hetzner Cloud.

Конфигурация:

  • Переменная окружения: HCLOUD_TOKEN

cache

boolean

Включение или отключение кэширования исходных данных инвентаря; для работы требуется настроенный плагин кэширования.

Варианты:

  • false ← (по умолчанию)
  • true

Конфигурация:

  • Параметр INI:

    [inventory]
    cache = false
    
  • Переменная окружения: ANSIBLE_INVENTORY_CACHE

cache_connection

string

Данные подключения к кэшу или путь к нему; сведения см. в документации плагина кэширования.

Конфигурация:

  • Параметры INI:

    [defaults]
    fact_caching_connection = VALUE
    
    [inventory]
    cache_connection = VALUE
    
  • Переменная окружения: ANSIBLE_CACHE_PLUGIN_CONNECTION
  • Переменная окружения: ANSIBLE_INVENTORY_CACHE_CONNECTION

cache_plugin

string

Плагин кэширования для исходных данных инвентаря.

По умолчанию: "memory"

Конфигурация:

  • Параметры INI:

    [defaults]
    fact_caching = memory
    
    [inventory]
    cache_plugin = memory
    
  • Переменная окружения: ANSIBLE_CACHE_PLUGIN
  • Переменная окружения: ANSIBLE_INVENTORY_CACHE_PLUGIN

cache_prefix

string

Префикс для файлов/таблиц плагина кэширования.

По умолчанию: "ansible_inventory_"

Конфигурация:

  • Параметры INI:

    [defaults]
    fact_caching_prefix = ansible_inventory_
    
    [inventory]
    cache_prefix = ansible_inventory_
    
  • Переменная окружения: ANSIBLE_CACHE_PLUGIN_PREFIX
  • Переменная окружения: ANSIBLE_INVENTORY_CACHE_PLUGIN_PREFIX

cache_timeout

integer

Продолжительность кэширования в секундах.

По умолчанию: 3600

Конфигурация:

  • Параметры INI:

    [defaults]
    fact_caching_timeout = 3600
    
    [inventory]
    cache_timeout = 3600
    
  • Переменная окружения: ANSIBLE_CACHE_PLUGIN_TIMEOUT
  • Переменная окружения: ANSIBLE_INVENTORY_CACHE_TIMEOUT

compose

dictionary

Создавать переменные из выражений jinja2.

По умолчанию: {}

connect_with

string

Подключаться к серверу, используя значение из этого поля. Если указанное значение доступно, оно будет присвоено переменной ansible_host. Для более сложной настройки, например для переключения на частный адрес IPv4, если у сервера нет общедоступного адреса IPv4, можно использовать ключ верхнего уровня compose.

Варианты:

  • "public_ipv4" ← (по умолчанию)
  • "public_ipv6"
  • "hostname"
  • "ipv4_dns_ptr"
  • "private_ipv4"

group

string

Группа, в которую автоматически добавляются все серверы.

По умолчанию: "hcloud"

groups

dictionary

Добавлять узлы в группы на основе условий Jinja2.

По умолчанию: {}

hostname

string

добавлено в hetzner.hcloud 3.0.0

Шаблон имени узла экземпляра. Если он не указан, будет использоваться имя сервера Hetzner Cloud.

Доступны переменные узла Hetzner Cloud.

Имена доступных переменных предоставляются с модификаторами hostvars_prefix или hostvars_suffix.

hostvars_prefix

string

добавлено в hetzner.hcloud 2.5.0

Префикс имен переменных узлов, полученных из Hetzner Cloud.

По умолчанию: "hcloud_"

hostvars_suffix

string

добавлено в hetzner.hcloud 2.5.0

Суффикс имен переменных узлов, полученных из Hetzner Cloud.

images

list / элементы=string

Добавлять в инвентарь экземпляры с указанным именем образа; доступно только для системных образов.

По умолчанию: []

keyed_groups

list / элементы=dictionary

Добавлять узлы в группы на основе значений переменной.

По умолчанию: []

default_value

string

добавлено в ansible-core 2.12

Значение по умолчанию, если значение переменной узла равно None или представляет собой пустую строку.

Этот параметр нельзя использовать одновременно с keyed_groups[].trailing_separator.

key

string

Ключ входного словаря, используемый для создания групп.

parent_group

string

Родительская группа для группы, созданной по ключу.

prefix

string

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

По умолчанию: ""

separator

string

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

По умолчанию: "_"

trailing_separator

boolean

добавлено в ansible-core 2.12

Задайте для этого параметра значение false, чтобы не добавлять keyed_groups[].separator после переменной узла, если ее значение равно None или представляет собой пустую строку.

Этот параметр нельзя использовать одновременно с keyed_groups[].default_value.

Варианты:

  • false
  • true ← (по умолчанию)

label_selector

string

Добавлять в инвентарь экземпляры с этой меткой.

По умолчанию: ""

leading_separator

boolean

добавлено в ansible-core 2.11

Используется вместе с keyed_groups.

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

Это происходит потому, что по умолчанию используются префикс "" и разделитель "_".

Задайте для этого параметра значение false, чтобы опустить начальное подчеркивание (или другой разделитель), если префикс не указан.

Если имя группы формируется из сопоставления, разделитель все равно используется для объединения элементов.

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

Варианты:

  • false
  • true ← (по умолчанию)

locations

list / элементы=string

Добавлять в инвентарь экземпляры, расположенные в этом регионе.

По умолчанию: []

network

string

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

По умолчанию: ""

plugin

string / обязательный

Указывает, что это экземпляр инвентаря hetzner.hcloud.hcloud.

Варианты:

  • "hcloud"
  • "hetzner.hcloud.hcloud"

status

list / элементы=string

Добавлять в инвентарь экземпляры с этим статусом.

По умолчанию: []

strict

boolean

Если yes, считать некорректные записи фатальной ошибкой; в противном случае пропускать их и продолжать выполнение.

Поскольку в выражениях можно использовать факты, они могут быть доступны не всегда, поэтому по умолчанию такие ошибки игнорируются.

Варианты:

  • false ← (по умолчанию)
  • true

types

list / элементы=string

Добавлять в инвентарь экземпляры этого типа.

По умолчанию: []

use_extra_vars

boolean

добавлено в ansible-core 2.11

Объединять дополнительные переменные с доступными переменными для композиции (наивысший приоритет).

Варианты:

  • false ← (по умолчанию)
  • true

Конфигурация:

  • Параметр INI:

    [inventory_plugins]
    use_extra_vars = false
    
  • Переменная окружения: ANSIBLE_INVENTORY_USE_EXTRA_VARS

Примечание

Параметры конфигурации, перечисленные выше для каждого типа записей (переменная 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 }}"

Авторы

  • Lukas Kaemmerling (@lkaemmerling)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Справочник API Hetzner Cloud
  • Журнал изменений API Hetzner Cloud

© 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

Spec-Zone.ru

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