在最佳实践页面中,有一个hosts.yml
用于 hosts 文件的示例:
然而,在文档中,我只能找到用于编写主机文件的 INI 语法。
YAML 中清单文件的语法是什么?
是的。
它已在 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:
以前的答案是正确的,但这里是简单的 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
我刚刚发现了Ansible INI 到 YAML 库存转换器,github
它对我来说很好用:
此存储库包含一个 Python 脚本,用于将 INI 格式的 Ansible 清单转换为 YAML 格式。
出于某种原因,转换结束时主机范围 ( [01:03]
) 被分隔,=
而不是显示和正确的:
。