ansible-pull

ansible-pull#

Утилита ansible-pull используется для получения наборов сценариев Ansible из репозитория VCS и их выполнения на управляемом узле.

В минимальном формате запуск утилиты ansible-pull выглядит следующим образом:

ansible-pull [ARGUMENTS] -U <REPOSITORY> [PLAYBOOK]

где:

  • ARGUMENTS – аргументы ansible-pull.

  • -U <REPOSITORY> – URL Git-репозитория с наборами сценариев.

  • PLAYBOOK – название файла набора сценариев.

Аргументы утилиты:

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

Отображение разницы при изменении файлов или шаблонов.

--full#

Полное клонирование репозитория.

--list-hosts#

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

--private-key <PRIVATE_KEY_FILE>, --key-file <PRIVATE_KEY_FILE>#

Путь к файлу приватного ключа SSH.

--purge#

Удаление репозитория после выполнения сценария.

--scp-extra-args <SCP_EXTRA_ARGS>#

Дополнительные аргументы для утилиты scp.

--sftp-extra-args <SFTP_EXTRA_ARGS>#

Дополнительные аргументы для утилиты sftp.

--ssh-extra-args <SSH_EXTRA_ARGS>#

Дополнительные аргументы для утилиты ssh.

--ssh-common-args <SSH_COMMON_ARGS>#

Дополнительные аргументы для утилит ssh, scp и sftp.

--skip-tags#

Пропуск выполнения задач и сценариев с указанными тегами.

Может быть указан несколько раз.

--track-subs#

Включение отслеживания изменений в модулях Git.

Действие, аналогичное git submodule update --remote.

--vault-id#

Идентификатор Ansible Vault.

Может быть указан несколько раз.

--vault-password-file, --vault-pass-file#

Путь к файлу с ключом для расшифровки секретов, хранящихся в Ansible Vault.

--verify-commit#

Проверка GPG-подписи у загруженного коммита и прекращение выполнения при неудачной проверке.

--version#

Вывод версии Ansible, пути к файлу настроек и пути поиска модулей.

-C <CHECKOUT>, --checkout <CHECKOUT>#

Переключение на указанную ветку, тег или коммит.

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

-J, --ask-vault-password, --ask-vault-pass#

Включение запроса пароля хранилища.

-K, --ask-become-pass#

Включение запроса пароля для повышения привилегий.

-M, --module-path#

Путь к каталогу с модулями Ansible.

Может быть указан несколько раз.

Значение по умолчанию: ~/.ansible/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>#

Путь к каталогу для клонирования репозитория.

-e, --extra-vars#

Передача дополнительных переменных в формате key=value, YAML или JSON.

Может быть указан несколько раз.

-f, --force#

Выполнение сценария даже при невозможности обновления репозитория.

-h, --help#

Вывод справки.

-i, --inventory#

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

Может быть указан несколько раз.

-k, --ask-pass#

Включение запроса пароля для повышения привилегий.

-l <SUBSET>, --limit <SUBSET>#

Ограничение списка узлов, на которых выполняется команда.

-m <MODULE_NAME>, --module-name <MODULE_NAME>#

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

Возможные значения:

  • git;

  • subversion;

  • hg;

  • bzr.

Значение по умолчанию: git.

-o, --only-if-changed#

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

-s <SLEEP>, --sleep <SLEEP>#

Задержка перед началом выполнения (случайное число от 0 до SLEEP секунд).

-t, --tags#

Выполнение задач только с указанными тегами.

Может быть указан несколько раз.

-u <REMOTE_USER>, --user <REMOTE_USER>#

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

Значение по умолчанию: None.

-v, --verbose#

Включение подробного вывода, показывающего больше информации о выполнении команды.

Увеличение уровня детализации возможно при добавлении нескольких -v. Утилита может выводить до -vvvvvv. Рекомендуемый уровень для общей отладки – -vvv, для отладки соединений – -vvvv.

Примеры использования:

Запуск ansible-pull с указанием набора сценариев#
ansible-pull -U https://github.com/myorg/myrepo.git site.yml
Клонирование репозитория в указанный каталог#
ansible-pull -U https://github.com/myorg/myrepo.git -d /opt/ansible
Запуск ansible-pull с указанием пользователя для удаленного подключения#
ansible-pull -U https://github.com/myorg/myrepo.git -u ansible
Использование Ansible Vault для расшифровки секретов#
ansible-pull -U https://github.com/myorg/myrepo.git --vault-password-file ~/.vault_pass
Выполнение задач только с указанным тегом#
ansible-pull -U https://github.com/myorg/myrepo.git -t webserver
Пропуск задач с указанным тегом#
ansible-pull -U https://github.com/myorg/myrepo.git --skip-tags database