Инвентарь community.general.linode – плагин динамического инвентаря Ansible для Linode
Примечание
Этот плагин инвентаря входит в коллекцию community.general (версия 12.6.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.general. Для использования этого плагина инвентаря необходимы дополнительные компоненты; подробности см. в разделе Требования.
Чтобы использовать его в плейбуке, укажите: community.general.linode.
Краткое описание
- Получает данные инвентаря из API Linode v4.
- Использует файл конфигурации YAML с именем, заканчивающимся на linode.(yml|yaml).
- По умолчанию в качестве имен узлов используются метки Linode.
- Группы инвентаря по умолчанию создаются на основе групп (устаревших в Linode), а не тегов.
Требования
Следующие требования необходимы на локальном управляющем узле, который выполняет этот инвентарь.
- linode_api4 >= 2.0.0
Параметры
Параметр | Комментарии |
|---|---|
access_token string / обязательный | Персональный токен доступа к учетной записи Linode. Конфигурация:
|
cache boolean добавлено в community.general 4.5.0 | Включает или отключает кэширование исходных данных инвентаря; для работы требуется настроенный плагин кэширования. Варианты:
Конфигурация:
|
cache_connection string добавлено в community.general 4.5.0 | Данные подключения кэша или путь к нему; подробности см. в документации плагина кэширования. Конфигурация:
|
cache_plugin string добавлено в community.general 4.5.0 | Плагин кэширования, используемый для исходных данных инвентаря. По умолчанию: Конфигурация:
|
cache_prefix string добавлено в community.general 4.5.0 | Префикс для файлов/таблиц плагина кэширования. По умолчанию: Конфигурация:
|
cache_timeout integer добавлено в community.general 4.5.0 | Длительность хранения в кэше, в секундах. По умолчанию: Конфигурация:
|
compose dictionary добавлено в community.general 2.0.0 | Создает переменные из выражений jinja2. По умолчанию: |
groups dictionary добавлено в community.general 2.0.0 | Добавляет узлы в группу на основе условий Jinja2. По умолчанию: |
ip_style string добавлено в community.general 3.6.0 | Заполняет hostvars всей информацией, доступной через APIv4 Linode. Варианты:
|
keyed_groups list / элементы=dictionary добавлено в community.general 2.0.0 | Добавляет узлы в группу на основе значений переменной. По умолчанию: |
|
default_value string добавлено в ansible-core 2.12 |
Значение по умолчанию, если значение переменной узла равно Этот параметр несовместим с |
|
key string |
Ключ входного словаря, используемый для создания групп. |
|
parent_group string |
Родительская группа для группы, созданной по ключу. |
|
prefix string |
Имя группы, созданной по ключу, будет начинаться с этого префикса. По умолчанию: |
|
separator string |
Разделитель, используемый для формирования имени группы, созданной по ключу. По умолчанию: |
|
trailing_separator boolean добавлено в ansible-core 2.12 |
Установите для этого параметра значение Этот параметр несовместим с Варианты:
|
leading_separator boolean добавлено в ansible-core 2.11 | Используйте вместе с По умолчанию имя группы, созданной по ключу, если для нее не указан префикс или разделитель, начинается с символа подчеркивания. Это связано с тем, что префикс по умолчанию — Установите для этого параметра значение Если имя группы создается на основе сопоставления, разделитель по-прежнему используется для объединения элементов. Чтобы вообще не использовать разделитель в имени группы, задайте для группы, созданной по ключу, пустую строку в качестве разделителя. Варианты:
|
plugin string / обязательный | Указывает, что это экземпляр плагина «linode». Варианты:
|
regions list / элементы=string | Заполняет инвентарь экземплярами из этого региона. По умолчанию: |
strict boolean добавлено в community.general 2.0.0 | Если Поскольку в выражениях можно использовать факты, они могут быть доступны не всегда; по умолчанию такие ошибки игнорируются. Варианты:
|
tags list / элементы=string добавлено в community.general 2.0.0 | Заполняет инвентарь только экземплярами, у которых есть хотя бы один из перечисленных здесь тегов. По умолчанию: |
types list / элементы=string | Заполняет инвентарь экземплярами этого типа. По умолчанию: |
use_extra_vars boolean добавлено в ansible-core 2.11 | Объединяет дополнительные переменные с доступными переменными для композиции (наивысший приоритет). Варианты:
Конфигурация:
|
Примечание
Перечисленные выше параметры конфигурации каждого типа (переменная Ansible, переменная окружения и т. д.) упорядочены от низкого приоритета к высокому. Например, переменная, находящаяся ниже в списке, переопределяет переменную, расположенную выше. Типы параметров также упорядочены по возрастанию приоритета. Например, запись ansible.cfg (расположенная выше в списке) переопределяется переменной Ansible (расположенной ниже в списке).
Примечания
Примечание
- На этом этапе формирование инвентаря еще не завершено, поэтому автоматически заполненные группы
allиungroupedбудут отражать только то, что предыдущие источники инвентаря явно добавили в них. - Во время построения инвентаря «магические переменные» времени выполнения недоступны. Например,
groupsиhostvarsеще не существуют.
Примеры
---
# Minimal example. `LINODE_ACCESS_TOKEN` is exposed in environment.
plugin: community.general.linode
---
# You can use Jinja to template the access token.
plugin: community.general.linode
access_token: "{{ lookup('ini', 'token', section='your_username', file='~/.config/linode-cli') }}"
# For older Ansible versions, you need to write this as:
# access_token: "{{ lookup('ini', 'token section=your_username file=~/.config/linode-cli') }}"
---
# Example with regions, types, groups and access token
plugin: community.general.linode
access_token: foobar
regions:
- eu-west
types:
- g5-standard-2
---
# Example with keyed_groups, groups, and compose
plugin: community.general.linode
access_token: foobar
keyed_groups:
- key: tags
separator: ''
- key: region
prefix: region
groups:
webservers: "'web' in (tags|list)"
mailservers: "'mail' in (tags|list)"
compose:
# By default, Ansible tries to connect to the label of the instance.
# Since that might not be a valid name to connect to, you can
# replace it with the first IPv4 address of the linode as follows:
ansible_ssh_host: ipv4[0]
ansible_port: 2222
---
# Example where control traffic limited to internal network
plugin: community.general.linode
access_token: foobar
ip_style: api
compose:
ansible_host: "ipv4 | community.general.json_query('[?public==`false`].address') | first"
Ссылки на коллекцию
© 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/community/general/linode_inventory.html