将来自 ansible 事实的信息提取到库存格式中

pau*_*dos 1 ansible

为了利用似乎提供最大命令行灵活性的 ansible 模式,我想根据项目名称、发行版、架构生成清单。我可以使用 ansible_inventory 做的第一个,但以库存格式收集发行版和拱门的事实我不太清楚

更具体地说,我想创建一个库存文件,其格式如下所示

rehdat8:
   hosts:
      hosta: {}
      hostb: {}

ubuntu16:
   hosts:
      hostc: {}

x86_64:
   hosts:
      hosta: {}
      hostc: {}

ppc64:
   hosts:
      hostb: {}
Run Code Online (Sandbox Code Playgroud)

我相信我可以做到这一点的方法是从基本的库存清单开始

hosta
hostb
hostc
hostd
Run Code Online (Sandbox Code Playgroud)

并运行一个库存生成手册,当它匹配时打印一个事实,例如。

- debug:
        msg: "{{ ansible_architecture }}"
        when:  ansible_architecture  == 'ppc64'
Run Code Online (Sandbox Code Playgroud)

不幸的是,我在when 中遇到语法错误,但如果对when 语句进行了注释,我可以打印消息。这是我在使用 when 条件时看到的错误

致命:[hosta]:失败!=> {“msg”:“调试选项无效:何时”}

Smi*_*ily 5

缩进错误

- debug:
        msg: "{{ ansible_architecture }}"
  when:  ansible_architecture  == 'ppc64'
Run Code Online (Sandbox Code Playgroud)