您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
自动化运维之saltstack
 
作者笔名: 丁香花下
  2743  次浏览      17
 2019-11-15
 
编辑推荐:
本文主要介绍了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、被管理端检查部署情况

 
   
2743 次浏览       17
相关文章

DevOps转型融入到企业文化
DevOps 能力模型、演进及案例剖析
基于 DevOps 理念的私有 PaaS 平台实践
微软开发团队的DevOps实践启示
相关文档

DevOps驱动应用运维变革与创新
运维管理规划
如何实现企业应用部署自动化
运维自动化实践之路
相关课程

自动化运维工具(基于DevOps)
互联网运维与DevOps
MySQL性能优化及运维培训
IT系统运维管理