【问题标题】:Ansible multiple inventory fileAnsible 多库存文件
【发布时间】:2014-02-07 22:33:07
【问题描述】:

我正在尝试在 Ansible 1.4 和开发版中使用多个库存文件和动态库存。 Ansible 返回没有匹配的主机

我有一个模拟场景,目录中有两个主机文件test列出了目录的内容。

hosts1.ini

[group1]
test1    ansible_ssh_host=127.0.0.1
test2    ansible_ssh_host=127.0.0.2
[group2]
test3    ansible_ssh_host=127.0.0.3

hosts2.ini

[group3]
test4     ansible_ssh_host=127.0.0.4
[group4]
test5    ansible_ssh_host=127.0.0.4
test6    ansible_ssh_host=127.0.0.5

如果我运行 ansible -i test --list-hosts all,它会返回 没有匹配的主机

我深入研究了代码,发现 dir.py 做了一个小的修改,我也得到了它。但我认为我一定做错了什么,不需要破解。 关于如何解决它的任何想法?

【问题讨论】:

    标签: ansible


    【解决方案1】:

    从您的文件名中删除.ini

    $ ls test/
    hosts1  hosts2
    
    $ ansible -i test --list-hosts all 
        test1
        test2
        test3
        test5
        test6
        test4
    

    【讨论】:

      【解决方案2】:

      您也可以使用INVENTORY_IGNORE_EXTS 即在ansible.cfg:

      [inventory]
      ignore_extensions = {{(REJECT_EXTS + ('.orig', '.cfg', '.retry'))}}
      

      [defaults]
      inventory_ignore_extension = {{(REJECT_EXTS + ('.orig', '.cfg', '.retry'))}}
      

      或通过环境变量

      ANSIBLE_INVENTORY_IGNORE='{{(REJECT_EXTS + ('.orig', '.cfg', '.retry'))}}' ansible --list-hosts all
      

      【讨论】:

        【解决方案3】:

        如果你遇到这个问题并想使用来自不同位置的多个库存,只需多次指定-i 参数即可:

        ansible -i test -i another/path/to/inventory --list-hosts all
        

        请注意,最后指定库存的组变量将用于所有库存。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-07-18
          • 2014-05-29
          • 2013-12-17
          相关资源
          最近更新 更多