ansible-pull命令

[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通常在大批量机器场景下会使用,灵活性稍有欠缺,但效率几乎可以无限提升,对运维人员的技术和前瞻性规划有较高要求。



分割线
YWSOS.COM 平台代运维解决方案
 评论
 发表评论
姓   名:

Powered by AKCMS