SaltStack ----(六)Job管理

1 什么是Job?

在saltstack中执行任何一个操作都会在master上产生一个jid号,minion端接收到指令开始执行时,会在cache目录下地proc目录创建一个以jid命名的文件这个文件的内容就是本次操作的记录,当操作完成后悔自动删除该文件,master端会记录每次操作的详细信息,在master的cache目录的job下

2 Job cache的两种方式

(1) master端Job缓存目录: cd /var/cache/salt/master/jobs/
(2) 查看master的配置文件:vim /etc/salt/master

  • Job缓存默认保存24小时

在这里插入图片描述

3 将Job存储到数据库

3.1 External Job Cache

master的返回加入mysql数据库
在这里插入图片描述
配置了 External Job Cache 时,数据会和往常一样,返回到 salt master 本地的默认缓存。同时 minion 会运用salt returner 模块发送到配置的外部存储中

  • 优点:存储数据时不会对Salt Master造成额外的负担
  • 缺点:每个Salt-Minion连接到外部作业缓存,这可能导致大量连接。还需要对所有minion配置returner模块,才能返回数据到外部存储中

3.1.1 sale-minion的配置

(1)编辑server2的sale-minion配置文件:vim /etc/salt/minion

ext_job_cache: mysql
mysql.host: '172.25.12.1'
mysql.user: 'salt'
mysql.pass: 'westos'
mysql.db: 'salt'
mysql.port: 3306

在这里插入图片描述
(2)重启sale-minion服务: systemctl restart salt-minion.service

3.1.2 sale-master端的配置

(1)安装数据库:yum install mariadb-server -y

(2)创建python的mysql模块:yum install MySQL-python -y

(3) 启动数据库服务:systemctl start mariadb.service

(4)数据库授权:grant all on salt.* to salt@'%' identified by 'westos';

(5)salt数据库文件:vim salt.sql

CREATE DATABASE  `salt`
  DEFAULT CHARACTER SET utf8
  DEFAULT COLLATE utf8_general_ci;

USE `salt`;

--
-- Table structure for table `jids`
--

DROP TABLE IF EXISTS `jids`;
CREATE TABLE `jids` (
  `jid` varchar(255) NOT NULL,
  `load` mediumtext NOT NULL,
  UNIQUE KEY `jid` (`jid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Table structure for table `salt_returns`
--

DROP TABLE IF EXISTS `salt_returns`;
CREATE TABLE `salt_returns` (
  `fun` varchar(50) NOT NULL,
  `jid` varchar(255) NOT NULL,
  `return` mediumtext NOT NULL,
  `id` varchar(255) NOT NULL,
  `success` varchar(10) NOT NULL,
  `full_ret` mediumtext NOT NULL,
  `alter_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  KEY `id` (`id`),
  KEY `jid` (`jid`),
  KEY `fun` (`fun`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Table structure for table `salt_events`
--

DROP TABLE IF EXISTS `salt_events`;
CREATE TABLE `salt_events` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`tag` varchar(255) NOT NULL,
`data` mediumtext NOT NULL,
`alter_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`master_id` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `tag` (`tag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

(6) 将salt.sql导入数据库:mysql < salt.sql

(7) 测试:salt server3 test.ping --return mysql
在这里插入图片描述

  • 登陆数据库,查看salt库的tables中是否有记录server3的jid
mysql
use salt;
show tables;

在这里插入图片描述

3.2 Master Job Cache

在master上配置master job cache,而不是每个minion上配置external job cache。在此配置中,minion照常将返回的数据发给master上的默认job cache,然后在使用Salt Returner模块将数据发送给外部系统
在这里插入图片描述

salt-maste端的配置和External Job Cache 方式salt-master的配置除了需要修改master端的配置文件之外其他的都相同,minion端不用配置

(1)编辑salt-maste的配置文件:vim /etc/salt/master

master_job_cache: mysql
mysql.host: 'localhost'
mysql.user: 'salt'
mysql.pass: 'westos'
mysql.db: 'salt'
mysql.port: 3306

(2) 重启salt-master服务:systemctl restart salt-master.service
(3) 测试:salt '*' test.ping

  • 登陆数据库,查看salt库的tables中是否有记录server2和server3的jid
mysql
use salt;
show tables;

在这里插入图片描述

在这里插入图片描述

4 job管理

  • 获取任务的jid:salt '*' test.ping -v

在这里插入图片描述

  • 通过jid获取此任务的返回结果: salt-run jobs.lookup_jid 20210122132950691006

在这里插入图片描述

  • 列出当前master jobs cache中所有job:salt-run jobs.list_jobs

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值