部署Ansible
文章目录
1. 构建Ansible清单
1.1 定义清单
清单定义Ansible将要管理的一批主机。这些主机也可以分配到组中,以进行集中管理。组可以包含子组,主机也可以是多个组的成员。清单还可以设置应用到它所定义的主机和组的变量。
可以通过两种方式定义主机清单。静态主机清单可以通过文本文件定义。动态主机清单可以根据需要使用外部信息提供程序通过脚本或其他程序来生成。
1.2 使用静态清单指定受管主机
静态清单文件是指定Ansible目标受管主机的文本文件。可以使用多种不同的格式编写此文件,包括INI样式或YAML。
在最简单的形式中。INI样式的静态清单文件是受管主机的主机名或IP地址的列表,每行一个:
[root@lch ~]# cd /etc/ansible/
[root@lch ansible]# ls
ansible.cfg hosts roles
但通常而言,可以将受管主机组织为主机组。通过主机组,可以更加有效的对一系列系统运行Ansible。这时,每一部分的开头为以中括号括起来的主机组名称。其后为该组中每一受管主机的主机名或IP地址,每行一个。
[webservers]
alpha.example.org
beta.example.org
192.168.1.100
www[001:006].example.com
[dbservers]
db01.intranet.mydomain.net
db02.intranet.mydomain.net
10.25.1.56
db-[99:101]-node.example.com
1.3 验证清单
若有疑问,可使用 ansible 命令验证计算机是否存在于清单中:
[root@lch ~]# cd /etc/ansible/
[root@lch ansible]# ls
ansible.cfg hosts roles
[root@lch ansible]# vi hosts
## db-[99:101]-node.example.com
192.168.200.123 最后一排添加受管主机的ip地址
//验证
[root@lch ansible]# ansible 192.168.200.123 --list-hosts
hosts (1):
192.168.200.123
//如果不存在则报下面错误
[root@lch ansible]# ansible 192.168.200.121 --list-hosts
[WARNING]: Could not match supplied host pattern, ignoring: 192.168.200.121
[WARNING]: No hosts matched, nothing to do
hosts (0):
运行以下命令来列出指定组中的所有主机:
[root@lch ansible]# vi hosts
[test] //组名
192.168.200.123
[root@lch ansible]# ansible test --list-hosts
hosts (1):
192.168.200.123
如果清单中含有名称相同的主机和主机组,ansible 命令将显示警告并以主机作为其目标。主机组则被忽略。
应对这种情况的方法有多种,其中最简单的是确保主机组不使用与清单中主机相同的名称。
//在test主机组里面添加test的主机进行验证
[root@lch ansible]# vi hosts
[test]
test
192.168.200.123
root@lch ansible]# ansible test --list-hosts
[WARNING]: Found both group and host with same name: test
hosts (1):
test
1.4 覆盖清单的位置
/etc/ansible/hosts文件被视为系统的默认静态清单文件。不过,通常的做法是不使用该文件,而是在Ansible配置文件中为清单文件定义一个不同的位置。
1.5 构建Ansible清单
修改默认清单文件**/etc/ansible/hosts**添加以下内容:
172.16.103.129
[webservers]
172.16.103.130
172.16.103.131
使用以下命令列出默认清单文件中的所有受管主机:
ansible all --list-hosts
使用以下命令列出不属于任何组的受管主机:
ansible ungrouped --list-hosts
使用以下命令列出属于某组的受管主机:
ansible webservers --list-hosts
1.6 自定义清单文件
在/etc/ansible/目录中,创建一个名为inventory的自定义静态清单文件。
服务器清单规格
| 主机IP | 用途 | 位置 | 运行环境 |
|---|---|---|---|
| 172.16.103.129 | web服务器 | 北京 | 测试 |
| 172.16.103.130 | web服务器 | 上海 | 生产 |
| 172.16.103.131 | 数据库服务器 | 上海 | 生产 |
编辑/etc/ansible/inventory文件,将上表中所列出的主机加入受管主机序列。
[root@lch ansible]# vi inventory
[webservers]
web01.example.com
//设置192.168.200.5的主机名为web01
[root@control ~]# hostnamectl set-hostname web01.example.com
[root@control ~]# bash
[root@web01 ~]#
//设置192.168.200.8的主机名为lch
[root@lch ansible]# hostnamectl set-hostname lch
[root@lch ansible]# bash
[root@lch ansible]#
[root@control ~]# vi /etc/hosts //此文件添加服务器的ip和域名
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.200.5 web01.example.com
//测试通信
[root@lch ansible]# ping web01.example.com
PING web01.example.com (192.168.200.5) 56(84) bytes of data.
64 bytes from web01.example.com (192.168.

最低0.47元/天 解锁文章
2668

被折叠的 条评论
为什么被折叠?



