热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SaltStack部署实践(4)JOB管理与Returns模块

目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关

目录

一、salt-job管理


# job存放数据目录

# 缓存时间设置

# Others

二、returns模块配置job数据入库

#配置returns返回值信息

#mysql安全设置

#创建模块相关表和用户授权

#测试数据是否正常入库

 三、minion-id修改方法



一、salt-job管理

何为job?
    master在下发指令消息时,会附带上产生的jid(即job的id格式为%Y%m%d%H%M%S%f),minion在接收到指令开始执行时,会在本地的cachedir(默认是/var/cache/salt/minion)下的proc目录产生以该jid命名的文件,用于在执行过程中master查看当前任务的执行情况,指令执行完毕将结果传送给master后,删除该临时文件。master将minion的执行结果存放本地/var/cache/salt/master/jobs目录,默认缓存24小时(可通过修改master配置文件keepjobs选项调整)

#也就是说,job存放固定时间内的任务执行结果,而salt的returns模块负责将这些结果返回至某个接收点,默认minion会直接返回至设置的接收点不经过master,按照通常情况,我们本次实现将minion所有任务执行结果返回至mysql数据库中存储,然后再由master调用。

# job存放数据目录

[[email protected] jobs]# cd /var/cache/salt/master/jobs/
[[email protected] jobs]# ls
00  08  10  16  1f  25  2e  34  3c  45  4f  56  5d  65  6c  78  83  8a  90  98  9e  a6  ad  b4
[[email protected] be494bbf286bc0cab5ad0fb7d516e9]# pwd
/var/cache/salt/master/jobs/a1/be494bbf286bc0cab5ad0fb7d516e9
[[email protected] be494bbf286bc0cab5ad0fb7d516e9]# ls
jid  linux-node1.example.com  linux-node2.example.com

# 缓存时间设置

[[email protected] jobs]# grep "#keep_jobs: 24" /etc/salt/master
#keep_jobs: 24
默认的缓存是24小时,可以进行修改。管理job是模块进行管理,由执行模块进行管理:SALT.MODULES.SALTUTIL

# Others

salt '*' saltutil.clear_cache   清除缓存
salt '*' saltutil.find_job     查找当前在运行的job,并返回它的id
salt '*' saltutil.is_running    查看当前在运行的job
salt '*' saltutil.kill_job     杀死job

二、returns模块配置job数据入库

#returns模块官方文档
https://www.unixhot.com/docs/saltstack/ref/returners/all/salt.returners.mysql.html

#配置returns返回值信息

[[email protected] ~]# yum install -y MySQL-python
[[email protected] ~]# vi /etc/salt/master
master_job_cache: mysql
mysql.host: '192.168.56.11'
mysql.user: 'salt'
mysql.pass: 'salt'
mysql.db: 'salt'
mysql.port: 3306

#mysql安全设置

[[email protected] ~]# mysql_secure_installation 

#创建模块相关表和用户授权

MariaDB [salt]>
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;
CREATE INDEX jid ON jids(jid) USING BTREE;
--
-- 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;

MariaDB [salt]> show tables;
+----------------+
| Tables_in_salt |
+----------------+
| jids           |
| salt_events    |
| salt_returns   |
+----------------+
3 rows in set (0.00 sec)

#此时returns表为空
MariaDB [salt]> select * from salt_returns;
Empty set (0.00 sec)

#grant 权限 on 数据库对象 to 用户 identified by 用户密码 (如果用户不存在,创建并授权)
MariaDB [salt]> grant all on salt.* to [email protected] identified by 'salt';
Query OK, 0 rows affected (0.00 sec)

#测试数据是否正常入库

[[email protected]de1 ~]# systemctl restart salt-master
[[email protected] ~]# salt '*' test.ping
[[email protected] files]# mysql -h 192.168.56.11 -u salt -psalt
MariaDB [(none)]> use salt;
# 出现job数据,说明节点任务执行结果正常入库
MariaDB [salt]> select * from salt_returns;

 三、minion-id修改方法

