Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ansible 使用主机列表并对列表中的每个主机在一台主机上运行命令_Ansible - Fatal编程技术网

Ansible 使用主机列表并对列表中的每个主机在一台主机上运行命令

Ansible 使用主机列表并对列表中的每个主机在一台主机上运行命令,ansible,Ansible,我试图弄清楚如何在Ansible中使用主机资源清册,并对每个主机运行命令,但只能在其中一个主机上运行 例如 如果我的库存文件如下所示: [data] data1 data2 data3 [meta] meta1 meta2 meta3 meta4 我试图在节点data1上运行类似的操作: - name: Run this on data1 command: "someCmd.sh -arg1 {{ item }}" with_items: - "data1" - "d

我试图弄清楚如何在Ansible中使用主机资源清册,并对每个主机运行命令,但只能在其中一个主机上运行

例如

如果我的库存文件如下所示:

[data]
data1
data2
data3

[meta]
meta1
meta2
meta3
meta4
我试图在节点
data1
上运行类似的操作:

- name: Run this on data1
  command: "someCmd.sh -arg1 {{ item }}"
  with_items:
    - "data1"
    - "data2"
    - "data3"
    - "data4"

我知道我不会那样明摆着拿到名单只是想展示我想做什么。那么,我如何循环查看
数据列表
主机并运行命令呢?

我不确定是否正确理解了描述,但以下似乎是答案:

- name: Run this on data1
  command: "someCmd.sh -arg1 {{ item }}"
  delegate_to: data1
  run_once: true
  with_items:
    - "{{ groups['data'] }}"
您应该使用变量,并在您的剧本中使用适当的主机。比如:

- hosts: data1
  tasks:
    - name: Run this on data1
      command: "someCmd.sh -arg1 {{ item }}"
      with_items: "{{ groups['data'] }}"