SaltStck構築Webクラスタ-Job管理
SaltStackのデフォルトの動作モードでは、minion側はmysqlデータベースにデータを直接返します.このプロセスにはmasterが参加する必要はありません.より柔軟な管理を提供するため、minion側の実行結果(job cache)をmaster側に保存することもできます.master側のデフォルトの保存アドレスは、/var/cache/salt/master/jobsです.
job cacheはmaster側のプロファイルに対応する構成パラメータがあります.
#cachedir:/var/cache/salt/masterが保存したパス
#keep_jobs:24保存時間24時間
Job cacheのデータベースへの直接書き込みの構成
構成をオーバーライドすることで、master側のcacheを直接データベースに書き込むことができます.
job cacheのデフォルトのテーブル構造はsaltデータベースのテーブル構造と同じですが、データベースとのインタラクションを行うにはmaster側にMySQL-pythonをインストールする必要があります.
マスターのプロファイルを変更し、最後にmysqlの構成を直接追加します.
データテーブルの作成:https://docs.saltstack.com/en/latest/ref/returners/all/salt.returners.mysql.html
データベースに認証ユーザーを作成するには、次の手順に従います.
salt-masterを再起動するには:
マスター側で実行:
エラーがない場合は、実行に成功したことを示します.mysqlでデータが書き込まれているかどうかを確認できます.
1回実行するごとに、2つのレコード(2つのminion)が生成する.
これにより、実行されるjob cacheのたびにデータベースに戻ります.
saltでよく使用される管理コマンド:
# salt-run jobs.list_jobsは、データベースではなくディレクトリからクエリーする履歴実行salt job-cacheタスクを表示します.
# salt-run jobs.lookup_jid 2016124144637116519タスクの実行結果を表示
現在のminionのステータスを表示するには、次の手順に従います.
# salt-run manage.status
down状態のminionを表示するには、次の手順に従います.
# salt-run manage-down
up状態のminionを表示するには:
# salt-run manage-up
バージョン情報の表示:
# salt-run manage.versions
実行時にJIDを返し、-vパラメータを追加します.
# salt '*' test.run -v
job cacheはmaster側のプロファイルに対応する構成パラメータがあります.
#cachedir:/var/cache/salt/masterが保存したパス
#keep_jobs:24保存時間24時間
Job cacheのデータベースへの直接書き込みの構成
構成をオーバーライドすることで、master側のcacheを直接データベースに書き込むことができます.
job cacheのデフォルトのテーブル構造はsaltデータベースのテーブル構造と同じですが、データベースとのインタラクションを行うにはmaster側にMySQL-pythonをインストールする必要があります.
yum install MySQL-python -y
マスターのプロファイルを変更し、最後にmysqlの構成を直接追加します.
# vim /etc/salt/master
master_job_cache: mysql
mysql.host: '172.16.10.60'
mysql.user: 'salt'
mysql.pass: 'saltpw'
mysql.db: 'salt'
mysql.port: 3306
データテーブルの作成:https://docs.saltstack.com/en/latest/ref/returners/all/salt.returners.mysql.html
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;
データベースに認証ユーザーを作成するには、次の手順に従います.
grant all on salt.* to [email protected] identified by 'saltpw';
salt-masterを再起動するには:
# systemctl restart salt-master
マスター側で実行:
# salt '*' test.ping
エラーがない場合は、実行に成功したことを示します.mysqlでデータが書き込まれているかどうかを確認できます.
MariaDB [salt]> use salt;select * from salt_returns\G
1回実行するごとに、2つのレコード(2つのminion)が生成する.
これにより、実行されるjob cacheのたびにデータベースに戻ります.
saltでよく使用される管理コマンド:
# salt-run jobs.list_jobsは、データベースではなくディレクトリからクエリーする履歴実行salt job-cacheタスクを表示します.
# salt-run jobs.lookup_jid 2016124144637116519タスクの実行結果を表示
現在のminionのステータスを表示するには、次の手順に従います.
# salt-run manage.status
down状態のminionを表示するには、次の手順に従います.
# salt-run manage-down
up状態のminionを表示するには:
# salt-run manage-up
バージョン情報の表示:
# salt-run manage.versions
実行時にJIDを返し、-vパラメータを追加します.
# salt '*' test.run -v