使用ansible-playbook时要限制只在某些主机上执行
常用的方式是增加-l 参数,但这样一个个写ip非常费劲,如下
ansible-playbook -i iplist a.yml -l '192.168.164.20,192.168.164.30,192.168.164.40,'
如果我们要限制的ip范围有几十个,那写着不累吗?有没有从一个文本里读取被限制的ip?
答案是有
写一个ip列表,让playbook只执行这个文件里的ip(文件中一行一个ip或主机名)如:
[root@m10 test_ansible]# cat limit_ip
#192.168.164.20
192.168.164.30
192.168.164.40
注意,如果前面有#说明这个ip被注释掉了。
然后再用特定方式去加载这个ip列表,即在文件名前加@符号。如下完整示例命令
ansible-playbook -i iplist a.yml -l @limit_ip
这样就实现了ansible-playbook -l limit的限制列表来自文件了。