目录定义主机和组主机的定义主机组的定于主机组的嵌套选择主机和组匹配主机使用通配符匹配配置文件优先级配置文件详解1. 在节点上创建一个普通用户devops,并设置密码1232. 配置sudo提权3. 配置管理节点免密登录到被管节点4. 配置5. 写主机清单6. 验证配置是否生效配置文件段配置文件参数说明配置案例
定义主机和组在使用ansible来批量管理主机的时候,通常我们需要先定义要管理哪些主机或者主机组,而这个用于管理主机与主机组的文件就叫做Inventory,也叫做主机清单,该文件默认位于/etc/ansible/hosts(如果是pip安装则没有)
当然我们也可以通过修改ansible的配置文件来修改默认使用的主机清单主机的定义主机部分可以使用域名,主机名,IP地址来定义;使用前2者时,需要主机能够解析到对应的IP地址
[devops@node1 ~]$ cat hosts
node1
node2
node1.example.com
node2.example.com
192.168.200.100
192.168.200.200我们可以看到,现在主机清单里面是写了node1(主机名),node1.example.com(域名),192.168.200.100(IP地址),这三种定义方式都是可以的,但是你要想管理的话,主机名和域名必须是有对应的解析的
这种方式是一个个定义,我们还可以指定范围,比如
[devops@node1 ~]$ cat hosts
192.168.200.[1:10]
通过命令来查看当前被定义的主机是哪些
ansible all --list就是列出主机清单内的全部主机
[devops@node1 ~]$ ansible all --list
hosts (10):
192.168.200.1
192.168.200.2
192.168.200.3
192.168.200.4
192.168.200.5
192.168.200.6
192.168.200.7
192.168.200.8
192.168.200.9
192.168.200.10可以看到,他确实是我们定义的那样从1-10这个IP地址范围主机组的定于主机的定义就是直接讲被管理的节点写入到主机清单内,而主机组的定义是需要加上一个[组名]的
[devops@node1 ~]$ cat hosts
[webserver]
node1
node2中括号里面写的就是组名,下面的内容就是这个组内有哪些主机
同样我们可以通过组名来查看组内有哪些主机
注意,我之前写的是ansible all --list
这里写的是webserver,也就是主机组的名字,所以他只会列出这个主机组内的成员
[devops@node1 ~]$ ansible webserver --list
hosts (2):
node1
node2如果有多个主机组,那么就可以写多个中括号,一个主机可以隶属于不同主机组
[devops@node1 ~]$ cat hosts
[webserver]
node1
node2
[sqlserver]
node2
node3
[devops@node1 ~]$ ansi