Salt Master外部Job Cache配置
原文のリンク:http://pengyao.org/saltstack-master-external-job-cache.html
Salt Master外部Job Cache配置
SaltStark 2014.7より前に、Minion端の実行結果を外部システムに格納したい場合は、returnerを介して配置する必要がありますが、returnerの動作方式は、minion端から直接に対応するreturnerを接続し、分散環境ではネットワークなどの制約により、この方式は友好的ではありません。
マスター端末では、Job CacheがMasterのローカルディスクにファイルとして格納され、第三者のシステムに友好的ではない。これに基づいて、以前に共有されたことがある。 Salt Eventシステムに基づいてMaster端returnerを構築する , もう一つのプロセスを起動して、Salt Eventインターフェースをモニターして、結果を第三者システムに保存します。ちょうど2014.7.0でmasterが増加しました。 マスターjobcache パラメータはJob Cacheを直接外に置くことができます。この機能をテストします。
環境の説明 Salt Version: 2014.7.0 OS:CentOS 6.5 X 86_64(with) EPEL) 今回のテスト結果はMySQLに格納されます。テストを容易にするために、MasterローカルにMySQL Server を配置しました。
工事を始める
ノート
以下の操作は特に明記していない場合、マスター側で行います。
事前設定
インストールMySQLdb依存:
MySQL接続権限などの情報をSalt Masterプロファイルに追加します。
ホストにtest.pingを実行する:
転載先:https://blog.51cto.com/7870873/1640236
Salt Master外部Job Cache配置
SaltStark 2014.7より前に、Minion端の実行結果を外部システムに格納したい場合は、returnerを介して配置する必要がありますが、returnerの動作方式は、minion端から直接に対応するreturnerを接続し、分散環境ではネットワークなどの制約により、この方式は友好的ではありません。
マスター端末では、Job CacheがMasterのローカルディスクにファイルとして格納され、第三者のシステムに友好的ではない。これに基づいて、以前に共有されたことがある。 Salt Eventシステムに基づいてMaster端returnerを構築する , もう一つのプロセスを起動して、Salt Eventインターフェースをモニターして、結果を第三者システムに保存します。ちょうど2014.7.0でmasterが増加しました。 マスターjobcache パラメータはJob Cacheを直接外に置くことができます。この機能をテストします。
環境の説明
工事を始める
ノート
以下の操作は特に明記していない場合、マスター側で行います。
事前設定
インストールMySQLdb依存:
yum -y install MySQL-python
今回のテストに使用するデータベースとユーザーを設定します。# salt mysql -e 'create database salt'# salt mysql -e '"grant all on salt.* to salt@localhost identified by "salt_pass';# master
Jobを記憶するデータベーステーブル構造を作成します。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;
--
-- 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;
マスターの設定MySQL接続権限などの情報をSalt Masterプロファイルに追加します。
echo -e "
# MySQL
mysql.host: 'localhost'
mysql.user: 'salt'
mysql.pass: 'salt_pass'
mysql.db: 'salt'
mysql.port: 3306" >> /etc/salt/master
マスターを設定しますjobcacheオプションは、Job結果をMySQLに格納するようにする。echo -e "
# Master Job Cache
master_job_cache: mysql" >> /etc/salt/master
設定を有効にするために、Salt Masterを再起動します。service salt-master restart
テストホストにtest.pingを実行する:
salt '*' test.ping -v
出力結果:Executing job with jid 20141120060202308159
-------------------------------------------
minion-01.example.com:
True
MySQL jidsテーブルのデータを調べます。mysql salt -e 'select * from jids\G'
出力結果:*************************** 1. row ***************************
jid: 20141120060202308159
load: {"tgt_type": "glob", "jid": "20141120060202308159", "cmd": "publish", "tgt": "*", "kwargs": {"show_timeout": false, "show_jid": false}, "ret": "", "user": "sudo_vagrant", "arg": [], "fun": "test.ping"}
MySQL saltを検索しますreturnsテーブルのデータ:mysql salt -e 'select * from salt_returns\G'
出力結果:*************************** 1. row ***************************
fun: test.ping
jid: 20141120060202308159
return: true
id: minion-01.example.com
success: 1
full_ret: {"fun_args": [], "jid": "20141120060202308159", "return": true, "retcode": 0, "success": true, "cmd": "_return", "_stamp": "2014-11-20T06:02:02.533850", "fun": "test.ping", "id": "minion-01.example.com"}
alter_time: 2014-11-20 06:02:02
Job実行結果は、以前の構成に従ってMySQLに記憶されており、予想される効果を達成している。転載先:https://blog.51cto.com/7870873/1640236