自动化运维之saltstack初体验
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动化运维之saltstack初体验相关的知识,希望对你有一定的参考价值。
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部署:
环境如下:
服务器 | IP地址 | 角色 | saltstack软件 |
---|---|---|---|
Centos7 | 192.168.71.129 | master | salt-master |
Centos7 | 192.168.71.130 | minion | salt-minoin |
Centos7 | 192.168.71.131 | minion | salt-minoin |
一、管理端配置
1、修改服务器主机名
master管理端:
[[email protected] ~]# hostnamectl set-hostname master.saltstack.com
minion被管理端1:
[[email protected] ~]# hostnamectl set-hostname web01.saltstack.com
minion被管理端2:
[[email protected] ~]# hostnamectl set-hostname web02.saltstack.com
重启服务器生效主机名或使用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配置文件
[[email protected] ~]# 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、创建配置文件中对应的目录
[[email protected] ~]# mkdir /srv/salt
[[email protected] ~]# mkdir /srv/pillar
7、开启服务
[[email protected] ~]# systemctl start salt-master.service #开启服务
[[email protected] ~]# 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
[[email protected] ~]# yum install epel-release -y #安装epel源
[[email protected] ~]# yum install salt-minion -y #安装salt-minion
2、修改配置文件
[[email protected] ~]# vim /etc/salt/minion
16行 master: 192.168.175.129 #指向管理端地址
78行 id: web01.saltstack.com #自身主机名
3、开启服务
[[email protected] ~]# systemctl start salt-minion.service
三、群集部署初体验
1、在管理端检测被管理主机状态
2、编写安装apache任务文件
[[email protected] ~]# vim /srv/salt/top.sls #文件以sls结尾
[[email protected] ~]# vim /srv/salt/apache.sls
4、管理端重启服务
[[email protected] salt]# systemctl restart salt-master.service
5、执行部署的任务
[[email protected] salt]# salt ‘*‘ state.highstate #针对所有主机执行
6、执行结果
7、被管理端检查部署情况
以上是关于自动化运维之saltstack初体验的主要内容,如果未能解决你的问题,请参考以下文章