ansible-pull
получает плейбуки из репозитория VCS и выполняет их на целевом узле
Краткое описание
usage: ansible-pull [-h] [--version] [-v] [--private-key PRIVATE_KEY_FILE]
[-u REMOTE_USER] [-c CONNECTION] [-T TIMEOUT]
[--ssh-common-args SSH_COMMON_ARGS]
[--sftp-extra-args SFTP_EXTRA_ARGS]
[--scp-extra-args SCP_EXTRA_ARGS]
[--ssh-extra-args SSH_EXTRA_ARGS] [-k |
--connection-password-file CONNECTION_PASSWORD_FILE]
[--vault-id VAULT_IDS] [-J |
--vault-password-file VAULT_PASSWORD_FILES]
[-e EXTRA_VARS] [-t TAGS] [--skip-tags SKIP_TAGS]
[-i INVENTORY] [--list-hosts] [-l SUBSET] [--flush-cache]
[-M MODULE_PATH] [-K |
--become-password-file BECOME_PASSWORD_FILE] [--purge]
[-o] [-s SLEEP] [-f] [-d DEST] [-U URL] [--full]
[-C CHECKOUT] [--accept-host-key] [-m MODULE_NAME]
[--verify-commit] [--clean] [--track-subs] [--check]
[--diff]
[playbook.yml ...]
Описание
Используется для получения удалённой копии Ansible на каждом управляемом узле; на каждом узле настраивается запуск через cron и обновление исходного кода плейбуков из репозитория. Это преобразует стандартную архитектуру Ansible типа push в архитектуру типа pull, обладающую практически неограниченными возможностями масштабирования.
Инструменты CLI не предназначены для одновременного запуска нескольких своих экземпляров. Используйте внешний планировщик и/или блокировки, чтобы избежать конфликтующих операций.
Плейбук настройки можно изменить, чтобы задать частоту запуска cron, расположение журналов и параметры ansible-pull. Это полезно как для масштабирования до очень большого числа узлов, так и для периодического устранения проблем. Использование модуля ‘fetch’ для получения журналов запусков ansible-pull — отличный способ собирать и анализировать удалённые журналы ansible-pull.
Общие параметры
-
--accept-host-key -
добавляет ключ хоста для URL репозитория, если он ещё не добавлен
-
--become-password-file <BECOME_PASSWORD_FILE>, --become-pass-file <BECOME_PASSWORD_FILE> -
Файл с паролем для повышения привилегий
-
--check -
не вносить изменения, а попытаться спрогнозировать возможные изменения
-
--clean -
изменённые файлы в рабочем репозитории будут удалены
-
--connection-password-file <CONNECTION_PASSWORD_FILE>, --conn-pass-file <CONNECTION_PASSWORD_FILE> -
Файл с паролем подключения
-
--diff -
при изменении небольших файлов и шаблонов показывать различия в этих файлах; отлично работает с параметром –check
-
--flush-cache -
очистить кэш фактов для каждого узла в инвентаре
-
--full -
Выполнить полное клонирование, а не поверхностное.
-
--list-hosts -
вывести список подходящих узлов и больше ничего не выполнять
-
--private-key <PRIVATE_KEY_FILE>, --key-file <PRIVATE_KEY_FILE> -
использовать этот файл для аутентификации подключения
-
--purge -
удалить рабочую копию после выполнения плейбука
-
--scp-extra-args <SCP_EXTRA_ARGS> -
указать дополнительные аргументы только для scp (например, -l)
-
--sftp-extra-args <SFTP_EXTRA_ARGS> -
указать дополнительные аргументы только для sftp (например, -f, -l)
-
--skip-tags -
выполнять только те плейбуки и задачи, теги которых не совпадают с указанными значениями. Этот аргумент можно указывать несколько раз.
-
--ssh-common-args <SSH_COMMON_ARGS> -
указать общие аргументы для sftp/scp/ssh (например, ProxyCommand)
-
--ssh-extra-args <SSH_EXTRA_ARGS> -
указать дополнительные аргументы только для ssh (например, -R)
-
--track-subs -
подмодули будут отслеживать последние изменения. Это равносильно указанию флага –remote для git submodule update
-
--vault-id -
идентификатор vault, который следует использовать. Этот аргумент можно указывать несколько раз.
-
--vault-password-file, --vault-pass-file -
файл с паролем vault
-
--verify-commit -
проверить подпись GPG извлечённого коммита; если проверка не пройдёт, прервать выполнение плейбука. Для этого соответствующий модуль VCS должен поддерживать такую операцию
-
--version -
показать номер версии программы, расположение файла конфигурации, настроенный путь поиска модулей, расположение модуля и исполняемого файла, затем завершить работу
-
-C <CHECKOUT>, --checkout <CHECKOUT> -
ветка/тег/коммит для извлечения. По умолчанию используется поведение модуля репозитория.
-
-J, --ask-vault-password, --ask-vault-pass -
запросить пароль vault
-
-K, --ask-become-pass -
запросить пароль для повышения привилегий
-
-M, --module-path -
добавить в начало пути к библиотеке модулей пути, разделённые двоеточиями (по умолчанию={{ ANSIBLE_HOME ~ “/plugins/modules:/usr/share/ansible/plugins/modules” }}). Этот аргумент можно указывать несколько раз.
-
-T <TIMEOUT>, --timeout <TIMEOUT> -
переопределить время ожидания подключения в секундах (по умолчанию зависит от типа подключения)
-
-U <URL>, --url <URL> -
URL репозитория плейбуков
-
-c <CONNECTION>, --connection <CONNECTION> -
используемый тип подключения (по умолчанию=ssh)
-
-d <DEST>, --directory <DEST> -
путь к каталогу, в который Ansible извлечёт репозиторий.
-
-e, --extra-vars -
задать дополнительные переменные в формате ключ=значение или YAML/JSON; если указан файл, добавьте перед его именем символ @. Этот аргумент можно указывать несколько раз.
-
-f, --force -
выполнить плейбук, даже если не удалось обновить репозиторий
-
-h, --help -
показать это справочное сообщение и завершить работу
-
-i, --inventory, --inventory-file -
указать путь к файлу инвентаря узлов или список узлов, разделённых запятыми. Этот аргумент можно указывать несколько раз.
-
-k, --ask-pass -
запросить пароль подключения
-
-l <SUBSET>, --limit <SUBSET> -
дополнительно ограничить выбор узлов с помощью шаблона
-
-m <MODULE_NAME>, --module-name <MODULE_NAME> -
имя модуля репозитория, который Ansible будет использовать для извлечения репозитория. Возможные значения: (‘git’, ‘subversion’, ‘hg’, ‘bzr’). По умолчанию используется git.
-
-o, --only-if-changed -
выполнять плейбук, только если репозиторий был обновлён
-
-s <SLEEP>, --sleep <SLEEP> -
перед запуском подождать случайный интервал (от 0 до n секунд). Это удобный способ распределить во времени запросы git
-
-t, --tags -
выполнять только плейбуки и задачи с указанными тегами. Этот аргумент можно указывать несколько раз.
-
-u <REMOTE_USER>, --user <REMOTE_USER> -
подключаться от имени этого пользователя (по умолчанию=None)
-
-v, --verbose -
Заставляет Ansible выводить больше отладочных сообщений. Чем больше параметров -v указано, тем подробнее вывод; встроенные плагины поддерживают уровень до -vvvvvv. Для начала рекомендуется использовать -vvv; для отладки подключений может потребоваться -vvvv. Этот аргумент можно указывать несколько раз.
АРГУМЕНТЫ
-
playbook.yml -
Имя одного из файлов в формате YAML, который будет запущен как плейбук Ansible. Это может быть относительный путь внутри извлечённого репозитория. По умолчанию Ansible ищет плейбук по полному доменному имени узла, затем по имени узла и, наконец, файл плейбука с именем local.yml.
Окружение
Можно указать следующие переменные окружения.
ANSIBLE_INVENTORY – Переопределяет используемый по умолчанию файл инвентаря Ansible
ANSIBLE_LIBRARY – Переопределяет используемый по умолчанию путь к библиотеке модулей Ansible
ANSIBLE_CONFIG – Переопределяет используемый по умолчанию файл конфигурации Ansible
Для большинства параметров ansible.cfg доступно множество других переменных.
Файлы
/etc/ansible/hosts – Файл инвентаря по умолчанию
/etc/ansible/ansible.cfg – Файл конфигурации, используется, если существует
~/.ansible.cfg – Файл конфигурации пользователя; если существует, переопределяет конфигурацию по умолчанию
Лицензия
Ansible распространяется на условиях лицензии GPLv3+.
См. также
ansible(1), ansible-config(1), ansible-console(1), ansible-doc(1), ansible-galaxy(1), ansible-inventory(1), ansible-playbook(1), ansible-vault(1)
© 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/cli/ansible-pull.html