ansible-pull
вытягивает playbook из репозитория VCS и выполняет их для локального хоста
Синтаксис
usage: ansible-pull [-h] [--version] [-v] [-k]
[--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] [--vault-id VAULT_IDS]
[--ask-vault-pass | --vault-password-file VAULT_PASSWORD_FILES]
[-e EXTRA_VARS] [-t TAGS] [--skip-tags SKIP_TAGS]
[-i INVENTORY] [--list-hosts] [-l SUBSET] [-M MODULE_PATH]
[-K] [--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 [playbook.yml ...]]
Описание
используется для загрузки удаленной копии ansible на каждый управляемый узел, каждый из которых настроен на выполнение через cron и обновление источника playbook через репозиторий. Это инвертирует стандартную архитектуру push ansible в архитектуру pull, которая имеет практически неограниченные возможности масштабирования.
Настроенный playbook может быть настроен для изменения частоты cron, местоположения журналов и параметров ansible-pull. Это полезно как для экстремального масштабирования, так и для периодического устранения неполадок. Использование модуля «fetch» для получения логов из запусков ansible-pull было бы отличным способом сбора и анализа удаленных логов из ansible-pull.
Общие параметры
-
--accept-host-key -
добавляет хост-ключ для URL репозитория, если он еще не добавлен
-
--ask-vault-pass -
запрос пароля хранилища
-
--check -
не вносить никаких изменений; вместо этого попытаться предсказать некоторые из изменений, которые могут произойти
-
--clean -
измененные файлы в рабочем репозитории будут удалены
-
--diff -
при изменении (небольших) файлов и шаблонов отображать различия в этих файлах; отлично работает с –check
-
--full -
Выполнить полное клонирование вместо поверхностного.
-
--list-hosts -
выводит список соответствующих хостов; ничего больше не выполняет
-
--private-key <PRIVATE_KEY_FILE>, --key-file <PRIVATE_KEY_FILE> -
использовать этот файл для аутентификации соединения
-
--purge -
очистить рабочую копию после выполнения playbook
-
--scp-extra-args <SCP_EXTRA_ARGS> -
указать дополнительные аргументы для передачи только scp (например, -l)
-
--sftp-extra-args <SFTP_EXTRA_ARGS> -
указать дополнительные аргументы для передачи только sftp (например, -f, -l)
-
выполнить только те plays и задачи, теги которых не соответствуют этим значениям
-
--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-password-file -
файл пароля хранилища
-
--verify-commit -
проверить подпись GPG проверенной коммита, если проверка не пройдёт, прервать запуск playbook. Для этого нужно, чтобы соответствующий модуль VCS поддерживал такую операцию
-
--version -
отобразить номер версии программы, расположение файла конфигурации, путь поиска модулей, расположение модуля, расположение исполняемого файла и выйти
-
-C <CHECKOUT>, --checkout <CHECKOUT> -
ветвь/тег/коммит для проверочной точки. По умолчанию соответствует поведению модуля репозитория.
-
-K, --ask-become-pass -
запрос пароля для повышения привилегий
-
-M, --module-path -
добавить двоеточием разделенные пути к библиотеке модулей (по умолчанию=~/.ansible/plugins/modules:/usr/share/ansible/plugins/modules)
-
-T <TIMEOUT>, --timeout <TIMEOUT> -
переопределить таймаут соединения в секундах (по умолчанию=10)
-
-U <URL>, --url <URL> -
URL репозитория playbook
-
-c <CONNECTION>, --connection <CONNECTION> -
тип соединения для использования (по умолчанию=smart)
-
-d <DEST>, --directory <DEST> -
каталог для проверочной точки репозитория
-
-e, --extra-vars -
установка дополнительных переменных в виде key=value или YAML/JSON, если имя файла начинается с @
-
-f, --force -
выполнить playbook даже если репозиторий не был обновлен
-
-h, --help -
отобразить это сообщение справки и выйти
-
-i, --inventory, --inventory-file -
указать путь к файлу инвентаризации или список хостов через запятую. –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 -
выполнить playbook только если репозиторий был обновлен
-
-s <SLEEP>, --sleep <SLEEP> -
подождать случайный интервал (между 0 и n количеством секунд) перед запуском. Это полезный способ распределения запросов git
-
выполнить только те plays и задачи, которые помечены этими значениями
-
-u <REMOTE_USER>, --user <REMOTE_USER> -
подключиться как этот пользователь (по умолчанию=None)
-
-v, --verbose -
режим подробных сообщений (-vvv для более подробной информации, -vvvv для включения отладки подключения)
Окружение
Можно указать следующие переменные среды.
ANSIBLE_CONFIG – Переопределить файл конфигурации ansible по умолчанию
Доступно множество других параметров для большинства параметров в ansible.cfg
Файлы
/etc/ansible/ansible.cfg – Файл конфигурации, используется, если присутствует
~/.ansible.cfg – Файл конфигурации пользователя, переопределяет файл конфигурации по умолчанию, если он присутствует
Автор
Ansible изначально был написан Майклом ДеХааном.
Полный список участников см. в файле AUTHORS.
Лицензия
Ansible распространяется на условиях лицензии GPLv3+.
См. также
ansible(1), ansible-config(1), ansible-console(1), ansible-doc(1), ansible-galaxy(1), ansible-inventory(1), ansible-playbook(1), ansible-pull(1), ansible-vault(1),
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/cli/ansible-pull.html