自动化运维工具Ansible使用(二)

Inventory配置

Inventory指的是Client服务器的信息。默认放在/etc/ansible/hosts文件中(如果不存在就创建一个)。这个文件存储了服务器的相关信息,使用类ini格式进行排版。可以进行分组,变量赋予等操作。下面给出典型的hosts文件进行说明:

在这个文件中,我们对Client服务器的信息进行了定义。

首先定义了5台Client服务器,并给予他们一些变量值。这五台服务器名分别为site-1,site-2,site-3,site-4,site-5,在执行ansible命令时就可以使用这个名字来直接执行,例如:

site-1后面就是有关这台服务器的一些变量配置,第一个是ansible自带的变量字段ansible_ssh_host,定义了服务器的IP地址。之后的两个变量domain和db是自定义的变量,这些变量可以在ansible执行的过程中很方便的使用。

比如,我的Client的服务器上,网站的文件被放在了网站域名对应的目录下:/var/www/site-1.com/。我现在需要查看这个目录下的内容,这样每个网站的命令并不相同,而我却需要批量执行:

这时,我就可以使用刚才定义的变量来解决这个问题:

这里我就使用了{{ domain }}这个变量来代替这些内容。

注意到,上面我的命令使用了group-all做为hosts。group-all是在hosts文件中定义的一个组。

Inventory中,组的定义和一般的ini文件相同,使用[ ]作为标识。组的内容可以是服务器也可以是其他组(也就是说,组与组之间可以嵌套),如果是嵌套,则需要加上”:children”进行说明。

最后,可以使用”:var”为组成员添加额外的属性。例如最后的:

就为group-b中的所有成员添加了一个属性zivers,在命令中就可以使用这个属性了。调用方法依然是{{ zivers }}。

暂无评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注