#模块接口说明
https://docs.saltstack.com/en/2016.11/ref/states/all/index.html

1、停止服务
[[email protected] ~]# systemctl stop salt-minion
2、删除minion
[[email protected] ~]# salt-key -d minionid
[[email protected] ~]# rm -rf /etc/salt/minion_id 
3、修改配置文件
[[email protected] ~]# vi  /etc/salt/minion
#id:
4、启动minion
[[email protected] ~]# systemctl start salt-minion


推荐阅读
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • Logging all MySQL queries into the Slow Log
    MySQLoptionallylogsslowqueriesintotheSlowQueryLog–orjustSlowLog,asfriendscallit.However,Thereareseveralreasonstologallqueries.Thislistisnotexhaustive:Belowyoucanfindthevariablestochange,astheyshouldbewritteninth ... [详细]
  • 在 Ubuntu 22.04 LTS 上部署 Jira 敏捷项目管理工具
    Jira 敏捷项目管理工具专为软件开发团队设计,旨在以高效、有序的方式管理项目、问题和任务。该工具提供了灵活且可定制的工作流程,能够根据项目需求进行调整。本文将详细介绍如何在 Ubuntu 22.04 LTS 上安装和配置 Jira。 ... [详细]
  • 在关系型数据库中,数据约束是指在向数据表中插入数据时必须遵循的限制条件。在MySQL和MariaDB中,常见的数据约束包括主键约束、唯一键约束、外键约束以及非空约束等。这些约束确保了数据的完整性和一致性,是数据库管理中的重要组成部分。通过合理设置和使用这些约束,可以有效防止数据冗余和错误,提升数据库的可靠性和性能。 ... [详细]
  • 如何在Linux系统上部署MySQL 5.7.28
    本文详细介绍了在Linux系统上部署MySQL 5.7.28的具体步骤。通过官方下载页面获取最新安装包后,按照提供的指南进行配置和安装。文章内容实用性强,适合初学者和有经验的管理员参考。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • MySQL 基础操作与优化
    本文详细介绍了 MySQL 的基础连接、数据库及表的操作,涵盖创建、修改、删除等常用命令,并深入解析了数据类型、列属性、索引、外键和存储引擎等内容。 ... [详细]
  • ElasticSearch 集群监控与优化
    本文详细介绍了如何有效地监控 ElasticSearch 集群,涵盖了关键性能指标、集群健康状况、统计信息以及内存和垃圾回收的监控方法。 ... [详细]
  • 本文详细介绍了如何在Android 4.4及以上版本中配置WebView以实现内容的自动高度调整和屏幕适配,确保中文显示正常,并提供代码示例。 ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • Spring Security核心概念与应用实践
    本文详细介绍了Spring Security的核心机制,包括其作为一系列过滤器的工作原理,如何实现用户认证与授权,以及常见的配置方法和高级特性如CSRF防护。 ... [详细]
  • MapReduce原理是怎么剖析的
    这期内容当中小编将会给大家带来有关MapReduce原理是怎么剖析的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1 ... [详细]
  • CentOS 7 默认安装了 MariaDB,作为 MySQL 的一个分支。然而,出于特定需求,我们可能仍需在系统中安装 MySQL。本文将详细介绍如何通过 Yum 包管理器在 CentOS 7 上安装 MySQL,并提供一些常用的 MySQL 命令。 ... [详细]
  • 在2015年1月的MySQL内核报告中,我们详细探讨了性能优化和Group Commit机制的改进。尽管网上已有大量关于Group Commit的资料,本文将简要回顾其发展,并重点分析MySQL 5.6及之前版本中引入的二进制日志(Binlog)对性能的影响。此外,我们还将深入讨论最新的优化措施,如何通过改进Group Commit机制显著提升系统的整体性能和稳定性。 ... [详细]
author-avatar
___何鵬
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有