Утилита ansible-pull#
Описание#
ansible-pull извлекает playbooks из репозитория VCS (Version Control System - система контроля версий) и запускает их на целевом хосте. Преобразует используемую по умолчанию push-архитектуру Ansible Core в pull-архитектуру.
Важно
Ни один из инструментов CLI не предназначен для одновременной работы сам с собой, поэтому следует использовать внешний планировщик и/или блокировку, чтобы избежать конфликтующих операций.
Синтаксис утилиты:
ansible-pull <options> <playbook.yml ...>
Где:
<options>- опции;<playbook.yml>- файл playbook.
Настройка утилиты производится с помощью файлов, описанных в разделах:
«Файл inventory /etc/ansible/hosts» - файл inventory по умолчанию;
«Конфигурационные файлы ansible.cfg» - конфигурационный файл
/etc/ansible/ansible.cfg, используемый при наличии, и файл конфигурации пользователя~/.ansible.cfg, переопределяющий конфигурацию по умолчанию, если она присутствует.
Опции#
Опции утилиты представлены в таблице ниже.
Опция |
Описание |
|---|---|
|
Добавить ключ хоста для URL репозитория, если он еще не добавлен |
|
Указать файл пароля для повышения привилегий |
|
Не вносить никаких изменений; вместо этого пытаться предсказать некоторые изменения, которые могут произойти |
|
Удалить измененные файлы в рабочем репозитории |
|
Указать файл пароля для соединения |
|
При изменении (маленьких) файлов и шаблонов показать различия в этих файлах; отлично работает с |
|
Очистить кеш фактов для каждого хоста в инвентаре |
|
Выполнить полное клонирование (весь репозиторий вместе со всеми изменениями - историей коммитов, ветками, тегами и другими данными) вместо поверхностного (последний коммит) |
|
Вывести список соответствующих хостов; не выполнять никаких других действий |
|
Использовать указанный файл для аутентификации соединения |
|
Удалить проверку после выполнения playbook |
|
Указать дополнительные аргументы для передачи только в |
|
Указать дополнительные аргументы для передачи только в |
|
Выполнить только те сценарии и задачи playbooks, теги которых не соответствуют указанным значениям. Этот аргумент может быть указан несколько раз |
|
Указать общие аргументы для передачи в |
|
Указать дополнительные аргументы для передачи только в |
|
Указать подмодулям отслеживать последние изменения. Это эквивалентно указанию флага |
|
Указать идентификатор хранилища для использования. Этот аргумент может быть указан несколько раз |
|
Указать файл пароля хранилища |
|
Проверить подпись GPG извлеченного коммита; если проверка не проходит, прерывать выполнение playbook. Требует, чтобы соответствующий модуль VCS поддерживал такую операцию |
|
Показать номер версии утилиты, расположение конфигурационного файла, настроенный путь поиска модулей, расположение модуля, расположение исполняемого файла и выходить |
|
Указать ветку/тег/коммит для проверки. По умолчанию соответствует поведению модуля репозитория |
|
Запросить пароль хранилища |
|
Запросить пароль для повышения привилегий |
|
Добить путь(-и), разделенные двоеточием, к библиотеке модулей (по умолчанию |
|
Переопределить тайм-аут соединения в секундах (по умолчанию зависит от соединения) |
|
Задать URL репозитория playbook |
|
Указать тип соединения (по умолчанию |
|
Задать путь к каталогу, в котором Ansible Core будет проверять репозиторий |
|
Установить дополнительные переменные в формате «ключ=значение» или YAML/JSON; если имя файла, добавлять |
|
Выполнить playbook, даже если репозиторий не удалось обновить |
|
Показать справочное сообщение и выйти |
|
Указать путь к inventory или список хостов, разделенных запятыми. Этот аргумент может быть указан несколько раз |
|
Запросить пароль для соединения |
|
Дополнительно ограничить выбранные хосты до дополнительного шаблона |
|
Указать имя модуля репозитория, который Ansible Core будет использовать для проверки. Возможные значения: |
|
Выполнить playbook только в том случае, если репозиторий был обновлен |
|
Находиться в «спящем» режиме в течение случайного интервала времени (между |
|
Выполнить только сценарии и задачи playbooks, помеченные указанным тегом. Этот аргумент может быть указан несколько раз |
|
Подключиться как указанный пользователь (значение по умолчанию не указано) |
|
Вывести больше отладочных сообщений. Добавление нескольких |
Аргументы#
playbook.yml - имя одного из файлов формата YAML, который будет запускаться как playbook Ansible Core. Это может быть относительный путь в checkout. По умолчанию Ansible Core будет искать playbook на основе полного доменного имени хоста, имени хоста и, наконец, playbook с именем local.yml.
Переменные окружения#
Переменные окружения, влияющие на работу утилиты, представлены в таблице ниже.
Переменная |
Описание |
|---|---|
|
Переопределить файл inventory по умолчанию |
|
Переопределить путь к библиотеке модуля по умолчанию |
|
Переопределить конфигурационный файл по умолчанию |
Другие варианты доступны в качестве параметров ansible.cfg (подробнее - в разделе «Конфигурационные файлы ansible.cfg»).
Пример использования#
Выполните локально playbook playbook.yml из удаленного репозитория с URL-адресом <URL-address>, склонировав его в <path_to_local_dir>:
ansible-pull -U <URL-address> -d <path_to_local_dir> -i localhost playbook.yml
Дополнительная информация#
Дополнительную информацию можно получить, выполнив команду:
ansible-pull --help