SaltStack中的Job缓存

目录

一、Job缓存

二、Job管理

 二、两种模式


一、Job缓存

        1、master在下发指令任务时,会附带上产生的jid(Jid:%Y%m%d%H%M%S%f)。

        2、minion在接收到指令开始执行时,会在本地的/var/cache/salt/minion/proc 目录下产生该jid命名的文件,用于在执行过程中master查看当前任务的执行 情况。指令执行完毕将结果传送给master后,删除该临时文件。

        3、master端Job的缓存目录:/var/cache/salt/master/jobs/

        3、Job缓存默认保存24小时。

        4、官方文档:http://docs.saltstack.cn/topics/jobs/external_cache.html

图1 默认缓存文件夹

二、Job管理

        1、查看所有minion当前正在运行的Jobs:salt-run jobs.active

        2、列出当前master jobs cache中所有job:salt-run jobs.list_job

图2 所有job

 

        3、从master jobs cache中查询指定jid的运行结果:salt-run jobs.lookup_jid <jid>

图3 指定jid的结果

 二、两种模式

        1、配置外部作业缓存后,数据会像往常一样返回Salt Master上的默认缓存位置,然后再用Salt Minion上的Salt返回器将结果发送到外部作业缓存(数据库)。

        优点:存储数据时不会在Salt Master上增加额外负载。

        缺点:每个Salt Minion都连接到外部作业缓存,这可能会导致大量连接。 还需要额外的配置才能在所有Salt Minions上获得返回者模块设置。

图4 模式1

        【注】为了让数据长久存储,我们统一将返回的数据存入数据库中。

##server1部署数据库:
[root@server1 jobs]# yum install -y mariadb-server.x86_64
[root@server1 jobs]# systemctl start mariadb

[root@server1 my.cnf.d]# mysql_secure_installation         ##数据库安全初始化
[root@server1 my.cnf.d]# mysql -u root -p                  ##登录数据库

##查看数据库内容
MariaDB [(none)]> SHOW databases;

##建立测试文档,进行数据导入
[root@server1 mnt]# vim SalkStack.sql
[root@server1 mnt]# mysql -p < SalkStack.sql 

##测试文档内容:https://download.csdn.net/download/qq_41056224/20642682

##指定用户授权
MariaDB [(none)]> grant all on salt.* to salt@'%' identified by 'salt';

##登录数据库,查看数据库中内容
MariaDB [(none)]> SHOW databases;
MariaDB [(none)]> USE salt
MariaDB [salt]> SHOW tables;
图5 数据库安全初始化

 【说明】第一次安装数据库的安全性设置

图6 查看数据库内容

##server2--minion端部署
##安装MySQL-python.x86_64(进行数据之间交互的依赖性),若建立类型一的交互通信,则所有minion端都需要安装该软件
[root@server2 html]# yum install -y MySQL-python.x86_64

##编写主从配置
[root@server2 html]# vim /etc/salt/minion

##配置文件内容:
894 master_job_cache: mysql
895 mysql.host: '192.168.1.11'
896 mysql.port: 3306
897 mysql.user: 'salt'
898 mysql.pass: 'salt'
899 mysql.db: 'salt'


##重启服务配置:
[root@server2 html]# systemctl restart salt-minion.service 

         MySQL-python.x86_64主要用于minion端将数据写入数据库中,是一个依赖包文件,任意一minion端想写入数据都需要安装此包。

图7 安装数据库数据传输依赖模块

                配置文件:指定数据库地址,已经登录过程中的用户,密码,端口等。

图8 配置minion端的数据库指向

##server1 上进行数据测试:

[root@server1 salt]# salt server2 test.ping --return mysql
[root@server1 salt]# salt server2 mydisk.df --return mysql


##登录数据库查看
[root@server1 mnt]# mysql -u root -p

MariaDB [(none)]> show databases;
MriaDB [(none)]> use salt;
MariaDB [salt]> show tables;
MariaDB [salt]> select * from salt_returns;

         运行测试命令,让产生的返回内容,发一份给指定的数据库。

图9 运行测试命令

 数据库结果查看:

图10 结果数据库查看

图11 结果数据库查看

   2、Salt Minions像往常一样将数据发送到默认作业缓存,然后Salt Master使用在Salt Master上运行的Salt返回器模块将数据发送到外部系统。

        优点:外部系统需要单个连接。 这对于数据库和类似系统来说是首选。

        缺点:在Salt Master上增加额外负载

图12 模式2

##在server1的msater端:
##编辑配置文件:/etc/salt/master
##文件内容:

1308 master_job_cache: mysql
1309 mysql.host: 'localhost'
1310 mysql.user: 'salt'
1311 mysql.pass: 'salt'
1312 mysql.db: 'salt'
1313 mysql.port: 3306

##重启服务:
[root@server1 salt]# systemctl restart salt-master

##安装写入的依赖包:MySQL-python.x86_64
[root@server1 salt]# yum install -y MySQL-python.x86_64

##登录数据库,给本相应的写入权限
MariaDB [(none)]> grant all on salt.* to salt@'localhost' identified by 'salt';

##测试:
[root@server1 salt]# salt '*' test.ping

##查看数据库:
[root@server1 salt]# mysql -u root -p
MariaDB [(none)]> use salt;
MariaDB [salt]> select * from salt_returns \G;

        编写master端配置文件,所有内容都在master上完成,不需要在minion上进行任何配置!

图13 master端配置文件

配置完成,重启服务,进行配置更新。同时安装依赖性包,这里只要通过写入,就需要那幢该依赖性的包。

图14 重启服务并安装数据库写入依赖性包

图13 运行测试命令

         运行完测试命令,查看数据的缓存内容:

图15 查看数据库内容

 

         上述两种模式都完成的将临时存储的Job,存放到数据库中,如果前端人员需要查看时,只需要从数据库中调取相应的信息即可。

        同时在生产环境中,为了避免操作每一台minion造成额外的内存浪费,一般情况下,直接在Master端进行部署即可,提高使用效率。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值