Show Table of Contents
付録A テンプレート作成の参照
Embedded Ruby (ERB) は、プレーンテキストと Ruby コードを組み合わせるテンプレートをベースにしてテキストファイルを生成するためのツールです。Red Hat Satellite は、プロビジョニングテンプレート (「プロビジョニングテンプレート」、Red Hat Satellite Provisioning Guide)、リモート実行 ジョブテンプレート (12章Satellite ホストでのジョブの実行)、パーティションテーブル のテンプレート (「パーティションテーブル」)、および スマートパラメーター (「スマート変数の設定」) で ERP 構文を使用します。このセクションでは、ERB テンプレートで使用できる Satellite 固有の関数および変数と使用例のいくつかについての概要を示します。Red Hat Satellite で提供されるデフォルトテンプレート ( → 、 → ) には ERB 構文のサンプルが十分にあることも留意してください。
ホストのプロビジョニングまたはリモートジョブの実行時に、ERB のコードが実行され、変数はホスト固有の値に置き換えられます。このプロセスは、レンダリング と呼ばれています。Satellite Server ではセーフモードのレンダリングオプションがデフォルトで有効にされており、これにより、有害なコードがテンプレートから実行されることを防ぐことができます。
A.1. ERB テンプレートの作成
以下は ERB 構文を要約したポイントになります。
- <% %>: Ruby コードを ERB テンプレート内で囲むマークです。コードはテンプレートのレンダリング時に実行されます。これには Ruby の制御フロー構造および Satellite 固有の関数および機能を含めることができます。たとえば、以下のようになります。
<% if @host.operatingsystem.family == "Redhat" && @host.operatingsystem.major.to_i > 6 %> systemctl <%= input("action") %> <%= input("service") %> <% else %> service <%= input("service") %> <%= input("action") %> <% end -%> - <%= %>: コード出力はテンプレートに挿入されます。これは変数の置き換えに便利です。たとえば、以下のようになります。
echo <%= @host.name %>
- <% -%>, <%= -%>: デフォルトで改行文字は、行末で閉じられている場合に Ruby ブロックの後に挿入されます。この動作を抑制するには、囲みマークを変更します。以下のテンプレートは例になります。
curl <%= @host.ip -%> /mydir
上記のテンプレートは以下のようにレンダリングされます。curl <%= @host.ip %>/mydir
これはレンダリングされるテンプレートの行数を減らすために使用されます (Ruby 構文で許可される場合)。 - <%# %>: テンプレートのレンダリング時に無視されるコメントを囲むマークです。
<%# A comment %>

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.