首页 技术 正文
技术 2022年11月16日
0 收藏 330 点赞 2,279 浏览 2965 个字

一、SaltStack介绍

       SaltStack是一个服务器基础架构集中化管理平台,SaltStack基于Python语言实现,也是基于C/S架构,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建,SaltStack整合了Puppet和Chef的功能,更适合大规模批量管理服务器,配置简单。

三大主要功能:远程执行、配置管理、云管理

运行方式:local、Master/Minion、Salt SSH

二、SaltStack工作原理

       salt-master服务启动后会开启两个端口:4505和4506,minion没有端口,通过“双向密钥交换”(可通过tree /etc/salt/pki命令查看)来实现安全管理。salt-master每执行一条命令,所有minion均可收到。

[root@m01 haproxy]# lsof -n -i:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
salt-mini root 24u IPv4 0t0 TCP 172.16.1.61:->172.16.1.61: (ESTABLISHED)
salt-mast root 12u IPv4 0t0 TCP *: (LISTEN)
salt-mast root 14u IPv4 0t0 TCP 172.16.1.61:->172.16.1.7: (ESTABLISHED)
salt-mast root 15u IPv4 0t0 TCP 172.16.1.61:->172.16.1.61: (ESTABLISHED)
salt-mast root 16u IPv4 0t0 TCP 172.16.1.61:->172.16.1.3: (ESTABLISHED)
[root@m01 haproxy]# lsof -n -i:4506 #所有的minion都与master通信,而回复的时候,master则使用4506端口
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
salt-mini root 13u IPv4 0t0 TCP 172.16.1.61:->172.16.1.61: (ESTABLISHED)
salt-mast root 20u IPv4 0t0 TCP *: (LISTEN)
salt-mast root 27u IPv4 0t0 TCP 172.16.1.61:->172.16.1.61: (ESTABLISHED)
salt-mast root 28u IPv4 0t0 TCP 172.16.1.61:->172.16.1.7: (ESTABLISHED)
salt-mast root 29u IPv4 0t0 TCP 172.16.1.61:->172.16.1.3: (ESTABLISHED)

三、SaltStack安装部署

1、环境

[root@m01 ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
[root@m01 ~]# uname -r
2.6.32-696.el6.x86_64

2、master服务端安装

rpm -ivh http://mirrors.zju.edu.cn/epel/6/x86_64/epel-release-6-8.noarch.rpm#安装epel源
yum install salt-master salt-minion -y
sed -i 's/#master: salt/master: 172.16.1.61/g' /etc/salt/minion#修改minion配置文件指定master
/etc/init.d/salt-master start
/etc/init.d/salt-minion start
chkconfig salt-master on
chkconfig salt-minion on

3、minion客户端安装配置

yum install salt-minion -y
sed -i 's/#master: salt/master: 172.16.1.61/g' /etc/salt/minion#直接替换指定master地址
/etc/init.d/salt-minion start
chkconfig salt-minion on

4、SaltStack常用命令参数

常用命令参数

命令说明

salt-key -L

查看minion列表

salt-key -A

同意接管所有的minion

salt-key -a

同意接管指定的一个minion

salt-key -D

删除所有认证的minion

salt-key -d

删除指定的minion

salt-run manage.up

查看存活的minion

salt-run manage.down

查看死掉的minion

salt-run manage.status

查看minion的相关状态

salt-run manage.versions

查看salt的所有master和minion的版本信息

salt -d

查看帮助文档

salt ‘*’ sys.doc

查看帮助文档

salt -d|grep service

查看service相关模块命令

salt ‘*’ service.get_all

获取minion所有服务

salt ‘*’ service.reload sshd

重新加载sshd服务

salt ‘*’ pkg.list_pkgs

显示软件包版本列表

salt ‘*’ pkg.version python

显示软件包版本信息

salt ‘*’ pkg.install httpd

安装软件包

salt ‘*’ service.status mysql

查看mysql服务状态

salt ‘*’ service.start mysql

启动mysql服务

salt ‘*’ sys.list_modules

模块列表

salt-cp’*’/etc/hosts /etc/hosts

分发hosts文件到所有minion端

salt’*’file.copy/tmp/zabbix.sls /tmp/sls

把服务端对应文件拷贝到minion端相应目录下

salt ‘*’ cp.get_dir salt://zabbix /tmp

把服务端对应目录拷贝到minion端相应目录下

5、远程执行

①cmd.script远程执行脚本

salt '*' cmd.script salt://scripts/runme.sh
salt '*' cmd.script salt://scripts/runme.sh 'arg1 arg2 "arg 3"'

②cmd.shell远程执行命令

salt '*' cmd.shell "ls -l | awk '/foo/{print \$2}'"
salt '*' cmd.shell template=jinja "ls -l /tmp/{{grains.id}} | awk '/foo/{print \$2}'"

③测试到客户端的连通性

[root@m01 ~]# salt '*' test.ping
m01:
True
haproxy01:
True
web02:
True

 ④遇到的问题

#问题
salt-minion dead but pid file exists
#解决
rm -fr /etc/salt/pki/minion/minion_master.pub
/etc/init.d/salt-minion restart
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,020
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,513
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,359
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,142
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,772
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,850