如何根据变量中定义的主机名在多个主机上执行任务

How to execute task in multiple host according to the hostname defined in variables

 content of inventory file: 

all:
  vars:
    rsyslog_server: SERVER-1,SERVER-2 # It can have one or more server 

content of my  task is:

- name: Copy server file in to /etc/rsyslog.d
  template:
    src: ../templates/server.j2
    dst: /etc/rsyslog.d/server.conf
  when: ansible_hostname == rsyslog_server

我想在变量中定义的服务器上执行剧本任务。根据病情。我也有一些客户。如何检查主机名是 SERVER-1、SERVER-2 还是变量中定义的任何其他值并执行任务。我的客户端机器将跳过该任务。我怎样才能做到这一点??

Loof for ansible_hostname inside rsyslog_server var

- name: Copy server file in to /etc/rsyslog.d
  template:
    src: ../templates/server.j2
    dst: /etc/rsyslog.d/server.conf
  when: rsyslog_server | search(ansible_hostname)

或者您可以在 rsyslog_server var

的列表中查找 ansible_hostname
- name: Copy server file in to /etc/rsyslog.d
  template:
    src: ../templates/server.j2
    dst: /etc/rsyslog.d/server.conf
  when: ansible_hostname in rsyslog_server.split(',')