1.创建Ansible清单文件
1.1 目标
完成这一章节,能去描述Ansible配置文件的概念和管理一个静态的配置文件
1.2 清单文件
- 清单文件定义了一批Ansible的受管主机
- 受管主机可以以组为单位进行管理
- 组可以包含子组,同一台主机能属于多个组
- 清单文件中可以针对主机和主机组设置变量,
1.2.1 静态清单文件
清单文件可以使用多种格式编写,包括INI-style格式和YAML格式,INI-style是最通用的格式,也是官方推荐的格式。
- INI-style格式包含主机名或者ip地址
web1.example.com
web2.example.com
web3.example.com
192.0.2.42
- 以组的方式管理主机,方括号内的是组名
[webservers]
web1.example.com
web2.example.com
192.0.2.42
[db-servers]
db1.example.com
db2.example.com
3.推荐将主机分布到不同的主机组,根据主机的位置,用途等分配到不同的主机组
[webservers]
web1.example.com
web2.example.com
192.0.2.42
[db-servers]
db1.example.com
db2.example.com
[east-datacenter]
db1.example.com
web2.example.com
两个默认存在的组
- all组,包含清单文件中的所有主机
- ungrouped组,包含每一台不属于任何组的主机
4.嵌套组,组名:children,组中包含其他主机组.一个组能包含主机和子组作为成员
[north-america:children]
canda
usa
5.利用区间表示法简化主机列表 语法:【START:END】
- 192.168.[4:7].[0:255]
- server[01:20].example.com, 不匹配server1.example.com,但可以匹配server07.example.com
- [a:c]
如果主机名称和主机组相同,出现在同一个清单文件中,主机组将被忽略。
6.清单文件的位置 /etc/ansible/hosts文件是默认的静态清单文件的位置,但实践当中不会去用这个文件,而是指定一个不同位置的清单文件在Ansible配置文件中。执行ad hoc命令或者playbooks时,可以额外通过–inventory PATHNAME或者-i PATHNAME。
7.清单文件中定义变量
- 变量能被定义在清单文件中,变量被应用到指定的主机或主机组
- 正常来讲,推荐变量定义在单独的目录中而不是直接定义在清单文件中,后续的章节中会深度讲解
8.动态清单文件 清单文件可以通过外部数据库动态生成。
|