saltstack自动化运维管理—Job管理、salt-ssh与salt-syndic管理、salt-api配置
1.Job管理(1)job简介master在下发指令任务时,会附带上产生的jid。minion在接收到指令开始执行时,会在本地的/var/cache/salt/minion/proc目录下产生该jid的文件,用于执行过程中master查看当前任务的执行情况。指令执行完毕将结果传送给master后,删除该临时文件。(2)Job cachemaster端Job的缓存目录是/var/cache/salt
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
配置:




更多推荐




所有评论(0)