job_submit
この ビルディング・ブロック は、PDS または z/OS® UNIX System Services ディレクトリーから JCL の実行を実行依頼します。 成果物には関連しません。
実行する JCL と必要な変数を指定するには、以下の例のように、この ビルディング・ブロック が実装する var_job_submit
プロパティーを 「デプロイメント方式」 ステップに入力します。
actions:
- name: SUBMIT A JCL TO RUN A JOB
short_name: SUBMIT_JCL
steps:
- name: TEST STEP FOR THE SUBMISSION OF A JCL
short_name: JOB_TEST
properties:
- key: template
value: job_submit
- key: var_job_submit
value: my_var_job_submit
is_artifact: False
この例では、 var_job_submit
プロパティーの値は my_var_job_submit
ですが、他の任意のストリングにすることができます。
この ビルディング・ブロック を正しく実行するには、環境変数が必要です。 それらを .yml ファイルに指定します。 Ansible ビルディング・ブロックおよび Python ビルディング・ブロックの汎用環境変数 を示し、それらの値をターゲットの z/OS 環境に適合させます。 この ビルディング・ブロックに固有の変数も指定します。
Ansible 変数
var_job_submit
プロパティーを指定する場合は、実行する必要がある変数の値を指定する必要があります。- src (必須)。実行依頼する JCL を含むソース・ファイルまたはデータ・セット、または生成された JCL が実行依頼される前にレンダリングされる Jinja2 テンプレートを示します。
- location (必須) は、JCL または Jinja2 テンプレートの場所を示します。
- use_template (オプション)。 src 変数に Jinja2 テンプレートが含まれているかどうかを示します。 デフォルトでは、この変数は
false
に設定されています。
zos_job_submit
モジュールによって使用されるオプション変数を定義することもできます。
IBM® z/OS コレクションの Ansible 資料の zos_job_submit を参照してください。
my_var_job_submit:
src: '/tmp/HELLO1.JCL'
location: "USS"
job_submit_template:
src: "spec_templates/hello.jcl.j2"
location: "LOCAL"
use_template: True
Jinja2 テンプレートで変数を定義する方法については、 Jinja2 テンプレートでの変数のコーディングを参照してください。
zos_job_submit
にはバグがあるため、単純な引用符 (') やアンパーサンド (&) などの一部の特殊文字があります。 が正しく変換されていません。 このバグを回避するには、以下の 2 つの方法のいずれかを適用します。- 以下の行を使用して、 Jinja2 コードのフレームを作成します。
{% autoescape false -%} .... {%- endautoescape %}
例えば、以下のコードを入力できます。{% autoescape false -%} //{{template_values.jobcard}} //STEP0001 EXEC PGM=IEBGENER //SYSIN DD DUMMY //SYSPRINT DD SYSOUT=* //SYSUT1 DD * "HELLO WORLD" /* //SYSUT2 DD SYSOUT=* // {%- endautoescape %}
- 以下の行を使用して、 Jinja2 テンプレート内で変数を宣言します。
{{ myVar | safe }}
例えば、以下のコードを入力できます。//{{template_values.jobcard | safe}} //STEP0001 EXEC PGM=IEBGENER //SYSIN DD DUMMY //SYSPRINT DD SYSOUT=* //SYSUT1 DD * "HELLO WORLD" /* //SYSUT2 DD SYSOUT=* //
デプロイメント方式のステップで var_job_submit
プロパティーを指定しない場合は、 Ansible 環境変数ファイルからのデフォルトの job_submit_default 変数の値が使用されます。
hlq: 'NAZARE.WDEPLOY.ANSIBLE'
job_submit_default:
src: '{{ hlq }}.JCL(HELLO1)'
location: "DATA_SET"
Python 変数
var_job_submit
プロパティーを指定する場合は、実行する必要がある変数の値を指定する必要があります。- spec ルート。これは、すべての Python 変数のルートです。
- src (必須)。実行依頼する JCL を含むソース・ファイルまたはデータ・セット、または生成された JCL が実行依頼される前にレンダリングされる Jinja2 テンプレートを示します。
- use_template (オプション)。 src 変数に Jinja2 テンプレートが含まれているかどうかを示します。 デフォルトでは、この変数は
false
に設定されています。 - dest 変数。リモート・マシン上に作成されるターゲット・ファイルへの絶対パスまたは相対パスを示します。 use_template が
True
に設定されている場合、この変数は必須です。 - mode 変数。これは、ターゲット・ファイルに対するアクセス権を示します。 例えば、
0755
のようになります。 この変数はオプションです。 - max_rc (オプション)。JCL 実行の最大戻りコードを示します。
- wait_time_s (オプション)。ジョブの完了を待機する最大時間を秒単位で設定します。
spec:
my_var_job_submit:
src: 'tmp/HELLO1.jcl'
max_rc: 8
wait_time_s: 25
spec:
job_submit_template:
src: "spec_templates/hello.jcl.j2"
use_template: True
dest: "wd_test/jcl_template.jcl"
Jinja2 テンプレートで変数を定義する方法については、 Jinja2 テンプレートでの変数のコーディングを参照してください。
デプロイメント方式のステップで var_job_submit
プロパティーを指定しなかった場合は、 Python 環境変数ファイルのデフォルトの job_submit_default 変数の値が使用されます。
spec:
hlq: "{{ extra_vars.hlq if extra_vars.hlq is defined else 'NAZARE.WDEPLOY.PYTHON' }}"
job_submit_default:
src: '{{ env.spec.hlq }}.JCL(HELLO2)'
max_rc: 4
# wait_time_s: 30