A.4. テンプレートマクロ
カスタムテンプレートを作成する場合は、以下のマクロをいくつか使用できます。
テンプレートのタイプに応じて、以下のマクロの一部には異なる要件があります。
レポートテンプレートで利用可能なマクロに関する詳細は、Satellite Web UI で、監視 > レポートテンプレート に移動し、テンプレートの作成 をクリックします。「テンプレートの作成」ウィンドウで、ヘルプ タブをクリックします。
ジョブテンプレートで使用可能なマクロに関する詳細は、Satellite Web UIで、ホスト > ジョブテンプレート に移動し、新しいジョブテンプレート をクリックします。「新しいジョブテンプレート」ウィンドウで、ヘルプ タブをクリックします。
- input
input
マクロを使用すると、テンプレートで使用できる入力データをカスタマイズできます。ユーザーが使用できる入力名、タイプ、およびオプションを定義できます。レポートテンプレートの場合、ユーザー入力のみを使用できます。新しい入力を定義してテンプレートを保存すると、テンプレート本文の ERB 構文で入力を参照できます。<%= input('cpus') %>
これは、ユーザー入力
cpus
から値をロードします。- load_hosts
load_hosts
マクロを使用すると、ホストの完全なリストを生成できます。<%- load_hosts().each_record do |host| -%> <%= host.name %>
load_hosts
マクロをeach_record
マクロと共に使用して、1000 件のレコードを一括でロードし、メモリー消費を減らします。レポートのホスト一覧をフィルタリングする場合は、オプション
search: input(‘Example_Host’)
を追加できます。<% load_hosts(search: input('Example_Host')).each_record do |host| -%> <%= host.name %> <% end -%>
この例では、最初に入力を作成し、次にそれを使用して、
load_hosts
マクロが取得する検索条件を絞り込みます。- report_row
report_row
マクロを使用すると、分析を容易にするためにフォーマットされたレポートを作成できます。report_row
マクロは、出力を生成するためにreport_render
マクロを必要とします。入力例:
<%- load_hosts(search: input('Example_Host')).each_record do |host| -%> <%- report_row( 'Server FQDN': host.name ) -%> <%- end -%> <%= report_render -%>
レンダリング例:
Server FQDN host1.example.com host2.example.com host3.example.com host4.example.com host5.example.com host6.example.com
別のヘッダーを追加することで、レポートにコラムを追加できます。以下の例では、レポートに IP アドレスを追加します。
入力例:
<%- load_hosts(search: input('host')).each_record do |host| -%> <%- report_row( 'Server FQDN': host.name, 'IP': host.ip ) -%> <%- end -%> <%= report_render -%>
レンダリング例:
Server FQDN,IP host1.example.com,10.8.30.228 host2.example.com,10.8.30.227 host3.example.com,10.8.30.226 host4.example.com,10.8.30.225 host5.example.com,10.8.30.224 host6.example.com,10.8.30.223
- report_render
このマクロは、レポートテンプレートでのみ使用できます。
report_render
マクロを使用して、レポートの出力を作成します。テンプレートのレンダリングプロセス中に、レポートに使用する形式を選択できます。YAML、JSON、HTML、および CSV 形式がサポートされています。<%= report_render -%>
- render_template()
このマクロは、ジョブテンプレートでのみ使用できます。
このマクロを使用して、特定のテンプレートをレンダリングできます。また、テンプレートに渡す引数を有効化して定義することもできます。