Ansible清单
在使用Ansible管理多个主机时,需要定义一个清单文件来描述这些主机的列表。Ansible的清单文件可以是静态的,也可以是动态的。以下详细介绍静态清单和动态清单的使用方式,并提供新的举例说明。
静态清单
静态清单文件概述
默认情况下,Ansible使用 /etc/ansible/hosts
文件作为系统的默认静态清单文件。清单文件的作用是告诉Ansible哪些主机需要管理。该文件格式是INI格式,其中可以定义主机名或IP地址,以及主机组。除了默认路径外,清单文件也可以放在系统的任何路径下,不过运行时需要指定其路径,可以使用 --inventory
或 -i
选项来指定。
创建静态清单文件
-
编辑
/etc/ansible/hosts
文件,添加需要管理的主机:[webservers] server1.example.com server2.example.com 192.168.1.10 [dbservers] db1.example.com db2.example.com 192.168.1.20
在上述配置中,我们定义了两个主机组
webservers
和dbservers
,分别包含了多个主机名或IP地址。 -
也可以将清单文件放在其他路径下,然后在执行命令时指定其路径。例如,将清单文件放在
/home/user/myinventory
:[webservers] server1.example.com server2.example.com 192.168.1.10 [dbservers] db1.example.com db2.example.com 192.168.1.20
使用
-i
选项指定清单文件:ansible all -i /home/user/myinventory --list-hosts
主机组嵌套
Ansible允许创建嵌套的主机组,通过在组名后添加 :children
实现。例如:
[web]
web1.example.com
web2.example.com
[db]
db1.example.com
db2.example.com
[all:children]
web