master在下發指令任務時,會附帶上產生的jid。
minion在接收到指令開始執行時,會在本地的/var/cache/salt/minion/proc目錄下產生該jid命名的檔案,用於在執行過程中master檢視當前任務的執**況。
指令執行完畢將結果傳送給master後,刪除該臨時檔案。
我們在推送後看的輸出結果就是,就是產生的job檔案
當處於圖形化管理的時候,推送的結果是看不到的,而這些存放結果的job檔案,就是檢視推送成功與否的重要指示
job快取預設儲存24小時:
# vim /etc/salt/master
keep_jobs: 24
master端job快取目錄:/var/cache/salt/master/jobs
為了可以長久性儲存job檔案並且可以隨時方便的檢視,就需要將job儲存在資料庫裡,方式就是當minion節點返回資料給master是,master在將資料傳送給資料庫進行儲存。
首先需要在master上安裝資料庫,啟動mariadb就可以直接使用了,預設是沒有密碼的
[root@server1 salt]
# yum install -y mariadb-server
[root@server1 salt]
# systemctl start mariadb.service
還需要安裝mysql-python外掛程式支援使用
[root@server1 salt]
# yum install -y mysql-python
更改配置,開啟return: mysql
[root@server1 salt]
# vim /etc/salt/master
return: mysql
master_job_cache: mysql
mysql.host: 'localhost'
mysql.user: 'salt'
mysql.pass: 'salt'
mysql.db: 'salt'
[root@server1 salt]
# systemctl restart salt-master.service #重啟服務生效配置
需要編寫salt.sql語句檔案,給資料庫匯入job的資料
[root@server1 ~]
# vim salt.sql
create database `salt`
default character set utf8
default collate utf8_general_ci;
use `salt`
;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;
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;
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;
匯入因為我們沒有設定資料庫密碼直接回車就可以
[root@server1 ~]
# mysql -p < salt.sql
enter password:
[root@server1 ~]
# mysql
mariadb [
(none)
]> show databases;
+--------------------+
| database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| salt |
|test
|+--------------------+
5 rows in
set(0.00 sec)
mariadb [
(none)
]> grant all on salt.* to salt@localhost identified by 'salt'
;query ok, 0 rows affected (0.00 sec)
#新增授權使用者
完成上述操作後,我們再去執行推送時,job資料就會自動儲存在資料庫裡的salt庫里的salt_returns表裡
[root@server1 ~]
# mysql
mariadb [
(none)
]> use salt;
mariadb [salt]
> show tables;
#匯入salt.sql會產生3張表
+----------------+
| tables_in_salt |
+----------------+
| jids |
#jid
| salt_events |
#事件表
| salt_returns |
#返回值的表
+----------------+
這樣就部署好了job的返回資料自動儲存在資料庫的操作
檢視所有minion當前正在執行的jobs(在所有minions上執行saltutil.running)
salt-run jobs.active
列出當前master jobs cache中所有job
salt-run jobs.list_jobs ,這個會展示你所有推送過的操作
從master jobs cache中查詢指定jid的執行結果
salt-run jobs.lookup_jid
[root@server1 ~]
# salt-run jobs.lookup_jid 20200609093635428312 #jid
server2: #操作執行的結果
server2
server3:
server3
join mysql 版本 MySql中的join
建立表 create table t2 id int 11 not null,a int 11 default null,b int 11 default null,primary key id key a a engine innodb drop procedure idata delimiter...
saltstack命令的使用
saltstack命令的使用 1 核心命令 salt usage salt options arguments target用於代表對哪些minion進行操作,可採用如下匹配方式 e 正規表示式 root slat master salt e node test.ping node2.linux.c...
saltstack的簡介架構
saltstack是乙個開源的 新的基礎平台管理工具,使用python語言開發,同時提供rest api方便二次開發以及和其他運維管理系統進行整合。相對於出道比較早的puppet,saltstack先天的優勢就是簡單 易用,可以非常快速的在團隊中推廣和使用,而且執行多平台。遠端執行 就是在管理節點上...