1.Job管理

(1)job简介
master在下发指令任务时,会附带上产生的jid。
minion在接收到指令开始执行时,会在本地的/var/cache/salt/minion/proc目录下产生该jid的文件,用于执行过程中master查看当前任务的执行情况。指令执行完毕将结果传送给master后,删除该临时文件。
(2)Job cache
master端Job的缓存目录是/var/cache/salt/master/jobs
在这里插入图片描述
Job缓存默认保存24小时

vim /etc/salt/master

在这里插入图片描述
(3)把Job存储到数据库中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面我们来依次配置一下这俩种方法。

<1>minion端直接将job发送到数据库中
这里我们在master端(server1)上安装数据库。

yum install -y mariadb-server  ##server1上安装mariadb
systemctl start mariadb  ##启动mysql

在这里插入图片描述
在这里插入图片描述
由于salt是由python编写的,现在我们要minion端直接将job发送到数据库,所以minion端需要安装一个用于python连接数据库的模块MySQL-python

yum search mysql   ##搜索一下mysql
yum install MySQL-python -y  ##server2上即minion端上安装这个模块

在这里插入图片描述
在这里插入图片描述

vim /srv/salt/minion  ##minion端编辑一下配置文件

在这里插入图片描述

systemctl restart salt-minion   ##重启一下服务

在这里插入图片描述
我们还需要在mysql端创建一个mysql数据库模式

vim add.sql  ##在server1端创建这个文件

在这里插入图片描述

mysql < add.sql  ##将这个文件导入到mysql中
mysql  ##登陆进入mysql,并且来进行授权

在这里插入图片描述
我们来测试一下

salt server2 cmd.run hostname  ##master向server2推送

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
<2>minion端将job文件缓存到master端,由master端将文件上传到mysql端
我们先把minion端的刚才的设置注释掉。

vim /etc/salt/minion

在这里插入图片描述

systemctl restart salt-minion  ##重启一下

首先master端也需要安装python与mysql连接的模块。

yum install -y MySQL-python

在这里插入图片描述

vim /etc/salt/master  

在这里插入图片描述
在这里插入图片描述
我们来测试一下。

salt '*' test.ping

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.salt-ssh与salt-syndic

(1)salt-ssh
简介:salt-ssh可以独立运行,不需要minion端。应用于一些特定场景,如一些主机它不能装minion端。salt-ssh用的是sshpass进行密码交互的。以串行模式工作,性能下降。

在这里插入图片描述

cd /etc/salt  ##进入这个目录
vim roster  ##编辑这个文件,添加需要ssh连接的主机

在这里插入图片描述
我们来测试一下,首先需要将minion服务给关闭。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果你要询问密码,需要加-i。如:salt-ssh server3 cmd.run hostname -i。
用ssh初次连接时他会有个校验,我们可以在~/.ssh/config中加入StrictHostKeyChecking no这条语句。

(2)salt-syndic
简介:如果大家知道zabbix proxy的话那就很容易理解了,syndic其实就是个代理,隔离master与minion。
Syndic必须要运行在master上,再连接到另一个topmaster上。
Topmaster 下发的状态需要通过syndic来传递给下级master,minion传递给master的数据也是由syndic传递给topmaster。
topmaster并不知道有多少个minion。
syndic与topmaster的file_roots和pillar_roots的目录要保持一致。
在这里插入图片描述
配置:
我们需要一台主机做topmaster,我们开启一台新的虚拟机server4。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

vim /etc/salt/master  ##server4上编辑一下配置文件
systemctl restart salt-master  ##重启一下这个服务

在这里插入图片描述
我们还需要在server1上安装salt-syndic。
在这里插入图片描述

vim /etc/salt/master  ##编辑master的配置文件

在这里插入图片描述

systemctl restart salt-master  ##重启master服务
systemctl start salt-syndic  ##开启syndic服务

在这里插入图片描述
在这里插入图片描述
这时我们需要把minion端都打开。
在这里插入图片描述
在这里插入图片描述
现在来测试一下:
此时server4(topmaster上只允许连接的主机只有server1)
在这里插入图片描述
以上syndic的工作原理就是:topmaster -> syndic -> master -> minion;
minion -> master -> syndic ->topmaster

3.salt-api

简介:SaltStack官方提供有REST API格式的salt-api项目,将使Salt与第三方系统集成变得尤为简单。
官方提供了三种api模块:
rest_cherrypy、rest_tornado、rest_wsgi。
官方连接:https://docs.saltstack.com/en/latest/ref/netapi/all/index.html#all-netapi-modules

配置:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Logo

一站式 AI 云服务平台

更多推荐