8.6. Cobbler テンプレート
RHN Satellite の Web インターフェース内には、 キックスタートのディストリビューションとプロファイルで使用する変数を作成する機能があります。 例えば、 キックスタートプロファイルの変数の作成については 「キックスタートの詳細 ⇒ 変数」 を参照してください。
キックスタートファイルでの テンプレート作成 に対応するための Satellite 内のインフラストラクチャ変更の一部となるのがキックスタートの変数です。 キックスタートファイルのコンテキスト内では、 テンプレートとは特定のキックスタートを作成するのではなく実際のキックスタートファイルをビルドするため使用される詳細を保持するファイルです。
これらのテンプレートはプロファイルやシステム自体の変数および該当する値を持つ各種のプロファイルとシステムで共有されます。 これらの変数がテンプレートを修正して、 テンプレートエンジン と呼ばれるソフトウェアがそのテンプレートと変数データを使用に適したキックスタートファイルに構文解析します。 Cobbler は Cheetah と呼ばれる高度なテンプレートエンジンを使用し、 テンプレート、 変数、 コードのサポートを提供します。
テンプレートを使用する利点は以下のようになります。
- 各状況にあわせて個別のキックスタートを手作業で作成したり重複した作業を行ったりすることなく、 大量のプロファイルやシステムの作成と管理を行えるようにする強固な機能
- テンプレートは複雑性を増してループや条件、 他の拡張機能、 構文などを伴う場合がある一方、 こうした複雑性を伴わせることなく単純にキックスタートファイルの作成に使用することもできます。
8.6.1. テンプレートを使用する リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
キックスタートテンプレートには、 PXE イメージのファイル名、 サブネットアドレス、
/etc/sysconfig/network-scripts/
などの共通パスなど特定の共通項目に対して静的な値を持たせることができます。 ただし、 テンプレートが標準のキックスタートファイルと異なる部分はその変数の使用です。
例えば、 標準のキックスタートファイルは以下のようなネットワーク通過経路になります。
network --device=eth0 --bootproto=static --ip=192.168.100.24 --netmask=255.255.255.0 --gateway=192.168.100.1 --nameserver=192.168.100.2
network --device=eth0 --bootproto=static --ip=192.168.100.24 --netmask=255.255.255.0 --gateway=192.168.100.1 --nameserver=192.168.100.2
しかし、 キックスタートテンプレートファイルでは、 ネットワーク通過経路は以下のようになる可能性があります。
network --device=$net_dev --bootproto=static --ip=$ip_addr --netmask=255.255.255.0 --gateway=$my_gateway --nameserver=$my_nameserver
network --device=$net_dev --bootproto=static --ip=$ip_addr --netmask=255.255.255.0 --gateway=$my_gateway --nameserver=$my_nameserver
これらの変数はキックスタートプロファイルの変数またはシステム詳細の変数で設定される値で置き換えられます。 プロファイルとシステム詳細の両方で同じ変数が定義されている場合はシステムの変数が優先されます。
キックスタートのテンプレートに関する詳細は、 次の URL にある Cobbler プロジェクトページを参照してください。
8.6.2. キックスタートの一部 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
キックスタートの全テンプレートとプロファイルで同じになる共通の設定がある場合は、 Cobbler の 一部の 機能を使ってコードの再使用という利点を活用することができます。
キックスタートの一部とはキックスタートコードのセクションであり、 Cobbler によって構文解析される
$SNIPPET()
関数で呼び出し、 その関数をコードの一部の内容に置き換えることができます。
例えば、 次のように全サーバーに対して共通となるハードドライブのパーティション設定があるとします。
この部分を利用して
my_partition
などのファイルに保存し、 Cobber がアクセスできるようこのファイルを /var/lib/cobbler/snippets/
に配置します。
次に、 キックスタートテンプレート内の
$SNIPPET()
関数でこの部分を利用することができます。 たとえば、
$SNIPPET('my_partition')
$SNIPPET('my_partition')
この関数を呼び出した場所では常に、 Cheetah 構文解析ツールによってこの関数が
my_partition
ファイル内に含まれているコードの一部に置き換えられます。
キックスタートの部分的なコードに関する詳細については以下の URL にある Cobbler プロジェクトを参照してください。