Spec-Zone.ru › Ansible

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
END_OF_DOCUMENT_MARKER

Параметры

Параметр

Комментарии

api_endpoint

строка

Конечная точка API для Hetzner Cloud.

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

Настройка:

  • Переменная среды: HCLOUD_ENDPOINT

api_token

псевдонимы: токен

строка / обязательный

Токен API для Hetzner Cloud.

Настройка:

  • Переменная среды: HCLOUD_TOKEN

cache

булево

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

Варианты:

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

Настройка:

  • Запись INI:

    [inventory]
    cache = false
    
  • Переменная среды: ANSIBLE_INVENTORY_CACHE

cache_connection

строка

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

Настройка:

  • Записи INI:

    [defaults]
    fact_caching_connection = VALUE
    
    [inventory]
    cache_connection = VALUE
    
  • Переменная среды: ANSIBLE_CACHE_PLUGIN_CONNECTION
  • Переменная среды: ANSIBLE_INVENTORY_CACHE_CONNECTION

cache_plugin

строка

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

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

Настройка:

  • Записи INI:

    [defaults]
    fact_caching = memory
    
    [inventory]
    cache_plugin = memory
    
  • Переменная среды: ANSIBLE_CACHE_PLUGIN
  • Переменная среды: ANSIBLE_INVENTORY_CACHE_PLUGIN

cache_prefix

строка

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

По умолчанию: "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

целое число

Срок действия кэша в секундах

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

Настройка:

  • Записи INI:

    [defaults]
    fact_caching_timeout = 3600
    
    [inventory]
    cache_timeout = 3600
    
  • Переменная среды: ANSIBLE_CACHE_PLUGIN_TIMEOUT
  • Переменная среды: ANSIBLE_INVENTORY_CACHE_TIMEOUT

compose

словарь

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

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

connect_with

строка

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

Варианты:

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

group

строка

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

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

groups

словарь

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

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

hostname

строка

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

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

Доступны переменные - переменные хоста Hetzner Cloud.

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

hostvars_prefix

строка

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

Префикс для имён переменных хоста, полученных от Hetzner Cloud.

hostvars_suffix

строка

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

Суффикс для имён переменных хоста, полученных от Hetzner Cloud.

END_OF_DOCUMENT_MARKER

images

список / элементы=строка

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

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

keyed_groups

список / элементы=словарь

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

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

default_value

строка

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

Значение по умолчанию, когда значение переменной хоста — пустая строка.

Этот параметр взаимоисключающий с keyed_groups[].trailing_separator.

key

строка

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

parent_group

строка

родительская группа для keyed group

prefix

строка

Имя keyed group будет начинаться с этого префикса

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

separator

строка

Разделитель, используемый для построения имени keyed group

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

trailing_separator

логическое

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

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

Этот параметр взаимоисключающий с keyed_groups[].default_value.

Варианты:

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

label_selector

строка

Заполнить инвентарь экземплярами с этим тегом.

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

leading_separator

логическое

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

Используется в сочетании с keyed_groups.

По умолчанию имя keyed group, не имеющее префикса или разделителя, начинается с подчеркивания.

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

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

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

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

Варианты:

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

locations

список / элементы=строка

Заполнить инвентарь экземплярами в этом месте.

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

network

строка

Заполнить инвентарь экземплярами, присоединенными к сети с этим именем или идентификатором.

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

plugin

строка / обязательно

Пометить как экземпляр инвентаря hetzner.hcloud.hcloud.

Варианты:

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

status

список / элементы=строка

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

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

strict

логическое

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

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

Варианты:

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

types

список / элементы=строка

Заполнить инвентарь экземплярами с этим типом.

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

use_extra_vars

логическое

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

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

Варианты:

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

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

  • Запись INI:

    [inventory_plugins]
    use_extra_vars = false
    
  • Переменная среды: ANSIBLE_INVENTORY_USE_EXTRA_VARS

Примеры

# 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 }}"

Авторы

  • Lukas Kaemmerling (@lkaemmerling)

Подсказка

Параметры конфигурации для каждого типа записи имеют порядок приоритета от низкого к высокому. Например, переменная, расположенная ниже в списке, переопределит переменную, расположенную выше.

Ссылки на сборку

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

© 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

Spec-Zone.ru

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