A.5. テンプレートマクロ

カスタムテンプレートを作成する場合は、以下のマクロをいくつか使用できます。テンプレートのタイプに応じて、以下のマクロの一部には異なる要件があります。

レポートテンプレートで利用可能なマクロに関する詳細は、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()

このマクロは、ジョブテンプレートでのみ使用できます。

このマクロを使用して、特定のテンプレートをレンダリングできます。また、テンプレートに渡す引数を有効化して定義することもできます。

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