赞
踩
虽然playbook中定义了执行的主机,但是有时候我们可能仅想在定义的主机中的部分机器上执行,这时候怎么办?修改playbook中的hosts的范围,但是每次改变主机就修改一次,比较麻烦,我们可以使用–limit参数,指定该playbook在指定的主机上执行。有以下inventory文件,我们想在dbservers上执行上面测试用的playbook内容。
[all]
10.0.102.212
10.0.102.200
10.0.102.162
[dbservers]
10.0.102.162
上面测试的playbook中hosts定义all,我们想仅在dbservers上执行。
[root@test2 playbook]# ansible-playbook test.yml --limit dbservers
PLAY [all] ********************************************************************
TASK: [check the mysql stauts] ************************************************
ok: [10.0.102.162]
PLAY RECAP ********************************************************************
10.0.102.162 : ok=1 changed=0 unreachable=0 failed=0
[root@test2 playbook]#
[root@test2 playbook]# ansible-playbook test.yml --list-hosts
playbook: test.yml
play #1 (all): host count=3
10.0.102.162
10.0.102.212
10.0.102.200
ansible-playbook的一些其他技巧
–inventory=path,指定inventory文件,默认是在/etc/ansible/hosts下面。
–verbose,显示详细的输出,使用-vvvv显示精确到每分钟的输出。
–extra-vars=vars:定义在playbook使用的变量。
–forks:指定并发的线程数,默认是5.
–connection=type:指定远程连接主机的方式,默认是ssh,设置为local时,则只在本地执行playbook、
–check:检测模式,playbook中定义的所有任务将在每台主机上检测,但是并不执行。
————Blueicex 2020/03/16 13:11 blueice1980@126.com
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。