聊聊returner(一)

最近在看returners,其實就是個返回模塊。我們一般執行命令的時候,結果會打印在屏幕上,returner就是把結果重定向其他地方,比如文件、數據庫、nosql等等。

saltstack有很多自帶的returners模塊,比如redis,mysql,sqlite3等等。我這裏以mysql爲例子。

需要MySQLdb python模塊和mysql server。

首先需要配置數據庫。saltstack源碼裏有寫明怎麼操作

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;

授予權限。

grant all privileges on salt.* to salt@'192.168.110.%' identified by 'salt';


配置minion

mysql.conf內容如下

mysql.host: '192.168.110.132'

mysql.user: 'salt'

mysql.pass: 'salt'

mysql.db: 'salt'

mysql.port: 3306

salt-cp '*' mysql.conf /opt/app/salt/etc/minion.d/mysql.conf

salt '*' cmd.run '/opt/app/salt/admin/salt-minion restart'

執行前

wKioL1PZ393zntLfAABEtio8Vek307.jpg

現在使用salt操作下

salt '*' test.ping --return mysql

wKioL1PZ4IzT-97GAAIC9CQ4sbk072.jpg

有兩條記錄。

因爲這裏只有兩臺機器。如圖

wKiom1PZ37Tgam4HAABmgvO744o954.jpg


這樣就可以方便以後統計數據,統計哪些沒有成功,哪些成功。


但是呢,有個問題,就是使用系統自帶的returner,需要修改配置文件,重啓minion。如果你已經部署線上使用了,代價挺大的。


那麼有什麼方法可以不用修改配置,你要知道saltstack非常靈活,只有你想不到的,沒有salt辦不到的。前面event文章裏提到過,event可以用來自定義returners。

關於結合event自定義returner可以參考下面的文章,這裏不再敘述。


但是呢,又有個問題,以上的returners適合於master-minion的小架構。如果salt架構比較大,使用到了master-syndic-minion架構,master和minion是不能通信的,此時咋辦。

這個時候還是要結合event來處理,在master-syndic之間寫個c/s結構的程序。

這個下篇文章再聊,先寫到這裏。


參考文章:

http://docs.saltstack.com/en/latest/ref/returners/all/salt.returners.mysql.html

http://www.saltstack.cn/projects/cssug-kb/wiki/Saltstack_master_retuner_over_event_system


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