付録A テンプレート作成の参照
Embedded Ruby (ERB)は、Ruby コードとプレーンテキストを統合するテンプレートをもとに、テキストファイルを生成するためのツールです。Red Hat Satellite は、プロビジョニングテンプレート (「Provisioning Templates」 )で ERB 構文を使用します( 『Red Hat Satellite Provisioning Guide』のプロビジョニングテンプレートの 作成 および リモート実行 ジョブ テンプレート( 12章Satellite ホストでのジョブの実行 )、パーティションテーブルこのセクションでは、ERB テンプレートで使用可能な Satellite 固有の機能と変数を使用例と併せて概説します。Red Hat Satellite が提供するデフォルトのテンプレート( )には、ERB 構文の適切な例も含まれている点にご留意ください。
ホストのプロビジョニング時またはリモートジョブの実行時に、ERB のコードが実行し、変数がホスト固有の値に置き換えられます。このプロセスは レンダリング と呼ばれています。Satellite Server ではセーフモードのレンダリングオプションがデフォルトで有効になっており、これにより、有害なコードがテンプレートから実行されないようにすることができます。
A.1. ERB テンプレートの作成 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下は ERB 構文を要約したポイントになります。
- <% %> - ERB テンプレート内に Ruby コードを囲むマークです。コードはテンプレートのレンダリング時に実行されます。これには 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 %>