[root@localhost ~]# ansible-pull -h
Usage: ansible-pull [options] [playbook.yml]
Options:
-K, --ask-sudo-pass ask for sudo password
-C CHECKOUT, --checkout=CHECKOUT
branch/tag/commit to checkout. Defaults to behavior
of repository module.
-d DEST, --directory=DEST
directory to checkout repository to
-e EXTRA_VARS, --extra-vars=EXTRA_VARS
set additional variables as key=value or YAML/JSON
-f, --force run the playbook even if the repository could not be
updated
-h, --help show this help message and exit
-i INVENTORY, --inventory-file=INVENTORY 指定库存主机文件的路径,默认为/etc/ansible/hosts
location of the inventory host file
-m MODULE_NAME, --module-name=MODULE_NAME 从仓库检查的模块名,默认是git
Module name used to check out repository. Default is
git.
-o, --only-if-changed
only run the playbook if the repository has been
updated
--purge purge checkout after playbook run
-s SLEEP, --sleep=SLEEP
sleep for random interval (between 0 and n number of
seconds) before starting. this is a useful way to
disperse git requests
-U URL, --url=URL URL of the playbook repository
--vault-password-file=VAULT_PASSWORD_FILE
vault password file
-v, --verbose Pass -vvvv to ansible-playbook
该指令使用需要谈到Ansible的另一种工作模式:pull 模式(Ansible默认使用push模式)。这和通常使用的push模式工作机理刚好相反,其适用于以下场景:
· (1)你有数量巨大的机器需要配置,即使使用高并发线程依旧要花费很多时间;
· (2)你要在刚启动的没有网络连接的主机上运行Anisble。
Ansible-pull命令使用格式如下:
ansible-pull [options] [playbook.yml]
通过Ansible-pull结合git和crontab一并实现,其原理如下:通过crontab定期拉取指定的Git 版本到本地, 并以指定模式自动运行预先制订好的指令。
具体示例参考如下:
*/20 * * * * root /usr/local/bin/ansible-pull -o -C 2.1.0 -d /srv/www/king-gw/ -i /etc/ansible/hosts -U git://git.kingifa.com/king-gw-ansiblepull >> /var/log/ansible-pull.log 2>&1
Ansible-pull通常在大批量机器场景下会使用,灵活性稍有欠缺,但效率几乎可以无限提升,对运维人员的技术和前瞻性规划有较高要求。
2017-04-18
ansible-pull命令
评论
发表评论
姓 名: