【系统部署知识汇总】第15章—— saltstack

自动化运维–saltstack

01
 自动化运维介绍
02
Saltstack介绍
03
Saltstack部署
04
使⽤saltstack部署环境

自动化运维介绍 01

运维自动化介绍

背景:
传统的IT运维是将数据中⼼中的⽹络设备、服务器、数据库、中间件、存储、虚拟化、硬件等资源进⾏统⼀监控,当资源出现告警时,运维⼈员通过⼯具或者基于经验进⾏排查,找出问题并加以解决。但是,随着互联⽹+时代的到来,移动互联⽹、云计算和⼤数据技术得到了⼴泛应⽤,从⽽导致企业所管理的IT架构不断扩⼤,服务器、虚拟化、存储设备的数量越来越多,⽹络也变得更加复杂,业务流程越来越繁琐,传统的运维管理也越来越⼒不从⼼,
在这里插入图片描述

运维自动化

自动化运维:

⾃动化运维,可实现⽇常设备监控、主动发现问题、⾃动分析定位、基于标准化流程⼯具规范化处理、通过⾃动化运维操作⼯具处理修复等功能,最终实现监管治⾃动化运维。

自动化:

监控⾃动化
数据采集⾃动化
数据分析⾃动化

⽇常巡检⾃动化

设备配置⽐对⾃动化

故障定位⾃动化 
故障处理⾃动化

流程处理⾃动化

⽇常备份⾃动化
系统优化⾃动化 
⼤批量配置⾃动化

⾃动化运维⼯具


在这里插入图片描述

02 Saltstack介绍

saltstack

• SaltStack管理⼯具允许管理员对多个操作系统创建⼀个⼀致的管理系统
• Saltstack最主要的两个功能是:配置管理与远程执⾏
• Saltstack不只是⼀个配置管理⼯具,还是⼀个云计算与数据中⼼架构编排的利器
• 采⽤订阅者模式的分布式管理⼯具 管理节点【发命令】——>被管理节点 【去执⾏ 返回结果】 • 采⽤⾃定义协议zeromq ⽐SSH(⼀对⼀)速度更快

03 Saltstack部署

部署实验图
在这里插入图片描述

salt-master 安装

• yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm 
• yum install salt-master
• yum install salt-syndic 分布式代理
• yum install salt-cloud 也是基于openstack来做的,它可以⽀持多种云的使⽤。 如:Aliyun、Azure、DigitalOcean、EC2、Google Compute Engine、HP Cloud、OpenStack

Salt-minion 安装

• yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm 
• yum install salt-minion

修改配置⽂件

[root@master ~]# cat /etc/salt/master |head -5
master: 192.168.10.42
user: root
[root@minion01 ~]# head -10 /etc/salt/minion
master: 192.168.10.42
user: root
id: minion-01

Salt 原理

SaltStack 采⽤ C/S模式,server端就是salt的master,client端就是minion,minion与master之间通过ZeroMQ消息队列通信
minion上线后先与master端联系,把⾃⼰的pub key发过去,这时master端通过salt-key -L命令就会看到minion的key,接受该minion-key后,也就是master与minion已经互信,master可以发送任何指令让minion执⾏了,salt有很多可执⾏模块,⽐如说cmd模块,在安装minion的时候已经⾃带了。它们通常位于你的python库中,这些模块是python写成的⽂件,⾥⾯会有好多函数,如cmd.run,当我们执⾏salt ‘*’ cmd.run 'uptime’的时候,master下发任务匹配到的minion上去,minion执⾏模块函数,并返回结果。

关于zeroMQ

master监听4505和4506端⼝:

4505对应的是ZMQ的PUB system,⽤来发送消息;
4506对应的是REP system是来接受消息的。

minion管理

在这里插入图片描述

[root@master srv]# salt-key -L
Accepted Keys: 同意加⼊的
Denied Keys: 未被加⼊的
Unaccepted Keys: 未知的
Rejected Keys: 被拒绝的

Salt-key

• salt-key -L 列出来认⼤哥的
• salt-key -A 所有⼩弟都认
• salt-key -a 单个认
• salt-key -D 剔除所有⼩弟
• salt-key -d 删除某个

查看minion状态

#查看minion的状态
[root@master salt]# salt-run manage.status
down:
up:
 - minion-01
#查看minion在线状态
[root@master salt]# salt-run manage.up
- minion-01
#查看minion不在线状态
[root@master salt]# salt-run manage.down

文件分发 salt-cp

#salt-cp 分发⽂件到minion上,不⽀持⽬录分发,通常在master运⾏#考本单个⽂件
[root@master salt]# salt-cp minion-01 /root/salt-repo-latest-2.el7.noarch.rpm /tmp
minion-01:
 ----------
 /tmp/salt-repo-latest-2.el7.noarch.rpm:
 True
#拷⻉单个⽂件到minion的⽬标⽬录下并改名
[root@master salt]# salt-cp minion-01 /root/anaconda-ks.cfg /tmp/abc
minion-01:
 ----------
 /tmp/abc:
 True
minion本地执⾏命令:salt-call
#salt-call minion本地执⾏命令,⾃⼰执⾏可执⾏模块,不是通过master下发job
[root@minion01 tmp]# salt-call test.ping
local:
 True

批量操作

#执⾏单个salt命令
salt “*” test.ping
*代表所有主机
test.ping 命令
#执⾏⼀个linux命令
salt “*” cmd.run “whoami”
cmd.run 告诉客户端执⾏什么命令
#执⾏⼀个脚本
salt “*” cmd.script “salt://脚本名” #/srv/salt 脚本路径 默认
查看salt minion在执⾏什么操作
[root@master ~]# salt-run jobs.active
20181029231137078329:
 ----------
 Arguments:
 - yum -y update
 Function:
 cmd.run
 Returned:
 Running:
 |_
 ----------
 minion-01:
 2651
 StartTime:
 2018, Oct 29 23:11:37.078329
 Target:
 minion-01
 Target-type:
 glob
 User:
 root

查看正在运⾏的任务,找到jid

[root@master ~]# salt 'minion-01' saltutil.running
minion-01:
 |_
 ----------
 arg:
 - yum -y update
 fun:
 cmd.run
 jid:
 20181029231137078329
 pid:
 2651
 ret:
 tgt:
 minion-01
 tgt_type:
 glob
 user:
 root

根据jid杀掉任务

[root@master ~]# salt 'minion-01' saltutil.kill_job 20181029231137078329
minion-01:
 Signal 9 sent to job 20181029231137078329 at pid 2651
#清除minion缓存
[root@master ~]# salt '*' saltutil.clear_cache
minion-01:
 True

04 使⽤saltstack部署环境

业务部署
1)部署业务
2)升级业务
3)配置⽂件升级业务
4)服务管理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值