A.6. テンプレートマクロ
カスタムテンプレートを作成する場合は、以下のマクロをいくつか使用できます。テンプレートのタイプに応じて、以下のマクロの一部には異なる要件があります。
レポートテンプレートに使用できるマクロの詳細は、Satellite Web UI で Monitor > Reports > Report Templates に移動し、Create Template をクリックしてください。Create Template ウィンドウで、Help タブをクリックします。
ジョブテンプレートに使用できるマクロの詳細は、Satellite Web UI で、Hosts > Templates > Job templates に移動し、New Job Template をクリックしてください。New Job Template ウィンドウで、Help タブをクリックします。
- 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()
このマクロは、ジョブテンプレートでのみ使用できます。
このマクロを使用して、特定のテンプレートをレンダリングできます。また、テンプレートに渡す引数を有効化して定義することもできます。
- truthy
truthy
マクロを使用すると、値が整数またはブール値であるかに関係なく、渡された値が true か false かどうかを宣言できます。このマクロは、テンプレートに複数の値タイプが含まれる場合に混乱を避けるのに役立ちます。たとえば、ブール値
true
は文字列値"true"
とは異なります。このマクロを使用して、テンプレートで値を解釈する方法を宣言し、混乱を回避することができます。truthy
を使用して、以下のように値を宣言できます。truthy?("true") => true truthy?(1) => true truthy?("false") => false truthy?(0) => false
- falsy
falsy マクロは、真理マクロと同じ目的として機能します。
falsy
マクロを使用すると、値が整数またはブール値であるかに関係なく、渡された値が true または false であるかどうかを宣言できます。falsy
を使用して、以下のように値を宣言できます。falsy?("true") => false falsy?(1) => false falsy?("false") => true falsy?(0) => true