是否可以在YAML中编写Ansible主机/库存文件?

时间:2016-12-12 05:50:49

标签: ansible ansible-inventory

在最佳做法页面中,有一个示例对主机文件使用hosts.yml

YAML-based hosts file

但是,在文档中,我只能找到用于编写主机文件的INI语法。

YAML中库存文件的语法是什么?

3 个答案:

答案 0 :(得分:37)

2012年版本为0.6 deprecated,2016年版本2.1中首次包含reintroduced。{/ p>

GitHub上的example file包含指南和示例:

  
      
  • 评论以'#'字符开头
  •   
  • 忽略空行
  •   
  • 顶级条目被假定为组
  •   
  • 必须在组的主机中指定主机:它们必须是密钥(:已终止)
  •   
  • 群组可以拥有子级,主持人和变种密钥
  •   
  • 主机下定义的任何内容都假定为var
  •   
  • 您可以输入主机名或IP地址
  •   
  • 主机名/ IP可以是多个组的成员
  •   
     

例1:未组合的主机,放入“未组合”组

ungrouped:
  hosts:
      green.example.com:
          ansible_ssh_host: 191.168.100.32
      blue.example.com:
      192.168.100.1:
      192.168.100.10:
     

例2:属于“网络服务员”群组的主机集合

webservers:
  hosts:
      alpha.example.org:
      beta.example.org:
      192.168.1.100:
      192.168.1.110:
     

例3:您可以使用范围创建主机,并将子组和变量添加到组中。   子组可以定义您通常添加到组中的任何内容

testing:
  hosts:
      www[001:006].example.com:
  vars:
      testing1: value1
  children:
      webservers:
          hosts:
              beta.example.org:

答案 1 :(得分:2)

以前的答案是正确的,但是这是简单的hosts.yaml和INI并排显示在屏幕快照中,我也只是在这里复制实际的hosts.yaml,所以如果您要自己复制粘贴并对其进行编辑

--- 
all: 
  hosts:               
    xmp: 
      ansible_connection: ssh
      ansible_host: "192.1.0.1"
      ansible_port: 7822
      ansible_user: nanoseco

enter image description here

更多信息:

https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html

答案 2 :(得分:2)

我刚刚在github上发现了Ansible INI to YAML inventory converter,对我来说很好用:

  

此存储库包含用于转换Ansible的Python脚本   INI格式到YAML格式的库存。

由于某种原因,转换最终导致主机范围([01:03])被=分隔,而不是所示的正确: