📜  Ansible库存

📅  最后修改于: 2020-12-26 12:29:58             🧑  作者: Mango

库存量

Ansible使用一个列表或一组列表同时对基础架构中的多个托管主机起作用,称为清单。

定义清单后,您可以使用模式选择要与Ansible一起运行的主机或组。

库存的默认位置是一个名为/ etc / ansible / hosts的文件。您还可以在命令行上使用-i 选项指定其他清单文件。您可以从动态或云资源或其他格式(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也可以是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