部署Ansible
文章目录
1.构建Ansible清单
1.1定义清单
清单定义Ansible将要管理的一批主机。这些主机也可以分配到组中,以进行集中管理。组可以包含子组,主机也可以是多个组的成员。清单还可以设置应用到它所定义的主机和组的变量。
可以通过两种方式定义主机清单。静态主机清单可以通过文本文件定义。动态主机清单可以根据需要使用外部信息提供程序通过脚本或其他程序来生成。
1.2使用静态清单指定受管主机
静态清单文件是指定Ansible目标受管主机的文本文件。可以使用多种不同的格式编写此文件,包括INI样式或YAML。
在最简单的形式中。INI样式的静态清单文件是受管主机的主机名或IP地址的列表,每行一个:
alpha.example.org
beta.example.org
192.168.1.100
123
但通常而言,可以将受管主机组织为主机组。通过主机组,可以更加有效的对一系列系统运行Ansible。这时,每一部分的开头为以中括号括起来的主机组名称。其后为该组中每一受管主机的主机名或IP地址,每行一个。
[webservers]
alpha.example.org
beta.example.org
192.168.1.100
www[001:006].example.com //代表001到006
[dbservers]
db01.intranet.mydomain.net
db02.intranet.mydomain.net
10.25.1.56
db-[99:101]-node.example.com
1.3 验证清单
[root@localhost ~]# vim /etc/ansible/hosts //添加下列
1.1.1.1 //无组的主机需添加到最前面
[webs] //组名
node1 //组内包含的主机
node2
[dbs]
node3
node4
#查看指定主机
[root@localhost ~]# ansible node1 --list-hosts
hosts (1):
node1
#查看指定组中的所有主机
[root@localhost ~]# ansible webs --list-hosts
hosts (2):
node1
node2
[root@localhost ~]# ansible dbs --list-hosts
hosts (2):
node3
node4
#查看所有主机
[root@localhost ~]# ansible all --list-hosts
hosts (4):
node1
node2
node3
node4
#查看无组的主机
[root@localhost ~]# ansible ungrouped --list-hosts
hosts (1):
1.1.1.1
如果清单中含有名称相同的主机和主机组,ansible 命令将显示警告并以主机作为其目标。主机组则被忽略。
1.4 覆盖清单的位置
/etc/ansible/hosts文件被视为系统的默认静态清单文件。不过,通常的做法是不使用该文件,而是在Ansible配置文件中为清单文件定义一个不同的位置。
修改默认清单文件**/etc/ansible/hosts**添加以下内容:
192.168.174.170
[webservers]
192.168.174.177
192.168.174.178
使用以下命令列出默认清单文件中的所有受管主机:
ansible all --list-hosts
使用以下命令列出不属于任何组的受管主机:
ansible ungrouped --list-hosts
使用以下命令列出属于某组的受管主机:
ansible webservers --list-hosts
1.5自定义清单文件
在/etc/ansible/目录中,创建一个名为inventory的自定义静态清单文件。
服务器清单规格
主机IP | 用途 | 位置 | 运行环境 |
---|---|---|---|
172.16.103.170 | web服务器 | 北京 | 测试 |
172.16.103.175 | web服务器 | 上海 | 生产 |
172.16.103.177 | 数据库服务器 | 上海 | 生产 |
[root@ansible ~]# vim /etc/ansible/inventory
[root@ansible ~]# cat /etc/ansible/inventory
[webservers]