SaltStack部署實踐(4) - JOB管理與Returns模塊

目錄

一、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存放數據目錄

[root@linux-node1 jobs]# cd /var/cache/salt/master/jobs/
[root@linux-node1 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
[root@linux-node1 be494bbf286bc0cab5ad0fb7d516e9]# pwd
/var/cache/salt/master/jobs/a1/be494bbf286bc0cab5ad0fb7d516e9
[root@linux-node1 be494bbf286bc0cab5ad0fb7d516e9]# ls
jid  linux-node1.example.com  linux-node2.example.com

# 緩存時間設置

[root@linux-node1 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>     查找當前在運行的job,並返回它的id
salt '*' saltutil.is_running    查看當前在運行的job
salt '*' saltutil.kill_job <job id>     殺死job

二、returns模塊配置job數據入庫

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

#配置returns返回值信息

[root@linux-node1 ~]# yum install -y MySQL-python
[root@linux-node1 ~]# 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安全設置

[root@linux-node1 ~]# 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)

#測試數據是否正常入庫

[root@linux-node1 ~]# systemctl restart salt-master
[root@linux-node1 ~]# salt '*' test.ping
[root@linux-node1 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、停止服務
[root@linux-node2 ~]# systemctl stop salt-minion
2、刪除minion
[root@linux-node1 ~]# salt-key -d minionid
[root@linux-node2 ~]# rm -rf /etc/salt/minion_id 
3、修改配置文件
[root@linux-node2 ~]# vi  /etc/salt/minion
#id:
4、啓動minion
[root@linux-node2 ~]# systemctl start salt-minion

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章