如何在Ansible清单中筛选指定主机执行Playbook?
如何在Ansible中针对特定dc标签的主机运行Playbook
没问题,针对你清单里带dc标签的主机筛选,有两种简单好用的方法,我给你详细说下:
方法一:命令行添加筛选参数(临时筛选)
直接在你现有的基础命令上,加上--limit参数,用Ansible的模式匹配语法指定筛选条件就行。完整命令如下:
ansible-playbook -i inventory/my_file --limit 'server:dc=pri' role/my_playbook.yaml
这里的语法逻辑很清晰:
server是你清单里的主机组名:后面的dc=pri就是筛选条件,只会选中该组内dc变量等于pri的主机
方法二:在Playbook中固定筛选条件(长期需求)
如果这个筛选是固定需求,不想每次命令行都加参数,也可以直接在Playbook的hosts字段里指定筛选规则:
- name: 仅在dc=pri的服务器上执行任务 hosts: server:dc=pri tasks: # 这里写你的具体任务内容
这样你直接运行原来的基础命令就行,Playbook会自动帮你筛选符合条件的主机:
ansible-playbook -i inventory/my_file role/my_playbook.yaml
两种方式都能达到你要的效果,选哪种就看你是临时需要筛选,还是这个规则会长期用到啦~
内容的提问来源于stack exchange,提问作者rcarba
相关产品推荐
相关产品推荐

