saltstack 將推送結果儲存到mysql中

2021-09-23 22:02:23 字數 3551 閱讀 4064

saltstack的每次推送資訊都會在相應的minion中儲存24小時,但是為了之後進行命令安全審計,我們需要將這些首席資訊官期的儲存起來,我麼可以將資訊儲存到mysql中,這裡會出現兩個角色,mysql負責儲存資料,mysql-python負責收集資料,我們在master中安裝mysql與mysql-python,在所有的minion中安裝mysql-python,這裡介紹兩種方法:

1、在master中安裝資料庫

yum install mysql-server -y

2、登陸資料庫並對salt使用者進行授權

3、在minion端(server2)安裝mysql-python

yum install mysql-python -y

4、編輯minion的配置檔案/etc/salt/minion

vim /etc/salt/minion

810 return:

811 - mysql

812 - hipchat

813 - slack

814 mysql.host: '172.25.66.1'

815 mysql.user: 'salt'

816 mysql.pass: 'guodong+0306'

817 mysql.db: 'salt'

818 mysql.port: '3306'

819

vim test.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;

-- 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;

執行:mysql -uroot -pwestos < test.sql

6、向minion中推送命令,並將資訊返回到資料庫

7、在資料庫中salt庫的salt_returns表中檢視儲存的資訊

這種方法所有的操作都在master中進行,這種方法需要在master中同時安裝mysql與mysql-python

1、在master中安裝mysql-python

yum install mysql-python -y

2、在資料庫中對本地使用者進行授權,因為所有操作均在master中,因此只需要對localhost進行授權即可

3、編輯master的配置檔案

vim /etc/salt/master

1057 #return: mysql

1058 master_job_cache: mysql

1059 mysql.host: '172.25.66.1'

1060 mysql.user: 'salt'

1061 mysql.pass: 'guodong+0306'

1062 mysql.db: 'salt'

1063 mysql.port: 3306

重啟master

4、使用salt對任意乙個minion推送命令

salt 『server3』 cmd.run 'df -h』

5、在資料庫中進行檢視

將映象推送到Registry

容器映象服務首次進入,需要設定registry登入密碼 建立映象倉庫 1 在建立的過程會先讓建立命令空間 2 倉庫型別選擇公開,否則別人看不到 3 源選擇本地倉庫 進入倉庫管理頁面,有關於將映象推送到registry的步驟 1 登入 執行完下面的命令需要輸入前面說到的registry登入密碼 sud...

python儲存結果 python中如何儲存結果

一 建立檔案,儲存資料 1.使用python中內建的open函式,開啟txt檔案 mode 模式 w 只能操作寫入 r 只能讀取 a 向檔案追加 w 可讀可寫 r 可讀可寫 a 可讀可追加 wb 寫入進製資料 w模式開啟檔案,如果而檔案中有資料,再次寫入內容,會把原來的覆蓋掉 file handle...

python 執行shell命令並將結果儲存的例項

方法1 將she執行的結果儲存到字串 def run cmd cmd result str process subprocess.popen cmd,shell true,stdout subprocess.pipe,stderr subprocess.pipe result f process.s...