📅  最后修改于: 2020-12-26 12:29:58             🧑  作者: Mango
Ansible使用一个列表或一组列表同时对基础架构中的多个托管主机起作用,称为清单。
定义清单后,您可以使用模式选择要与Ansible一起运行的主机或组。
库存的默认位置是一个名为/ etc / ansible / hosts的文件。您还可以在命令行上使用-i
格式为/ etc / ansible /主机采用INI格式,例如:
mail.example.com
[webservers]
foo.example.com
bar.example.com
[dbservers]
one.example.com
two.example.com
three.example.com
括号中的标题是组名,用于对系统进行分类。并决定您在什么时间,出于什么目的控制什么策略。您可以将系统分成多个组。
例如,服务器既可以是dbserver也可以是Webserver 。
如果您有在非标准SSH端口上运行的主机,则可以将端口号放在带有冒号的主机名之后。 SSH配置文件中列出的端口可以与OpenSSH连接一起使用,但不能与paramiko连接一起使用。
为了使情况更明确,建议您在项目未在默认端口上运行的情况下进行设置:
badwolf.example.com:5309
假设您具有静态IP,并且想要设置主机文件中的某些别名,或者可以通过隧道进行连接。另外,您可以像下面的示例一样描述主机:
Jumper ansible_port=5555 ansible_host=192.0.2.50
在上面的示例中,尝试对主机别名“跳线”使用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