自动化运维之saltstack

自动化运维之saltstack

saltstack简介:

SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建。

通过部署SaltStack,我们可以在成千万台服务器上做到批量执行命令,根据不同业务进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,SaltStack是运维人员提高工作效率、规范业务配置与操作的利器。

saltstack组件:

1、Salt Master:中心管理系统。此系统用于将命令和配置发送到在受管系统上运行的Salt minion。
自动化运维之saltstack
2、Salt Minions:被管理的系统。 该系统运行Salt minion,它从Salt master接收命令和配置。
自动化运维之saltstack
3、Execution Modules:从命令行针对一个或多个受管系统执行临时命令。 对以下管理场景有帮助:
● 实时监控,状态和盘点
● 一次性命令和脚本
● 部署关键更新
自动化运维之saltstack
4、Formulas (States):一种系统配置的声明性或命令式表示。
自动化运维之saltstack
5、Grains:系统变量。 Grains是有关底层受管系统的静态信息,包括操作系统,内存和许多其他系统属性。 您还可以为任何系统定义自定义grains。
自动化运维之saltstack
6、Pillar:用户定义的变量。 这些安全变量被定义并存储在Salt Master中,然后使用目标“分配”给一个或多个minions。 pilla数据存储诸如端口,文件路径、配置参数和密码之类的值。
自动化运维之saltstack
7、Top File:将formulas和pilla数据与Salt minions匹配。
自动化运维之saltstack
8、Runners:在Salt master上执行的模块,用于执行支持任务。 Salt runners报告作业状态、连接状态、从外部API读取数据,查询连接的Salt minions等。例如,Orchestrate运行器协调跨多个系统的配置部署。
自动化运维之saltstack
9、Returners:将Salt minions返回的数据发送到另一个系统,例如数据库。 Salt Returners可以在Salt minion或Salt master上运行。
自动化运维之saltstack
10、Reactor:在SaltStack环境中发生特定事件时触发相应的响应。
自动化运维之saltstack
11、Salt SSH:在没有Salt minion的系统上通过SSH运行Salt命令。
自动化运维之saltstack

saltstack部署:

环境如下:
服务器IP地址角色saltstack软件
Centos7192.168.71.129mastersalt-master
Centos7192.168.71.130minionsalt-minoin
Centos7192.168.71.131minionsalt-minoin
一、管理端配置

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命令


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、检查修改的配置文件正确性
自动化运维之saltstack


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、在管理端检测被管理主机状态

自动化运维之saltstack


2、编写安装apache任务文件

[root@master ~]# vim /srv/salt/top.sls   #文件以sls结尾

自动化运维之saltstack

[root@master ~]# vim /srv/salt/apache.sls

自动化运维之saltstack

4、管理端重启服务

[root@master salt\]# systemctl restart salt\-master.service

5、执行部署的任务

[root@master salt\]# salt '\*' state.highstate #针对所有主机执行

6、执行结果
自动化运维之saltstack


7、被管理端检查部署情况
自动化运维之saltstack

转自:https://blog.51cto.com/13760226/2308580

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值