2

次のコマンドで ansible を実行しようとしていますが、

ansible-playbook provision.yml -l webserver

私のホストファイルには、次のホストグループが含まれています。

[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

ここでの私の問題は、webclient に指定された「-l webserver」ロールを使用し、webclient ホストでも実行されると考えていることです。特定のホスト グループのみを実行するように制御するにはどうすればよいですか?

4

1 に答える 1

2

ここでの私の問題は、webclient に指定された「-l webserver」ロールを使用し、webclient ホストでも実行されると考えていることです。特定のホスト グループのみを実行するように制御するにはどうすればよいですか?

これは通常、webserverwebclientグループの下に同じホストがあることを意味します。

渡す-l webserverと、Ansibleは、グループの下にあるインベントリーからすべてのホストを使用するように指示されます。 Ansible がこの playを開始すると、インベントリ内の一致を検索し、 引数からホストとの一致を減らします。そのため、との両方にあるホストがある場合、Ansible はplay からタスクを実行します。webserver
- hosts: webclientlimitwebserverwebclientwebclient

于 2017-01-06T08:35:10.190 に答える