hetzner.hcloud.hcloud инвентаризация – Ansible плагин динамической инвентаризации для Hetzner Cloud.
Примечание
Этот плагин инвентаризации входит в состав коллекции hetzner.hcloud (версия 3.1.1).
У вас, возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install hetzner.hcloud. Для использования этого плагина инвентаризации необходимы дополнительные требования, см. Требования для получения подробностей.
Для использования в playbook, укажите: hetzner.hcloud.hcloud.
Обзор
- Считывает инвентаризацию с API Hetzner Cloud.
- Использует файл конфигурации YAML, который заканчивается
hcloud.ymlилиhcloud.yaml.
Требования
Ниже перечислены требования, необходимые на локальном узле контроллера, который выполняет эту инвентаризацию.
- python-dateutil >= 2.7.5
- requests >=2.20
Параметры
Параметр | Комментарии |
|---|---|
api_endpoint строка | Конечная точка API для Hetzner Cloud. По умолчанию: Настройка:
|
api_token псевдонимы: токен строка / обязательный | |
cache булево | Включение/выключение кэширования исходных данных инвентаризации, требуется настройка плагина кэша для работы. Варианты:
Настройка:
|
cache_connection строка | Данные или путь подключения к кэшу, см. документацию к плагину кэша для подробностей. Настройка:
|
cache_plugin строка | Плагин кэша для использования исходных данных инвентаризации. По умолчанию: Настройка:
|
cache_prefix строка | Префикс для файлов/таблиц плагина кэша По умолчанию: Настройка:
|
cache_timeout целое число | Срок действия кэша в секундах По умолчанию: Настройка:
|
compose словарь | Создать переменные из выражений jinja2. По умолчанию: |
connect_with строка | Подключиться к серверу используя значение из этого поля. Это устанавливает переменную Варианты:
|
group строка | Группа, к которой все серверы автоматически добавляются. По умолчанию: |
groups словарь | Добавить хосты в группы на основе условных выражений Jinja2. По умолчанию: |
hostname строка добавлено в hetzner.hcloud 3.0.0 | Шаблон для имени хоста экземпляров, если не указан, используется имя сервера Hetzner Cloud. Доступны переменные - переменные хоста Hetzner Cloud. Имена доступных переменных предоставляются с помощью модификаций |
hostvars_prefix строка добавлено в hetzner.hcloud 2.5.0 | Префикс для имён переменных хоста, полученных от Hetzner Cloud. |
hostvars_suffix строка добавлено в hetzner.hcloud 2.5.0 | Суффикс для имён переменных хоста, полученных от Hetzner Cloud. |
images список / элементы=строка | Заполнить инвентарь экземплярами с указанным именем образа, доступно только для системных образов. По умолчанию: |
keyed_groups список / элементы=словарь | Добавить хосты в группу на основе значений переменной. По умолчанию: |
|
default_value строка добавлено в ansible-core 2.12 |
Значение по умолчанию, когда значение переменной хоста — пустая строка. Этот параметр взаимоисключающий с |
|
key строка |
Ключ из входного словаря, используемый для создания групп |
|
parent_group строка |
родительская группа для keyed group |
|
prefix строка |
Имя keyed group будет начинаться с этого префикса По умолчанию: |
|
separator строка |
Разделитель, используемый для построения имени keyed group По умолчанию: |
|
trailing_separator логическое добавлено в ansible-core 2.12 |
Установите этот параметр в Этот параметр взаимоисключающий с Варианты:
|
label_selector строка | Заполнить инвентарь экземплярами с этим тегом. По умолчанию: |
leading_separator логическое добавлено в ansible-core 2.11 | Используется в сочетании с keyed_groups. По умолчанию имя keyed group, не имеющее префикса или разделителя, начинается с подчеркивания. Это происходит потому, что префикс по умолчанию — «» и разделитель по умолчанию — «_». Установите этот параметр в False, чтобы опустить ведущее подчеркивание (или другой разделитель), если префикс не указан. Если имя группы получено из отображения, разделитель все равно используется для конкатенации элементов. Чтобы вообще не использовать разделитель в имени группы, установите разделитель keyed group в пустую строку. Варианты:
|
locations список / элементы=строка | Заполнить инвентарь экземплярами в этом месте. По умолчанию: |
network строка | Заполнить инвентарь экземплярами, присоединенными к сети с этим именем или идентификатором. По умолчанию: |
plugin строка / обязательно | |
status список / элементы=строка | Заполнить инвентарь экземплярами с этим статусом. По умолчанию: |
strict логическое | Если Поскольку в выражениях можно использовать факты, они могут быть недоступны, и мы игнорируем эти ошибки по умолчанию. Варианты:
|
types список / элементы=строка | Заполнить инвентарь экземплярами с этим типом. По умолчанию: |
use_extra_vars логическое добавлено в ansible-core 2.11 | Объединить дополнительные переменные в доступные переменные для составления (высший приоритет). Варианты:
Конфигурация:
|
Примеры
# 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:
- cx11
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: location
prefix: hcloud_location
- key: image_os_flavor
separator: ""
- key: status
prefix: server_status
---
# Use a custom hostname template.
plugin: hetzner.hcloud.hcloud
# Available variables are for example:
## Server
# id: 42984895
# name: "my-server"
# labels:
# foo: "bar"
# status: "running"
## Server Type
# type: "cx11"
# server_type: "cx11"
# architecture: "x86"
## Image
# image_id: 114690387
# image_name: "debian-12"
# image_os_flavor: "debian"
## Datacenter
# datacenter: "hel1-dc2"
# location: "hel1"
## Network
# ipv4: "65.109.140.95" # Value is optional!
# ipv6: "2a01:4f9:c011:b83f::1" # Value is optional!
# ipv6_network: 2a01:4f9:c011:b83f::" # Value is optional!
# ipv6_network_mask: "64" # Value is optional!
# private_ipv4: "10.0.0.3" # Value is optional!
# private_networks:
# - id: 114690387
# name: "my-private-network"
# ip: "10.0.0.3"
#
hostname: "my-prefix-{{ datacenter }}-{{ name }}-{{ server_type }}"
Ссылки на сборку
© 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/hetzner/hcloud/hcloud_inventory.html