40

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

基于 YAML 的主机文件

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

YAML 中清单文件的语法是什么?

4

3 回答 3

49

是的。

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

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

  • 注释以“#”字符开头
  • 空行被忽略
  • 顶级条目被假定为组
  • 主机必须在组的主机中指定:并且它们必须是键(:终止)
  • 组可以有孩子,主机和变量键
  • 在 hosts 下定义的任何内容都假定为 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' 组的主机集合

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:
于 2016-12-12T06:44:44.717 回答
4

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

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

在此处输入图像描述

更多信息:

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

于 2018-07-15T13:45:04.177 回答
2

我刚刚发现了Ansible INI 到 YAML 库存转换器github它对我来说很好用:

此存储库包含一个 Python 脚本,用于将 INI 格式的 Ansible 清单转换为 YAML 格式。

出于某种原因,转换结束时主机范围 ( [01:03]) 被分隔,=而不是显示和正确的:

于 2018-07-30T14:29:53.350 回答