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

Lam*_*bda 31 ansible ansible-inventory

在最佳实践页面中,有一个hosts.yml用于主机文件的示例:

基于YAML的主机文件

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

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

tec*_*raf 39

是.

它在2012年的0.6版本中被弃用,并在2016年首次包含在2.1版本中的提交中重新引入.

GitHub上的示例文件包含指南和示例:

  • 注释以"#"字符开头
  • 空行被忽略
  • 顶级条目被假定为组
  • 必须在组的主机中指定主机:它们必须是密钥(:已终止)
  • 组可以有子,主机和vars键
  • 在主机下定义的任何内容都假定为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:
Run Code Online (Sandbox Code Playgroud)

例2:属于'webservers'组的主机集合

webservers:
  hosts:
      alpha.example.org:
      beta.example.org:
      192.168.1.100:
      192.168.1.110:
Run Code Online (Sandbox Code Playgroud)

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

testing:
  hosts:
      www[001:006].example.com:
  vars:
      testing1: value1
  children:
      webservers:
          hosts:
              beta.example.org:
Run Code Online (Sandbox Code Playgroud)

  • @ElijahLynn我不明白您的评论。您引用了一部分引用主机和组变量。这是另一回事。 (2认同)

gre*_*pit 6

以前的答案是正确的,但这里是简单的hosts.yaml和INI,就像屏幕截图中并排的一样,我也只是在这里复制实际的hosts.yaml,所以如果您想复制、粘贴并自己编辑它

--- 
all: 
  hosts:               
    xmp: 
      ansible_connection: ssh
      ansible_host: "192.1.0.1"
      ansible_port: 7822
      ansible_user: nanoseco
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

更多信息:

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