编辑推荐: |
本文主要介绍了saltstack服务器基础架构集中化管理平台,以及saltstack组件的配置与环境部署,希望对您的学习有所帮助。
本文来自于51CTO,由火龙果软件Alice编辑、推荐。 |
|
saltstack简介:
SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建。
通过部署SaltStack,我们可以在成千万台服务器上做到批量执行命令,根据不同业务进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,SaltStack是运维人员提高工作效率、规范业务配置与操作的利器。
saltstack组件:
1、Salt Master:中心管理系统。此系统用于将命令和配置发送到在受管系统上运行的Salt
minion。
2、Salt Minions:被管理的系统。 该系统运行Salt
minion,它从Salt master接收命令和配置。
3、Execution Modules:从命令行针对一个或多个受管系统执行临时命令。 对以下管理场景有帮助:
● 实时监控,状态和盘点
● 一次性命令和脚本
● 部署关键更新
4、Formulas (States):一种系统配置的声明性或命令式表示。
5、Grains:系统变量。 Grains是有关底层受管系统的静态信息,包括操作系统,内存和许多其他系统属性。
您还可以为任何系统定义自定义grains。
6、Pillar:用户定义的变量。 这些安全变量被定义并存储在Salt Master中,然后使用目标“分配”给一个或多个minions。
pilla数据存储诸如端口,文件路径、配置参数和密码之类的值。
7、Top File:将formulas和pilla数据与Salt minions匹配。
8、Runners:在Salt master上执行的模块,用于执行支持任务。 Salt runners报告作业状态、连接状态、从外部API读取数据,查询连接的Salt
minions等。例如,Orchestrate运行器协调跨多个系统的配置部署。
9、Returners:将Salt minions返回的数据发送到另一个系统,例如数据库。 Salt
Returners可以在Salt minion或Salt master上运行。
10、Reactor:在SaltStack环境中发生特定事件时触发相应的响应。
11、Salt SSH:在没有Salt minion的系统上通过SSH运行Salt命令。
saltstack部署:
环境如下:
一、管理端配置
1、修改服务器主机名
master管理端:
[root@bogon ~]# hostnamectl set-hostname master.saltstack.com
minion被管理端1:
[root@bogon ~]# hostnamectl set-hostname web01.saltstack.com
minion被管理端2:
[root@bogon ~]# hostnamectl set-hostname web02.saltstack.com
重启服务器生效主机名或使用bash命令 |
重启服务器生效主机名或使用bash命令
2、修改hosts文件解析
vim /etc/hosts
#每天都需要添加hosts解析文件
192.168.71.129 master.saltstack.com
192.168.71.130 web01.saltstack.com
192.168.71.131 web02.saltstack.com |
3、管理端安装salt-master
yum install epel-release
-y #要先安装epel源
yum install salt-master -y |
4、修改salt-master配置文件
[root@master
~]# vim /etc/salt/master #配置文件位置
15行 interface: 192.168.71.129 #监听地址改成主机IP
215行 auto_accept: True #证书认证
416行 file_roots: #开启站点目录
417行 base:
418行 - /srv/salt
552行 pillar_opts: True #开启pillar功能,同步文件功能
529行 pillar_roots: #开启pillar站点
530行 base:
531行 - /srv/pillar
710行 nodegroups:
711行 group1: 'web01.saltstack.com' #被管理端主机名
712行 group2: 'web02.saltstack.com' |
5、检查修改的配置文件正确性
6、创建配置文件中对应的目录
[root@master
~]# mkdir /srv/salt
[root@master ~]# mkdir /srv/pillar |
7、开启服务
[root@master
~]# systemctl start salt-master.service #开启服务
[root@master ~]# netstat -ntap | egrep '4505|4506'
#检查端口,egrep匹配正则表达式
tcp 0 0 0.0.0.0:4505 0.0.0.0: LISTEN 36663/python
tcp 0 0 0.0.0.0:4506 0.0.0.0: LISTEN 36676/python |
二、被管理端配置
1、安装salt-minion
[root@web01 ~]#
yum install epel-release -y #安装epel源
[root@web01 ~]# yum install salt-minion -y #安装salt-minion |
2、修改配置文件
[root@web01 ~]#
vim /etc/salt/minion
16行 master: 192.168.175.129 #指向管理端地址
78行 id: web01.saltstack.com #自身主机名 |
3、开启服务
[root@web01 ~]#
systemctl start salt-minion.service |
三、群集部署初体验
1、在管理端检测被管理主机状态
2、编写安装apache任务文件
[root@master ~]# vim /srv/salt/top.sls
#文件以sls结尾
[root@master ~]# vim /srv/salt/apache.sls
4、管理端重启服务
[root@master
salt]# systemctl restart salt-master.service |
5、执行部署的任务
[root@master
salt]# salt '*' state.highstate #针对所有主机执行 |
6、执行结果
7、被管理端检查部署情况
|