saltstack自动化运维管理——saltstack之Job管理

一、Job简介

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

二、Job cache

Job缓存默认保存24小时:

# vim /etc/salt/master
keep_jobs: 24

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

三、把Job存储到数据库

1、安装数据库

yum install -y mariadb-server MySQL-python
systemctl start mariadb

注:salt-mysql官方文档:http://docs.saltstack.cn/ref/returners/all/salt.returners.mysql.html#module-salt.returners.mysql

2、创建数据库

  • 执行数据库初始化脚本:
mysql_secure_installation
  • 导入数据模板:
vim add.sql 

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

[root@server2 ~]# mysql < add.sql

新增了表salt
在这里插入图片描述

  • 创建数据库授权:
    在这里插入图片描述

3、方法一

将minions中的job存放到master一份,在存放到数据库一份:
在这里插入图片描述

  • 在server2和server3上:
[root@server3 ~]# yum install -y MySQL-python.x86_64 # 安装mysql的接口
[root@server3 ~]# vim /etc/salt/minion
return: mysql
mysql.host: '172.25.254.51'
mysql.user: 'salt'
mysql.pass: 'salt'
mysql.db: 'salt'
mysql.port: 3306

在这里插入图片描述

  • 测试:
salt server2 cmd.run hostname

运行结果被保存到数据库中:
在这里插入图片描述
在这里插入图片描述
对server3做相同操作:
在这里插入图片描述
server2和server3的数据都被写入数据库中:
在这里插入图片描述

4、方法二

minions的job存放在master一份,从master存放到数据库:
在这里插入图片描述

  • 修改master端配置:
vim /etc/salt/master
##修改:
master_job_cache: mysql
mysql.host: 'localhost'
mysql.user: 'salt'
mysql.pass: 'salt'
mysql.db: 'salt'

在这里插入图片描述

  • 重启salt-master服务:
systemctl restart salt-master
  • 测试:
salt server2 cmd.run hostname
salt server3 cmd.run hostname

在这里插入图片描述
可以发现:server2和server3各写了两个数据进数据库,这是因为我们没有注释掉第一种方法,所以server2,server3会自己写入数据库一遍,再通过master写入数据库一遍。
在这里插入图片描述

  • 注释掉方法一,再次测试:
    在这里插入图片描述
    server2,server3通过master,各往数据库中写入一个数据:
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值