我正在尝试使用以下命令运行ansible,
ansible-playbook provision.yml -l webserver
我的hosts文件包含以下主机组
[webclient]
172.29.4.75
[webserver]
172.29.4.76
我的provision.yml还包含2个主机,如下所示
- hosts: webclient
user: centos
roles:
- nginx
- nvm
- hosts: webserver
user: centos
roles:
- tomcat
我的问题在于我甚至认为我使用" -l webserver"为webclient指定的角色也在webclient主机中运行。如何控制它以仅运行特定主机组?
答案 0 :(得分:1)
我的问题甚至以为我使用为webclient指定的“-l webserver”角色也在webclient主机中运行。如何控制它以仅运行特定主机组?
这通常意味着您在webserver
和webclient
群组下拥有相同的主机。
传递-l webserver
告诉Ansible使用webserver
组下的广告资源中的所有主机。
当Ansible启动此播放- hosts: webclient
时,它会搜索广告资源中的匹配项,然后减少与limit
参数中的主机匹配。因此,如果您的某个主机位于webserver
和webclient
之下,Ansible将从webclient
为其执行任务。