[CentOS6][SOS JobScheduler] ConfigrationMonitor でパラメータ設定を1箇所にまとめる1


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」に続く。