Spec-Zone.ru › Ansible

community.docker.docker_machine: инвентаризация – источник инвентаризации Docker Machine

Примечание

Этот плагин инвентаризации входит в коллекцию community.docker (версия 5.2.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.docker. Для использования этого плагина инвентаризации требуются дополнительные компоненты; подробную информацию см. в разделе Требования.

Чтобы использовать его в плейбуке, укажите: community.docker.docker_machine.

  • Краткое описание
  • Требования
  • Параметры
  • Примечания
  • Примеры

Краткое описание

  • Получает узлы инвентаризации из Docker Machine.
  • Использует файл конфигурации YAML с расширением docker_machine.(yml|yaml).
  • Плагин задаёт стандартные переменные узла ansible_host, ansible_port, ansible_user и ansible_ssh_private_key.
  • Плагин сохраняет переменные вывода команды ‘env’ Docker Machine в переменные узла с префиксом dm_.

Требования

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

  • Docker Machine

Параметры

Параметр

Комментарии

compose

словарь

Создаёт переменные на основе выражений Jinja2.

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

daemon_env

строка

Определяет, следует ли получать переменные среды подключения к демону Docker и как вести себя, если получить их не удаётся.

При значениях require и require-silently переменные будут получены, а узлы, для которых это не удалось, будут пропущены. Если выбрано require, для каждого пропущенного узла будет выдано предупреждение.

При значениях optional и optional-silently переменные будут получены, но узлы, для которых это не удалось, пропущены не будут. Если выбрано optional, для узлов, для которых переменные получить не удалось, будет выдано предупреждение.

При значении skip попытки получить переменные среды подключения к демону Docker не выполняются.

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

Варианты:

  • "require" ← (по умолчанию)
  • "require-silently"
  • "optional"
  • "optional-silently"
  • "skip"

filters

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

добавлено в community.docker 3.5.0

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

Фильтры обрабатываются последовательно, пока не будет найден первый фильтр, соответствующий filters[].exclude или filters[].include. Если совпадает filters[].exclude, узел исключается; если совпадает filters[].include, узел включается. Если ни один фильтр не совпал, узел включается.

exclude

строка

Условие Jinja2. Если оно выполняется для узла, этот узел исключается.

Можно указать только один из параметров filters[].exclude и filters[].include.

include

строка

Условие Jinja2. Если оно выполняется для узла, этот узел включается.

Можно указать только один из параметров filters[].exclude и filters[].include.

groups

словарь

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

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

keyed_groups

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

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

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

default_value

строка

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

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

Этот параметр несовместим с keyed_groups[].trailing_separator.

key

строка

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

parent_group

строка

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

prefix

строка

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

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

separator

строка

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

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

trailing_separator

логическое значение

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

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

Этот параметр несовместим с keyed_groups[].default_value.

Варианты:

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

leading_separator

логическое значение

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

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

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

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

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

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

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

Варианты:

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

plugin

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

Маркер, подтверждающий, что этот файл является файлом источника для плагина docker_machine.

Варианты:

  • "docker_machine"
  • "community.docker.docker_machine"

running_required

логическое значение

Если true, узлы, которые, согласно Docker Machine, находятся в состоянии, отличном от running, будут пропущены.

Варианты:

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

strict

логическое значение

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

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

Варианты:

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

use_extra_vars

логическое значение

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

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

Варианты:

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

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

  • Запись INI:

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

verbose_output

логическое значение

Если true, все доступные метаданные узлов (например, Image, Region, Size) включаются в JSON-объект с именем docker_machine_node_attributes.

Варианты:

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

Примечание

Перечисленные выше записи конфигурации для каждого типа записи (переменная Ansible, переменная среды и т. д.) расположены в порядке возрастания приоритета. Например, переменная, расположенная ниже в списке, переопределяет переменную, расположенную выше. Типы записей также расположены в порядке возрастания приоритета. Например, запись в ansible.cfg (расположенная выше в списке) переопределяется переменной Ansible (расположенной ниже в списке).

Примечания

Примечание

  • Файл конфигурации должен быть файлом YAML, имя которого заканчивается на docker_machine.yml или docker_machine.yaml. Файлы с другими именами не принимаются.
  • На этом этапе инвентаризация ещё не завершена, поэтому автоматически заполненные группы all и ungrouped будут отражать только то, что в них явно добавили предыдущие источники инвентаризации.
  • Средовые «магические переменные» недоступны во время построения инвентаризации. Например, groups и hostvars ещё не существуют.

Примеры

---
# Minimal example
plugin: community.docker.docker_machine

---
# Example using constructed features to create a group per Docker Machine driver
# (https://docs.docker.com/machine/drivers/), for example:
#   $ docker-machine create --driver digitalocean ... mymachine
#   $ ansible-inventory -i ./path/to/docker-machine.yml --host=mymachine
#   {
#     ...
#     "digitalocean": {
#       "hosts": [
#           "mymachine"
#       ]
#     ...
#   }
plugin: community.docker.docker_machine
strict: false
keyed_groups:
  - separator: ''
    key: docker_machine_node_attributes.DriverName

---
# Example grouping hosts by Digital Machine tag
plugin: community.docker.docker_machine
strict: false
keyed_groups:
  - prefix: tag
    key: 'dm_tags'

---
# Example using compose to override the default SSH behaviour of asking the user to accept the remote host key
plugin: community.docker.docker_machine
compose:
  ansible_ssh_common_args: '"-o StrictHostKeyChecking=accept-new"'

Авторы

  • Ximon Eighteen (@ximon18)

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

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Задать вопрос (Docker)
  • Задать вопрос (Docker Compose)
  • Задать вопрос (Docker Swarm)
  • Сообщить об ошибке
  • Предложить новую функцию
  • Связь

© 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/docker/docker_machine_inventory.html

Spec-Zone.ru

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