Ansible使用一个列表或一组列表同时对基础架构中的多个托管主机起作用,称为清单。
定义清单后,你可以使用模式选择要与Ansible一起运行的主机或组。
库存的默认位置是一个名为/ etc / ansible / hosts的文件。你还可以使用-i <
path>
选项在命令行中指定其他清单文件。你可以从动态或云资源或其他格式(YAML,ini)中提取清单文件。 Ansible具有库存插件,可使其灵活和自定义。
主持人和团体
格式为/ etc / ansible /主机采用INI格式,例如:
mail.example.com[webservers]
foo.example.com
bar.example.com[dbservers]
one.example.com
two.example.com
three.example.com
括号中的标题是组名,用于对系统进行分类。并决定你在什么时候,什么目的上要控制什么策略。你可以将系统分成多个组。
例如,服务器既可以是dbserver,也可以是Web服务器。
如果你有在非标准SSH端口上运行的主机,则可以将端口号放在带有冒号的主机名之后。 SSH配置文件中列出的端口可以与OpenSSH连接一起使用,但不能与paramiko连接一起使用。
【ansible使用库存】为了使事情更明确,建议你在项目未在默认端口上运行的情况下进行设置:
badwolf.example.com:5309
假设你具有静态IP,并且想要设置主机文件中的某些别名,或者可以通过隧道进行连接。另外,你可以像下面的示例一样描述主机:
Jumper ansible_port=5555 ansible_host=192.0.2.50
在上面的示例中,尝试对主机别名“ jumper”进行Ansible将在端口5555上连接192.0.2.50。它使用清单文件的功能来定义特殊变量。
主机变量
你可以将变量分配给将在剧本中使用的主机,例如:
[atlanta]
host1 http_port=80 maxRequestsPerChild=808
host2 http_port=303 maxRequestsPerChild=909
组变量
变量可以一次应用于整个组,例如:
[atlanta]
host1
host2[atlanta:vars]
ntp_server=ntp.atlanta.example.com
proxy=proxy.atlanta.example.com
分组组和分组变量
可以使用:children的后缀来分组。你可以使用:vars应用变量。
[atlanta]
host1
host2[raleigh]
host2
host3[southeast: children]
Atlanta
Raleigh[southeast:vars]
some_server=foo.southeast.example.com
halon_system_timeout=30
self_destruct_countdown=60
escape_pods=2[usa: children]
southeast
northeast
southwest
northwest
推荐阅读
- ansible调试模块用法
- ansible yaml语法
- ansible模板
- ansible shell模块
- ansible模块
- ansible命令备忘单
- ansible使用标签
- ansible变量
- ansible使用角色(Role)