如何列出主持人所属的组?

时间:2017-09-22 10:41:34

标签: ansible

我有一个非常复杂的Ansible设置,有数千台服务器和数百个不同服务器组成的组(动态库存文件)。

有没有办法轻松显示特定主机所属的所有组?

我知道如何列出所有群组及其成员:

ansible localhost -m debug -a 'var=groups'

但我想这样做不是针对所有主机,而是针对单个主机。

3 个答案:

答案 0 :(得分:11)

创建一个名为'showgroups'(可执行文件)的剧本,其中包含:

#!/usr/bin/env ansible-playbook

- hosts: all
  gather_facts: no
  tasks:
  - name: show the groups the host(s) are in
    debug:
      msg: "{{group_names}}"

您可以像这样运行它来显示清单(-i)中一个特定主机(-l)的组:

 ./showgroups -i develop -l jessie.fritz.box 

答案 1 :(得分:8)

Search (option _ -> option _). magic variable

  

此外,group_names是当前主机所在的所有组的列表(数组)。这可以在使用Jinja2语法的模板中用于制作根据组成员身份(或角色)而变化的模板源文件)主持人

答案 2 :(得分:0)

cat / etc / ansible / hosts | grep -e [[]&& ansible all --list-hosts