Create: 2014/09/22
LastUpdate: 2014/10/08
ConfigrationMonitor を使用すると、JobChainで実行するジョブに設定するパラメータを1箇所でまとめて定義することができます。
JobSchedulerHowTOの「Configration Monotor」を参考にしました。
動作確認は、JobScheduler1.7 で実施しています。
ConfigrationMonitor を使用しない場合
たとえば、リモート実行するジョブを複数もつ JobChain があるとします。
ConfigrationMonitor を使用しない場合は、個々のジョブにパラメータを設定し、JobChain(job_chain01.job_chain.xml) は以下のような定義になります。
<?xml version="1.0" encoding="ISO-8859-1"?> <job_chain title="Sample01"> <job_chain_node state="step1" job="ssh_job1" next_state="step2" error_state="error"/> <job_chain_node state="step2" job="ssh_job2" next_state="success" error_state="error"/> <job_chain_node state="success"/> <job_chain_node state="error"/> </job_chain>ジョブ(ssh_job1.job.xml、ssh_job2.job.xml)は、以下のようになり、パラメータ部分だけ異なる定義が2つ必要になります。
<?xml version="1.0" encoding="ISO-8859-1"?> <job order="yes"> <params> <param name="host" value="10.16.19.22"/> <param name="user" value="job_user"/> <param name="password" value="job_user_password"/> <param name="auth_method" value="password"/> <param name="command" value="hostname"/> </params> <script language="java" java_class_path="" java_class="sos.scheduler.job.JobSchedulerSSHJob"/> <run_time /> </job>
ConfigrationMonitor を使用する場合
今度は、ConfigrationMonitor を使用して、上記のパラメータ設定を1箇所に纏めてみます。
JobChain(job_chain01.job_chain.xml) は以下のようになります。赤字は変更箇所です。ジョブ定義は1つでOKです。
<?xml version="1.0" encoding="ISO-8859-1"?> <job_chain title="Sample01"> <job_chain_node state="step1" job="ssh_job" next_state="step2" error_state="error"/> <job_chain_node state="step2" job="ssh_job" next_state="success" error_state="error"/> <job_chain_node state="success"/> <job_chain_node state="error"/> </job_chain>このJobChain用に以下のように設定ファイル(job_chain01.config.xml) を作成して、そこでパラメータを定義します。
ファイル名には命名規則があり、<JobChain名>.config.xml とします。
<process state> で、JobChain の state を指定し、その state で実行するジョブに与えるパラメータを <params> で設定します。
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/xsl" href="scheduler_configuration_documentation.xsl "?> <settings> <job_chain name="job_chain01"> <order> <params/> <process state="step1"> <params> <param name="host" value="10.16.19.22"/> <param name="user" value="job_user"/> <param name="password" value="job_user_password"/> <param name="auth_method" value="password"/> <param name="command" value="hostname"/> </params> </process> <process state="step2"> <params> <param name="host" value="10.16.19.23"/> <param name="user" value="job_user"/> <param name="password" value="job_user_password"/> <param name="auth_method" value="password"/> <param name="command" value="hostname"/> </params> </process> </order> </job_chain> </settings>ジョブ(ssh_job.job.xml)は、以下のようになります。赤字は変更箇所です。
パラメータ設定を削除し、ConfigrationMonitor を追加しています。
<monitor>の ConfigrationMonitor を設定しないと、JobChainの設定ファイルがあっても、ジョブにはパラメータが設定されません。
<?xml version="1.0" encoding="ISO-8859-1"?> <job order="yes"> <script language="java" java_class_path="" java_class="sos.scheduler.job.JobSchedulerSSHJob"/> <monitor name="configuration_monitor" ordering="0"> <script java_class="sos.scheduler.managed.configuration.ConfigurationOrderMonitor" language="java"/> </monitor> <run_time /> </job>
「 [CentOS6][SOS JobScheduler] ConfigrationMonitor でパラメータ設定を1箇所にまとめる2」に続く。