在特定主机组上运行ansible

时间:2017-01-06 06:49:45

标签: ansible ansible-playbook ansible-2.x ansible-inventory

我正在尝试使用以下命令运行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主机中运行。如何控制它以仅运行特定主机组?

1 个答案:

答案 0 :(得分:1)

  

我的问题甚至以为我使用为webclient指定的“-l webserver”角色也在webclient主机中运行。如何控制它以仅运行特定主机组?

这通常意味着您在webserverwebclient群组下拥有相同的主机。

传递-l webserver告诉Ansible使用webserver组下的广告资源中的所有主机。 当Ansible启动此播放- hosts: webclient时,它会搜索广告资源中的匹配项,然后减少与limit参数中的主机匹配。因此,如果您的某个主机位于webserverwebclient之下,Ansible将从webclient为其执行任务。