首页 > 解决方案 > Ansible 检查主机文件

问题描述

稳定:2.9

我搜索命令或选项如何检查我的“主机”库存文件与 group_vars 树 fs 之间的一致性。

我解释:

[all]
N01
N02
S01
S02

[zone1]
N01
N02

[zone2]
S01
S02

[zone3]
Z01
Z02

PlayBook_dir
\__group_vars:
   - zone1.yml
   - zone2.yml

当我启动我的剧本时,他显示了类似的“group_var dir tree 中的错误 No zone3”。

你知道这个或其他测试吗?

谢谢!

标签: ansibleautomated-testsansible-inventory

解决方案


您可以在 localhost 上group_vars使用stat 模块检查文件是否存在。可以使用assert检查结果。

    # First stat the path for file existence by looping over inventory groups
    - stat:
        path: "{{ playbook_dir }}/group_vars/{{ item.key }}.yml"
      loop: "{{ groups | dict2items }}"
      register: gvars

    # Loop over the registered variable and fail assertion if path doesn't exist
    - assert:
        that:
        - item.stat.exists
        fail_msg: "{{ item.invocation.module_args.path }} does not exist"
      when:
        - item.item.key not in ["all", "ungrouped"]
      loop: "{{ gvars.results }}"
      loop_control:
        label: "{{ item.item.key }}"

推荐阅读