如何一次性访问一组主机名?

时间:2019-03-22 21:40:27

标签: ansible

我想运行如下命令:

- name: start the cluster
  command: "pcs cluster setup --start --name cluster01 --force qi-gfs2-01.never.lan qi-gfs2-02.never.lan qi-gfs2-03.never.lan"
  when: " 'is not currently running' in cluster_status.stderr "

这是我的库存文件:

[gfs2_hosts]
qi-gfs2-01.never.lan
qi-gfs2-02.never.lan
qi-gfs2-03.never.lan

对于具有三个节点的小型集群,我可以在剧本中对其进行硬编码。但是对于较大的集群,应该有一种方法可以使用组变量一对一地访问所有主机名。但是在四处搜寻之后,我没有发现任何提示。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:1)

使用groups变量:

- name: start the cluster
  command: "pcs cluster setup --start --name cluster01 --force {{ groups['gfs2_hosts'] | join(' ') }}"
  when: " 'is not currently running' in cluster_status.stderr "

有关更多信息,请阅读官方文档中的 Accessing information about other hosts with magic variables部分。