Red Hat Training

A Red Hat training course is available for Red Hat Satellite

第3章 システムのプロビジョニング

3.1. Red Hat Satellite を使用したプロビジョニング

プロビジョニングとは、物理または仮想マシンを定義済みの既知の状態に設定するプロセスのことです。Red Hat Satellite は、キックスタート プロセスを使ってシステムを準備します。プロビジョニングの機能を使うには、1 台または複数台の ターゲット マシンが必要になります。ターゲットマシンは、物理マシンかベアメタルシステム、または仮想マシンのいずれかになります。Red Hat Satellite の仮想マシンのプロビジョニング機能を使用するには、Xen または KVM を使って仮想マシンを作成します。
システム管理者は、キックスタートインストールによって、管理するマシンに Red Hat Enterprise Linux をインストールする自動インストールを使用することができます。キックスタートを使用すると、システム管理者は 標準のインストール時に通常尋ねられるすべての質問への回答が含まれた単独ファイルを作成できます。
キックスタートファイルは単独のサーバーシステム上で維持して、インストール時に 個別のコンピューターによって読み込まれるようにできます。このインストール方法は、単独のキックスタートファイルを使用して複数のマシンに Red Hat Enterprise Linux をインストールすることをサポートします。
ベースイメージや、キックスタートファイル、およびその他のコンテンツは、Satellite サーバー URL を使って、HTTP からアクセスできます。たとえば、Satellite サーバーにある 64 ビット用の Red Hat Enterprise Linux 6 のキックスタートファイルにアクセスするには、http://satellite.example.com/ks/dist/ks-rhel-x86_64-server-6-6.4/GPL のように、ベース URI の http://satellite.example.com/ks/dist/ks-rhel-x86_64-server-6-6.4 の後にダウンロードするパッケージ名が続きます。
Red Hat Enterprise Linux インストールガイド』 には、キックスタートについての詳細な記載があります。

定義

本セクション全体にわたって使用されている用語
キックスタート
ユーザーの介入をほとんどあるいは全く必要としない自動化された方法で Red Hat Enterprise Linux のシステムをインストールするプロセス。厳密に言えば、キックスタート とは、コンテンツの簡潔な記述とマシンの設定をインストーラーに提供できるようにし、それに基づいて動作を実行する、Anaconda インストールプログラムのメカニズムを指します。この簡潔なシステムの定義は、キックスタートプロファイル (Kickstart profile)と呼ばれています。
キックスタートプロファイル
キックスタートファイルは、マシンのキックスタートに必要なすべてのオプションを記載した、テキスト形式のファイルです。これには、パーティショニング情報、ネットワーク設定、インストールするパッケージが含まれます。Satellite の実装は、Cobbler のキックスタートへの機能強化をベースに構築されているため、Red Hat Satellite では キックスタートプロファイルは従来の Anaconda キックスタートの定義のスーパーセットとなります。キックスタートプロファイルはキックスタートツリーが存在することを前提としています。
キックスタートツリー
マシンをキックスタートするのに必要なソフトウェアとサポートファイル。これは、「インストールツリー」とも呼ばれることもあります。通常、これは、特定のリリースで出荷されたインストールメディアから取り出したディレクトリー構造とファイルです。Cobbler の用語では、キックスタートツリーはディストリビューションの一部となっています。
PXE (Preboot eXecution Environment)
ターゲットマシン自体の事前設定なしで、電源投入時にベアメタルマシン (通常は物理マシンまたは 実機) のキックスタートを可能にする低レベルのプロトコル。PXE は DHCP サーバーに依存して、ブートストラップサーバーに関する情報をクライアントに提供します。PXE を使用するには、ターゲットマシンのファームウェアでサポートされている必要があります。PXE は新しい物理マシンのブートや、Satellite に未登録のマシンの再インストールに非常に役立ちますが、PXE なしで仮想化を使用したり、Satellite の機能を再インストールすることも可能です。

プロビジョニングシナリオ

Red Hat Satellite がサポートするプロビジョニングシナリオのタイプ:
新規インストール
オペレーティングシステムが未インストールのシステム (別名: ベアメタル インストール) のプロビジョニング
仮想インストール
Satellite は、KVM、Xen 完全仮想化ゲスト、および Xen 準仮想化ゲストをサポートしています。
再プロビジョニング
物理およびゲストシステムは、いずれも再プロビジョニングが可能です。ただし、同一の Satellite インスタンスに登録されていることを条件とします。「再プロビジョニング」 をご参照ください。

3.1.1. キックスタートの流れ

マシンにネットワークベースのキックスタートを行う場合、次のようなイベントが順次発生していくことになります。
  1. ネットワーク上に配置して電源をオンにすると、マシンの PXE 論理がその MAC アドレスと発見されるべき要求をブロードキャストします。
  2. 静的 IP アドレスを使用しない場合は、DHCP サーバーがその発見要求を認識してから新しいマシンを起動するために必要となるネットワーク情報を提供します。これには、IP アドレス、使用されるデフォルトのゲートウェイ、ネットワークのネットマスク、ブートローダープログラムを格納している TFTP または HTTP サーバーの IP アドレス、そのプログラムのフルパスとファイル名 (サーバーの root に相対的) などが含まれます。
  3. マシンはネットワーキング情報を適用してブートローダープログラムを要求するためにサーバーとのセッションを開始します。
  4. ブートローダーはロードされると、ブートローダー自体がロードされたサーバーからその設定ファイルを検索します。このファイルは、初期 RAM ディスク (initrd) イメージなどのブートしているマシン上で実行されるべきカーネルおよびカーネルオプションを規定します。ブートローダープログラムが SYSLINUX だとすると、このファイルは、サーバーの pxelinux.cfg ディレクトリー内にあり、新しいマシンの IP アドレスにあたる 16 進数の名前が付けられます。例えば、Red Hat Enterprise Linux 6 のブートローダー設定ファイルは次のようになります。
    default=0
    timeout=5
    splashimage=(hd0,0)/grub/splash.xpm.gz
    hiddenmenu
    title Red Hat Enterprise Linux Server (2.6.32-279.22.1.el6.x86_64)
    	root (hd0,0)
    	kernel /vmlinuz-2.6.32-279.22.1.el6.x86_64 ro root=/dev/sda2 crashkernel=auto ks=http://example.com/ks.cfg
    	initrd /initramfs-2.6.32-279.22.1.el6.x86_64.img
    
  5. マシンは初期化イメージとカーネルを受け取り解凍すると、カーネルを起動して、キックスタート設定ファイルを格納しているサーバーを含むブートローダー設定ファイル内にあるオプションを指定してキックスタートインストールを開始します。
  6. 次にこのキックスタート設定ファイルがマシンにインストールファイルの場所を指示します。
  7. 新しいマシンはキックスタート設定ファイル内で設定されるパラメーターに基づいて構築されます。

3.1.2. 前提条件

Provisioning エンタイトルメントはシステムのプロビジョニングが機能するために必要です。このエンタイトルメントがないと、Provisioning/Kickstarting のタブは Satellite に表示されません。
キックスタートを処理するには、組織のインフラストラクチャーも準備する必要があります。キックスタートプロファイルの作成前に、以下の点を考慮することができます。
  • DHCP サーバー。これはキックスタートには不要ですが、DHCP サーバーはキックスタートファイル内でのネットワーク設定の必要性を軽減します。また、ネットワークから起動することもできます。DHCP サーバーがなく、静的 IP アドレスを使用している場合、起動プロファイルの開発中に静的 IP を選択することが推奨されます。
  • FTP サーバー。HTTP 経由でキックスタートディストリビューションツリーをホストする代わりに、FTP サーバーを使用することができます。
ベアメタルからのキックスタートを実行している場合は、以下を行います。
  1. DHCP を設定して、必要なネットワーキングパラメーターとブートローダープログラムの場所を指定します。
  2. ブートローダー設定ファイル内で使用するカーネルと適切なカーネルオプションを特定します。

3.1.2.1. 必要なパッケージ

システムがカスタムディストリビューションを使用している場合には、以下のパッケージが必要となります。これらは、rhn-tools Red Hat Network(RHN)チャンネルから入手できます。
  • koan
  • spacewalk-koan
ご使用のカスタムチャンネルからこれらのパッケージにアクセスするには、既存の rhn-tools チャンネルのクローンを作成することをお勧めします。
Red Hat Satellite は、kernelinitrd のファイルがキックスタートツリー内の特定の場所にあることを想定しています。ただし、これらの場所は、アーキテクチャーによって異なります。以下の表は、それらの異なるロケーションについてまとめたものです。

表3.1 アーキテクチャー別の必要なディストリビューションファイル

アーキテクチャーカーネル初期 RAM ディスクイメージ
IBM System zTREE_PATH/images/kernel.imgTREE_PATH/images/initrd.img
PowerPCTREE_PATH/ppc/ppc64/vmlinuzTREE_PATH/ppc/ppc64/initrd.img
その他すべてのアーキテクチャーTREE_PATH/images/pxeboot/vmlinuzTREE_PATH/images/pxeboot/initrd.img

3.1.2.2. キックスタートツリー

キックスタートプロビジョニングを使用するには、ご使用の Satellite に最低でも 1 つのキックスタートツリーがインストールされている必要があります。キックスタートツリーのインストールは、自動または手動で行うことができます。

手順3.1 キックスタートツリーの自動インストール

Red Hat Satellite にベースチャンネルがあるすべてのディストリビューションで、キックスタートツリーを自動でインストールできます。これは、satellite-sync を介した通常のチャンネル同期の一環として行われます。
  1. キックスタートのベースとするディストリビューションを選択して、そのディストリビューションのベースチャンネルとそれに対応する Red Hat Network Tools のチャンネルを探します。
    例えば、x86 アーキテクチャーを採用した Red Hat Enterprise Linux 6 を使用する場合、rhel-x86_64-server-6 チャンネルとそれに対応する Red Hat Network Tools チャンネルである rhn-tools-rhel-x86_64-server-6 が必要になります。
  2. 接続された Satellite を使用している場合には、satellite-sync コマンドを使って Satellite サーバーを Red Hat サーバーと直接同期します。Satellite サーバーが接続されていない場合には、Red Hat サーバーから切断されたチャンネルダンプを取得して、それらと同期する必要があります。
  3. チャンネルを同期すると、そのディストリビューション用の対応するキックスタートツリーが自動的に作成されます。

手順3.2 キックスタートツリーの手動インストール

カスタムディストリビューションは通常 Red Hat がサポートしていませんが、このようなディストリビューションや Red Hat Enterprise Linux のベータバージョンをキックスタートするには、対応するキックスタートツリーを手動で作成する必要があります。キックスタートするディストリビューション用のインストール ISO が必要となります。
  1. インストール ISO をご使用の Satellite Server にコピーして、/mnt/iso にマウントします。
  2. ISO のコンテンツをカスタムのロケーションにコピーします。すべてのカスタムディストリビューションで、/var/satellite 内にディレクトリーを作成することが奨励されます。例えば、Red Hat Enterprise Linux 6 のベータディストリビューションのコンテンツを /var/satellite/custom-distro/rhel-x86_64-server-6-beta/ にコピーします。
  3. Red Hat Satellite の Web インターフェースを使用して、カスタムソフトウェアチャンネルを作成します。チャンネルソフトウェアチャンネルの管理新しいチャンネルの作成 で、適切な名前とラベルを付けて親チャンネルを作成します。上記で使用した例では、rhel-5.3-beta のラベルを使用します。
  4. rhnpush コマンドを使用して、ソフトウェアパッケージをツリーのロケーションから新規作成されたソフトウェアチャンネルにプッシュします。
    # rhnpush --server=http://localhost/APP -c 'rhel-6-beta' \  -d /var/satellite/custom-distro/rhel-x86_64-server-6-beta/Server/
    ご使用のディストリビューションによって、ツリー内のサブディレクトリーが異なります。
  5. ソフトウェアパッケージがプッシュされたら、rm コマンドを使用して、ツリーパス内で削除することができます。パッケージは、依然としてチャンネル内の Satellite サーバー上に格納され、ツリー内には必要なくなります。
    # rm /var/satellite/custom-distro/rhel-x86_64-server-6-beta/Server/*.rpm
    ソフトウェアパッケージをキックスタートツリー内に残すように選択することもできます。これにより、後日、yum コマンドを使用して、随時インストールできるようになります。
  6. Red Hat Satellite Web インターフェースを使用してディストリビューションを作成します。システムキックスタートディストリビューション新規のディストリビューションを作成 に進み、適切なラベルとフルツリーパス (例:/var/satellite/custom-distro/rhel-i386-server-5.3-beta/) を使用して、ディストリビューションを作成します。あらかじめ作成したベースチャンネルと正しいインストーラーの生成 (例:Red Hat Enterprise Linux 6) を選択します。作成を完了するには、キックスタートディストリビューションの作成 を選択します。
  7. 複数の環境とシステムにわたって同一ソフトウェアを維持するには、既存の Red Hat Enterprise Linux ベースチャンネルからの Red Hat Network Tools 子チャンネルを、新たに作成したベースチャンネルの子チャンネルとしてクローン作成できます。子チャンネルのクローン作成は以下の手順で行います。
    1. Satellite の Web インターフェースで、チャンネルソフトウェアチャンネルの管理チャンネルのクローン をクリックします。
    2. Clone From: (クローンする対象) ドロップダウンボックスからクローンする子チャンネルとその状態を選択します。
    3. チャンネルの作成 をクリックします。
    4. 必要な情報を記入し、クローンが作成された子チャンネルの上位になる親チャンネルを選びます。
    5. チャンネルの作成 をクリックします。

3.1.2.3. キックスタートのプロファイル

キックスタートのプロファイルは、インストールで使用する設定オプションを指定します。
キックスタートプロファイルは、ウィザード インターフェースを使用して作成することができます。この方法では、一連の質問に対して答えた回答に基づいてプロファイルが生成されます。キックスタートプロファイルは、raw メソッド を使用して作成することもできます。この方法だと、プロファイルの内容を完全にコントロールすることができるようになります。

手順3.3 ウィザードを使用したキックスタートプロファイルの作成

  1. システムキックスタート新規のキックスタートプロフィールを作成 を選択します。
  2. 適切な ラベル を提供し、希望する ベースチャンネルキックスタートツリー を選択します。
  3. 必要な 仮想化タイプ を選択します。仮想タイプについて詳しい情報は 「キックスタートのプロファイル」 を参照してください。次へ をクリックして続行します。
  4. キックスタートプロファイルのダウンロードロケーションを選択します。カスタムディストリビューションを使用している場合には、そのツリーのロケーションを URL (HTTP と FTP の両方をサポート) として入力します。それ以外の場合は、デフォルトのオプションを使用します。次へ をクリックして、続行します。
  5. root のパスワードを入力して、完了 をクリックし、プロファイルの作成を完了します。
  6. 完全なキックスタートプロファイルが作成されます。このプロファイルは、キックスタートファイル をクリックすると表示することができます。

手順3.4 raw メソッドを使用したキックスタートプロファイルの作成

  1. システムキックスタートキックスタートファイルをアップロード を選択します。
  2. 適切な ラベル を提供し、希望する ディストリビューション を選択します。
  3. 必要な 仮想化タイプ を選択します。仮想化タイプについての詳しい情報は、「キックスタートのプロファイル」 を参照してください。
  4. 既存のキックスタートファイルがある場合には、ファイルをアップロードします。そうでない場合には、ファイルの内容 テキストボックスにキックスタートプロファイルを書き込みます。
    スターティングポイントとして使用できる raw キックスタートの例は以下の通りです。
    install
    text
    network --bootproto dhcp
    url --url http://$http_server/ks/dist/org/1/ks-rhel-x86_64-server-6-6.4
    lang en_US
    keyboard us
    zerombr
    clearpart --all
    part / --fstype=ext3 --size=200 --grow
    part /boot --fstype=ext3 --size=200
    part swap --size=1000   --maxsize=2000
    bootloader --location mbr
    timezone America/New_York
    auth --enablemd5 --enableshadow
    rootpw --iscrypted $1$X/CrCfCE$x0veQO88TCm2VprcMkH.d0
    selinux --permissive
    reboot
    firewall --disabled
    skipx
    key --skip
    
    %packages
    @ Base
    
    %post
    $SNIPPET('redhat_register')
  5. Red Hat Satellite Sever は、指定されたディストリビューションをキックスタート内の url として処理しないため、url --url オプションをプロファイルに記載する必要があります。以下は、その例です。
    url --url http://$http_server/ks/dist/org/1/my_distro
    my_distro を ディストリビューションラベルに、1 をご使用の組織 ID に置き換えます。
  6. raw キックスタートプロファイルは、Satellite のホスト名の代わりに、$http_server を使用します。これは、キックスタートテンプレートがレンダリングされる際に自動的に記入されます。
  7. redhat_register スニペットを使用して登録処理が行われます。
raw キックスタート

図3.1 raw キックスタート

仮想化タイプ

すべてのキックスタートプロファイルには、仮想化タイプが関連付けされます。以下の表に、様々なオプションを簡単にまとめました。

表3.2 仮想化タイプ

タイプ説明用途
なし仮想化なしこのタイプは、Xen または KVM 以外 (例:VMware、Virtage など) の通常のプロビジョニング、ベアメタルインストール、および仮想化インストールに使用します。
KVM 仮想化ゲストKVM ゲストこのタイプは、KVM ゲストのプロビジョニングに使用します。
Xen 完全仮想化ゲストXen ゲストこのタイプは、Xen ゲストのプロビジョニングに使用します。

注記

このオプションには、ホスト上でのハードウェアサポートが必要ですが、ゲスト上では修正されたオペレーティングシステムは必要ありません。
Xen 準仮想化ゲストXen ゲストXen 準仮想化を使用する仮想ゲストのプロビジョニングに使用します。準仮想化は、最速の仮想化モードです。これには、システム CPU 上の PAE フラグと修正されたオペレーティングシステムが必要です。Red Hat Enterprise Linux 5 のみが、準仮想化でのゲストをサポートしています。
Xen 仮想化ホストXen ホストこのタイプは、Xen 準仮想化を使用する仮想ホストのプロビジョニングに使用します。ハードウェアに互換性がある場合には、Xen 準仮想化のゲストとホストがサポートされます。これは、Red Hat Enterprise Linux 5 のみでサポートされます。
Xen ホストとして使用するために作成されたキックスタートプロファイルには、%packages セクションに kernel-xen パッケージが含まれている必要があります
KVM ホストとして使用するために作成されたキックスタートプロファイルには、%packages セクションに qemu パッケージが含まれている必要があります。
完全仮想化システムには、コンピューターの BIOS メニューで仮想化サポートがオンになっている必要がある場合があります。

注記

キックスタートに関する詳しい情報は、『Red Hat Enterprise Linux インストールガイド』 の 『キックスタートのインストール』 のセクションを参照してください。

3.1.2.4. テンプレーティング

キックスタートの テンプレーティング により、ご使用のキックスタートファイル内に変数、スニペット、および for ループや if ステートメントなどのフロー制御ステートメントを追加することができます。これは、cheetah ツールを使用して行うことができます。
テンプレーティングは、以下のような様々な理由で有用となります。
  • 複数のキックスタート間のディスクのパーティショニングセクションなどの、キックスタートの特定のセクションを再利用することができます。
  • 複数のキックスタート全体にわたって、一貫して %post の動作を実行することができます。
  • DNS サーバー、Proxy サーバー、および Web サーバーといった複数の種類のサーバーのロール全体にわたってスニペットを定義することができます。例えば、Web サーバーには、以下のようなスニペットが定義されます。
    httpd
    mod_ssl
    mod_python
    Web サーバーのプロファイルを作成したい場合は、キックスタートファイルの %package セクションに Web サーバースニペットを追加します。プロファイルを Web サーバーと Proxy サーバーの両方にしたい場合は、パッケージセクションに両方のスニペットを記載します。Web サーバースニペットにもう 1 つのパッケージを追加したい場合 (例えば、mod_perl の場合) には、スニペットを更新すると、そのスニペットを使用しているすべてのプロファイルが動的に更新されます。
変数

テンプレーティングにより、キックスタートファイル全体で変数の定義を使用することができます。変数は、1 つのレベルで設定し、それ以下のレベルでは上書きされる設定が可能な継承の対象となります。このため、変数がシステムレベルで定義されている場合には、この変数がプロファイルまたはキックスタートツリーのレベルで定義された同一の変数に優先します。同様に、変数がプロファイルレベルで定義されている場合は、この変数がキックスタートツリーレベルで定義されている同一の変数に優先します。

注記

Satellite の同期時に作成されるキックスタートツリーなどの自動生成されるキックスタートツリーに対しては、キックスタートツリーの変数を定義できない点に注意してください。
スニペット

スニペットは、複数のキックスタートテンプレート間でコードの断片を再利用します。これらは、多くの行にまたがる可能性があり、その中に変数が含まれる場合もあります。スニペットは、$SNIPPET('snippet_name') のテキストを使用することにより、キックスタートプロファイルに組み入れることができます。特定のパッケージ一覧や、特定の %post スクリプト、またはキックスタートファイルに通常含まれる任意のテキスト用にスニペットを作成することもできます。

スニペットを管理するには、システムキックスタートキックスタートスニペット に進みます。
キックスタートスニペット のページには、編集はできなくても、どの組織でも使用することができるデフォルトのスニペットがいくつか表示されます。デフォルトのスニペットは、Red Hat Satellite Server 上に書き込まれたか、または Red Hat Satellite Server にアップロードされたキックスタートで使用することができます。デフォルトのスニペットは、Red Hat Satellite サーバーのファイルシステムの /var/lib/cobbler/snippets/ に格納されます。キックスタートプロファイルが作成された後に、スニペットがプロファイルにどのように組み込まれているかを確認するために /var/lib/rhn/kickstarts/ の内容をレビューします。
redhat_register スニペットは、マシンをキックスタートの一部として Red Hat Satellite Server に登録するために使用されるデフォルトのスニペットです。redhat_management_key と呼ばれる変数を使用して、マシンを登録します。このスニペットを使用するには、redhat_management_key の変数をシステム、プロファイルまたはディストリビューションのいずれかのレベルで設定してから、キックスタートの %post セクションに $SNIPPET('redhat_register') を追加します。Red Hat Satellite Server が生成したウィザードスタイルのキックスタートにはいずれも、%post のセクションにこのスニペットがすでに入っています。
カスタムスニペット タブでは、組織で使用するように作成されたスニペットを表示し、編集することができます。新しいスニペットの作成 をクリックすると、新しいスニペットを作成することができます。カスタムスニペットは、/var/lib/rhn/kickstarts/snippets/ ディレクトリーに格納されます。Red Hat Satellite は、スニペットを組織別に異なるディレクトリーに格納するため、カスタムスニペットは以下の例のようなファイル名で格納されます。1 は組織 ID です。
$SNIPPET('spacewalk/1/snippet_name')
キックスタートにカスタムスニペットを挿入するために使用すべきテキストを判断するには、スニペット一覧またはスニペットの詳細ページで、スニペットマクロ の列を探してください。

注記

スニペットは、グローバルレベルで存在し、同一の継承構造を変数として共有しません。ただし、スニペット内の変数を使用して、異なるシステムがキックスタートを要求する時の動作の仕方を変更することができます。
キックスタートスニペット

図3.2 キックスタートスニペット

特殊文字のエスケープ

$# の文字は、テンプレーティングの実行中に変数や制御フローを指定するために使用されます。スクリプト内で他の目的でこれらの文字が必要な場合には、これらをエスケープして、変数として認識されないようにする必要があります。これには、いくつかの方法があります。

  • テンプレーティング中に無視したい $ または # の各インスタンスの前にバックスラッシュ文字 (\) を配置します。
  • スクリプト全体を #raw ... #end raw 内にラップします。
    ウィザードスタイルのキックスタートを使用して作成された %pre および %post のスクリプトはすべて、デフォルトでは #raw...#end raw でラップされます。これは、%post または %pre スクリプトを編集する際に利用可能な テンプレート チェックボックスを使用して切り替えることができます。
  • スニペットの最初の行に #errorCatcher Echo を追加します。

例3.1 テンプレート内の特殊文字のエスケープ

この例では、キックスタートテンプレート内での特殊文字のエスケープ方法について説明します。
以下の bash スクリプトは、%post セクション内に挿入する必要があります。
%post
echo $foo > /tmp/foo.txt
$ をエスケープしないと、テンプレートエンジンは $foo という名前の変数を探そうとしますが、foo は変数としては存在しないため、失敗してしまいます。
$ をエスケープする最も簡単な方法は、バックスラッシュ文字 (\) を使用する方法です。
%post
echo \$foo > /tmp/foo.txt
これにより、\$foo$foo としてレンダリングされます。
2 つ目の方法は、以下のように、bash スクリプト全体を #raw ... #end raw 内にラップする方法です。
%post
#raw
echo $foo > /tmp/foo.txt
#end raw
最後の方法は、キックスタートテンプレートの 1 行目に #errorCatcher Echo を追加する方法です。これは、テンプレートエンジンに対して、存在しない変数はいずれも無視して、テキストを現状通りに出力するように指示します。このオプションは、ウィザードスタイルのキックスタートにすでに含まれていますが、手動で作成する raw キックスタートにも組み入れが可能です。

3.1.2.5. ベアメタルからのキックスタート

オペレーティングシステムがインストールされていないマシンや間違ったオペレーティングシステムがインストールされているマシンは、ベアメタル マシンと呼ばれます。ベアメタルからマシンをプロビジョニングする方法は 3 つあります。
  • 標準のオペレーティングシステムのインストールメディア
  • PXE ブート
  • PowerPC の Yaboot

手順3.5 インストールメディアからのブート

  1. インストールメディアをマシンに挿入します。このメディアは使用するキックスタートと適合している必要があります。例えば、キックスタートが ks-rhel-x86_64-server-6-6.4 キックスタートツリーを使用するように構成されている場合は、Red Hat Enterprise Linux 6.4 64 ビットのインストールメディアを使用します。
  2. ブートプロンプトが表示されたら、以下のコマンドでキックスタートをアクティブにします。
    linux ks=http://satellite.example.com/path/to/kickstart
  3. システムが起動したら、キックスタートファイルをダウンロードして、自動的にインストールします。

手順3.6 PXE ブート

PXE ブートを実行するには、各システムが BIOS レベルで PXE ブートをサポートしている必要があります。または、インストール後にシステムが静的に設定される場合でも、DHCP サーバーを必要とします。
  1. 重要

    ネットワーク上の別のシステムに DHCP サーバーがデプロイされている場合、DHCP の設定ファイルの編集には、DHCP サーバーへの管理アクセスが必要となります。
    前提条件

    最新の cobbler-loaders パッケージをインストールする必要があります。これは、PXE ブート前に pxelinux.0 ブートイメージが Satellite にインストールされており、利用可能であることを確認するためです。最新のバージョンをインストールするには、以下を実行します。

    # yum install cobbler-loaders
    マシンが複数のネットワーク上にある場合は、すべてのマシンが DHCP サーバーに接続できることを確認してください。これは、DHCP サーバーのマルチホーミングを行い (リアルまたはトランク VLAN を使用)、すべてのルーターまたはスイッチがネットワーク境界を越えて DHCP プロトコルを渡すように設定することで可能になります。
    Red Hat Satellite が管理するシステムの next-server アドレスを設定することで、DHCP サーバーが PXE サーバーをポイントするように構成します。
    インストール時にホスト名を使用するには、以下の行を追加して DHCP サーバーがドメインと IP アドレスをポイントするように設定します。
    option domain-name DOMAIN_NAME;
    option domain-name-servers IP_ADDRESS1, IP_ADDRESS2;
  2. DHCP サーバー上で、root ユーザーに切り替え、/etc/dhcpd.conf ファイルを開きます。PXE ブートインストールを実行するオプションを伴う新たなクラスを追加します。
    allow booting;
    allow bootp;
    class "PXE" {
      match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
      next-server 192.168.2.1;
      filename "pxelinux.0";
    }
    このクラスは、以下のような動作を実行します。
    1. bootp プロトコルによるネットワークブートを有効化します。
    2. PXE と呼ばれるクラスを作成します。ブートの優先順位で PXE が第 1 位に設定されているシステムの場合は、PXEClient として自動的に認識します。
    3. DHCP サーバーは、192.168.2.1 の IP アドレスの Cobbler サーバーにシステムを転送します。
    4. DHCP サーバーは、/var/lib/tftpboot/pxelinux.0 にあるブートイメージファイルを参照します。
    DHCP サーバーを再起動します。
    # service dhcpd restart
    
  3. Xinetd を設定します。Xinetd は、サービスのスイートを管理するデーモンです。これには、ブートイメージを PXE クライアントに転送するための FTP サーバーである、TFTP が含まれます。
    chkconfig コマンドを使用して Xinetd を有効にします。
    # chkconfig xinetd on
    もう一つの方法としては、root ユーザーに切り替えて、/etc/xinetd.d/tftp ファイルを開き、disable = yes の行を disable = no に変更する方法があります。
  4. Xinetd サービスを起動し、TFTP が pxelinux.0 ブートイメージに対してサービスを提供開始できるようにします
    # chkconfig --level 345 xinetd on
    # /sbin/service xinetd start
    chkconfig コマンドは、すべてのユーザーランレベルに対して xinetd サービスを有効にする一方で、/sbin/service コマンドは、xinetd を即時に有効にします。

手順3.7 Yaboot の起動

Yaboot は、PowerPC の Open Firmware 層内で動作するブートシステムです。キックスタートの実行には、ご使用の環境と PowerPC クライアントに設定が必要です。
  1. PowerPC クライアントの起動順序を設定します。これには、Open Firmware インターフェースにアクセスし、プロンプトで以下のコマンドを実行する必要があります。
    devalias コマンドを使用して、システム上のすべてのデバイスのエイリアスを表示します。
    0 > devalias
    ibm,sp              /vdevice/IBM,sp@4000
    disk                /pci@800000020000002/pci@2,4/pci1069,b166@1/scsi@1/sd@5,0
    network             /pci@800000020000002/pci@2/ethernet@1
    net                 /pci@800000020000002/pci@2/ethernet@1
    network1            /pci@800000020000002/pci@2/ethernet@1,1
    scsi                /pci@800000020000002/pci@2,4/pci1069,b166@1/scsi@0
    nvram               /vdevice/nvram@4002
    rtc                 /vdevice/rtc@4001
    screen              /vdevice/vty@30000000
     ok
    
    boot-device 環境変数をチェックして、現在の起動順序を表示します。
    0 > printenv boot-device
    -------------- Partition: common -------- Signature: 0x70 ---------------
    boot-device              /pci@800000020000002/pci@2,3/ide@1/disk@0 /pci@800000020000002/pci@2,4/pci1069,b166@1/scsi@1/sd@5,0
     ok
    
    最初に network デバイスで boot-device 環境変数を設定した後に既存のブートデバイスで設定し、network デバイスを起動順序の一番上に追加します。
    0 > setenv boot-device network /pci@800000020000002/pci@2,3/ide@1/disk@0 /pci@800000020000002/pci@2,4/pci1069,b166@1/scsi@1/sd@5,0
    
    これで、最初に network デバイスから起動するようシステムが設定されました。network に障害が発生した場合、システムの残りのデバイスは起動順序どおりに起動します。
  2. Satellite サーバーでシステム設定プロパティーを設定します。たとえば以下のコマンドを実行すると、ネットワーク上の特定の MAC アドレスを使用して myppc01 という新しいシステムが作成されます。
    # cobbler system add --name myppc01 --hostname myppc01.example.com --profile rhel6webserver--kopts "console=hvc0 serial" --interface 0 --mac 40:95:40:42:F4:46
    
    さらに、指定の MAC アドレスを基に Yaboot ブートローダーと設定のディレクトリーのセットも作成されます。たとえば、前述のコマンドを実行すると、以下のディレクトリーが作成されます。
    /var/lib/tftpboot/ppc/40-95-40-42-F4-46
    /var/lib/tftpboot/etc/40-95-40-42-F4-46
    
    最初のディレクトリー (/var/lib/tftpboot/ppc/40-95-40-42-F4-46) には、Yaboot に使用される ramdisk および vmlinuz ファイルが含まれます。2 つ目のディレクトリー (/var/lib/tftpboot/etc/40-95-40-42-F4-46) には、Yaboot の設定ファイル (yaboot.conf) が含まれます。
    Cobbler を使用したシステムのプロビジョニングに関する詳細は、「Cobbler へのシステムの追加」 を参照してください。
  3. DHCP サーバー上で root ユーザーに切り替え、/etc/dhcpd.conf ファイルを開きます。Yaboot のインストールを実行するためのオプションが含まれる新しいエントリーを追加します。例を以下に示します。
    allow booting;
    allow bootp;
    class "Yaboot" {
      match if substring(option vendor-class-identifier, 0, 9) = "AAPLBSDPC";
      next-server 192.168.2.1;
      filename "yaboot";
    }
    
    このクラスは、以下のような動作を実行します。
    1. bootp プロトコルによるネットワークブートを有効化します。
    2. Yaboot というクラスを作成します。起動順序で Yaboot が最優先になるようシステムが設定されている場合、fAAPLBSDPC として識別されます。
    3. DHCP サーバーは、192.168.2.1 の IP アドレスの Cobbler サーバーにシステムを転送します。
    4. DHCP サーバーは、以前 cobbler で作成された Yaboot イメージファイルを参照します。
    DHCP サーバーを再起動します。
    # service dhcpd restart
    
  4. Xinetd を設定します。Xinetd はサービスを管理するデーモンです。管理されるサービスには、ブートイメージを PowerPC クライアントに転送するために使用される FTP サーバーである TFTP が含まれます。
    chkconfig コマンドを使用して Xinetd を有効にします。
    # chkconfig xinetd on
    もう一つの方法としては、root ユーザーに切り替えて、/etc/xinetd.d/tftp ファイルを開き、disable = yes の行を disable = no に変更する方法があります。
  5. Xinetd サービスを起動し、TFTP が Yaboot ブートイメージの処理を開始できるようにします。
    # chkconfig --level 345 xinetd on
    # /sbin/service xinetd start
    chkconfig コマンドは、すべてのユーザーランレベルに対して xinetd サービスを有効にする一方で、/sbin/service コマンドは、xinetd を即時に有効にします。

3.1.3. アクティベーションキーの使用

アクティベーションキーの管理者(Satellite 管理者を含む) のロールを持つ Red Hat Network Management および Provisioning のお客様は、Red Hat Satellite Web ページからアクティベーションキーを生成することができます。これらのキーを使用してコマンドラインユーティリティである rhnreg_ks で Red Hat Enterprise Linux システムを登録し、このシステムに Red Hat Satellite サービスレベルのエンタイトルメントを付与し、特定のチャンネルやシステムグループにシステムをサブスクライブさせることができます。

注記

システムの詳細 ページの 再アクティベーション サブタブから作成したシステム固有のアクティベーションキーはシステム共通で再利用できないためこの一覧には含まれません。

手順3.8 アクティベーションキーを管理する

アクティベーションキーを生成するには:
  1. 左上のナビゲーションバーから システムアクティベーションキー の順に選択します。
  2. 右上の 新規のキーを作成 リンクをクリックします。

    警告

    以下に表示されているフィールドのほかに、キー フィールド自体も入力することができます。このユーザー定義の文字列を rhnreg_ks で指定すると、Satellite でクライアントシステムを登録できます。キーにはコンマを挿入しないでください。 これ以外の文字はすべて使用できます。コンマは複数のアクティベーションキーを 1 度に指定するときに区切り文字として使用されるため、問題になります。詳しくは 「アクティベーションキーの使用」 を参照してください。
  3. 次の情報を指定します。
    • 詳細 - 生成されたアクティベーションキーを識別し易くするためにユーザーが定義する説明になります。
    • 使用 - 一度にアクティベーションキーで登録できる登録システムの最大数です。使用を無制限にする場合は空白にします。システムプロファイルを 1 つ削除すると使用数が 1 つ減り、キーでシステムプロファイルを 1 つ登録すると、使用数が 1 つ増えます。
    • ベースチャンネル - キーの主要チャンネルになります。ベースチャンネルを選択しない場合はすべての子チャンネルを選択できるようになりますが、適用可能なチャンネルにしかシステムをサブスクライブさせることができません。
    • 付属エンタイトルメント - キーの補足的なエンタイトルメントになります。Monitoring、 Provisioning、Virtualization、および Virtualization Platform などが含まれます。このキーを使って、すべてのシステムにこれらのエンタイトルメントが付与されます。
    • Universal default - このキーを組織のプライマリーアクティベーションキーとして考慮するかどうか。指定のアクティベーションキーを使用せずに Satellite に登録されるクライアントには Universal Default アクティベーションキーが使用されます。Universal Default アクティベーションキーには基本のシステム登録の標準または最低限のチャンネルとエンタイトルメントが含まれることが理想です。Universal Default アクティベーションキーの詳細は https://access.redhat.com/solutions/1140083 を参照してください。
    アクティベーションキーの作成 をクリックします。
固有のキーを作成すると、それはアクティベーションキーの一覧にキーが使用された回数と共に表示されます。この一覧は アクティベーションキー管理者のみが閲覧できます。この時点で、子チャンネルとグループをキーと関連付けて、キーで登録したシステムが自動的にサブスクライブされるようにすることができます。
チャンネルまたはグループなどのキーについての情報を変更するには、キーの一覧の説明部分をクリックし、該当タブ内で修正を行なってから、アクティベーションキーの更新 ボタンをクリックします。キーからチャンネルとグループの関連付けを解除するには、Ctrl キーを押しながら強調表示された名前をクリックしてそれぞれのメニューの選択を解除していきます。キーを完全に削除するには、編集ページの右上にある キーの削除 リンクをクリックします。
アクティベーションキーで登録する際、システムがベースチャンネルにサブスクライブするように設定することができます。ただし、アクティベーションキーがシステムのオペレーティングシステムと互換性がないベースチャンネルを指定していると登録は失敗します。例えば、Red Hat Enterprise Linux 6 for x86_64 システムは、Red Hat Enterprise Linux 5 for x86_64 ベースチャンネルを指定しているアクティベーションキーでは登録できません。システムのカスタムベースチャンネルへのサブスクライブは常に許可されます。
キーを使ってシステムのアクティベーションを無効にするには、キーの一覧内の 有効 列の下にある該当チェックボックスの選択を解除します。キーは、このチェックボックスを選択すると再度有効にできます。変更後は、このページの右下にある アクティベーションキーの更新 ボタンをクリックします。

手順3.9 複数のアクティベーションキーを一度に使用する

Provisioning エンタイトルメントでは、複数のアクティベーションキーをコマンドラインまたは単独のキックスタートプロファイル内に組み込むことができます。これにより、必要なシステムに固有のキーを新たに再作成することなくそれぞれのキーの特徴を集約でき、登録およびキックスタートのプロセスを単純化できると共にキーの一覧が増えすぎないようにすることができます。
複数のアクティベーションキーで登録する際には注意が必要です。一部の値が競合すると登録が失敗する原因になります。ただし、ソフトウェアパッケージ、ソフトウェアの子チャンネル、および設定チャンネルの値が競合しても、登録が失敗する原因にはなりません。残りのプロパティ間の競合は次のような方法で解決されます。
  • ベースソフトウェアチャンネル - 登録が失敗します。
  • エンタイトルメント - 登録が失敗します。
  • 設定フラグを有効にする (enable config flag) - 設定管理が設定されます。
  1. 個々のアクティベーションキーを複数作成します。手順は 「アクティベーションキーの使用」 を参照してください。
  2. コマンドライン上では、rhnreg_ks のオプションの場合のように、すべてのアクティベーションキーをコンマで区切って組み込みます。
    # rhnreg_ks --activationkey=activationkey1,activationkey2,activationkey3
    キックスタートの詳細 ページの ポスト (Post) タブ内に追加することも可能です。手順は 「キックスタートのプロファイル」 を参照してください。

警告

システム固有のアクティベーションキーを他のアクティベーションキーと併用しないでください。これを行うと登録に失敗します。

3.1.4. Cobbler の使用

Red Hat Satellite には管理者がシステムのインストールとインフラストラクチャーの提供を集中管理できるようにする Cobbler サーバーが搭載されています。Cobbler は、無人のシステムインストールを行うさまざまな方法を提供するインストールサーバーであり、サーバーやワークステーションのインストール、完全仮想化または凖仮想化の設定によるゲストシステムなどのインストールを行います。
Cobbler にはインストール前の準備、キックスタートファイルの管理、インストール環境の管理などに役立つツールがいくつか備えられています。

警告

本セクションでは、Cobbler のサポートされている使用法について説明します。これには以下の機能が含まれます。
  • Cheetah のテンプレートエンジンとキックスタートスニペットを使用したキックスタートのテンプレート作成および管理の機能
  • クライアント側のツールである koan を使った仮想マシンゲストのインストールを自動化する機能
  • cobbler check コマンドを使用したインストール環境の分析の機能
  • x86_64 アーキテクチャーの Satellite システムの cobbler buildiso コマンドによる PXE のようなメニューを使用してインストール ISO を構築する機能
Red Hat は、正式なドキュメンテーションに記載されているか、Satellite Web UI および API または Red Hat カスタマーポータルの Supported Cobbler Usage という件名の下で記載されている記事で公開されている Cobbler 機能のみをサポートしています。

3.1.4.1. Cobbler の要件

Cobbler を PXE ブートサーバーとして使用する場合は、以下のガイドラインを確認してください。
  • PXE でのシステムインストールを行う際に Cobbler を使用する場合、tftp-server パッケージをインストールし、これを設定します。
  • インストールを行うために Cobbler を使用してシステムを PXE ブートを行うには、Satellite サーバーが Cobbler による PXE ブートを行うために DHCP サーバーとして動作するか、またはネットワーク DHCP サーバーにアクセスできる必要があります。/etc/dhcp.conf を編集して next-server を Cobbler サーバーのホスト名または IP アドレスに変更します。
  • 最新の cobbler-loaders パッケージをインストールする必要があります。これは、PXE ブートの前に pxelinux.0 ブートイメージが Satellite にインストールされており、利用可能であることを確認するためです。最新バージョンをインストールするには、以下を実行します。
    # yum install cobbler-loaders
3.1.4.1.1. Cobbler と DHCP の設定
Cobbler は、PXE ブートサーバーを使ったネットワークによる起動を行うように設定されたベアメタルのキックスタートインストールに対応しています。Cobbler インストールサーバーを正しく実装するには、管理者はネットワークの DHCP サーバーにアクセス権を持っているか、または Cobbler サーバー自体に DHCP を実装する必要があります。

手順3.10 既存の DHCP サーバーを設定する

ネットワーク上の別のシステムで DHCP サーバーをデプロイしている場合、DHCP 設定ファイルが Cobbler サーバーと PXE ブートイメージをポイントするよう変更を行うために DHCP サーバーへの管理アクセスが必要になります。
  1. DHCP サーバーに root としてログインします。
  2. /etc/dhcpd.conf ファイルを編集し、PXE ブートインストールを実行するためのオプションを指定して新規のクラスを追加します。例えば、以下のようになります。
    allow booting;
    allow bootp;
    class "PXE" {
    match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
    next-server 192.168.2.1;
    filename "pxelinux.0";
    }
    上記の例の各動作を以下に示します。
    1. 管理者は bootp プロトコルを使用してネットワークによる起動を有効にします。
    2. 次に、PXE というクラスを作成します。PXE が起動順序で一番目に設定されているシステムの場合は、それ自体を PXEClient として認識します。
    3. DHCP サーバーはシステムを 192.168.2.1 にある Cobbler サーバーに転送します。
    4. 最後に DHCP サーバーは pxelinux.0 ブートローダーファイルを取り込みます。
3.1.4.1.2. Cobbler 用の Xinetd と TFTP の設定
Xinetd は、TFTP などのサービス群を管理するデーモンです。TFTP とは起動イメージを PXE クライアントに転送する際に使用される FTP サーバーです。TFTP を設定するには以下を実行します。
  1. root としてログインします。
  2. /etc/xinetd.d/tftp を編集して、以下のようにオプションを変更します。
    disable = yes
    変更後
    disable = no
  3. xinetd サービスを起動するには:
    # chkconfig --level 345 xinetd on
    # /sbin/service xinetd start
3.1.4.1.3. Cobbler サポート用の SELinux と IPTables の設定
Red Hat Enterprise Linux はデフォルトで SELinux にも対応できるようインストールが行われており、セキュアなファイアウォールが有効になっています。Red Hat Enterprise Linux サーバーが Cobbler を使用するよう正しく設定するには、まず Cobbler サーバーとの接続を許可するようシステムとネットワークセーフガードを設定する必要があります。

手順3.11 SELinux で Cobbler サポートを有効にする

Cobbler のサポート用に SELinux を有効にするには:
  1. root としてログインします。
  2. SELinux の Boolean が HTTPD Web サービスコンポーネントを許可するように設定するには:
    # setsebool -P httpd_can_network_connect true
    -P のスイッチは不可欠です。これによって、HTTPD 接続は再起動しても永続的に有効となります。

手順3.12 IPTable の設定

SELinux を設定したら、IPTables を設定して Cobbler サーバー上での送受信のネットワークトラフィックを許可する必要があります。
  1. root としてログインします。
  2. 以下のルールを既存の IPTables ファイアウォールのルールセットに追加して、Cobbler 関連のポートを開きます。
    • TFTP 用:
      # /sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 69 -j ACCEPT
      # /sbin/iptables -A INPUT -m state --state NEW -m udp -p udp --dport 69 -j ACCEPT
    • HTTPD 用:
      # /sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
      # /sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
    • Cobbler および Koan XMLRPC 用:
      # /sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 25151 -j ACCEPT
  3. ファイアウォールの設定を保存するには:
    # /sbin/iptables-save > /etc/sysconfig/iptables

3.1.4.2. /etc/cobbler/settings での Cobbler の設定

Cobbler の設定は /etc/cobbler/settings ファイル内で実行されます。このファイルには数種の設定可能な設定が含まれ、Cobbler の機能に対して各設定がどのように影響を与えるか、またユーザーの環境に応じて設定の変更が推奨されるかどうかなど、各設定ごとに詳細な説明が記載されています。
ほとんどの設定はデフォルトのままで構いません。Cobbler は設計通りに実行されます。Cobbler の設定方法の詳細については、各設定が詳細に記載されている /etc/cobbler/settings ファイルをご覧ください。

3.1.4.3. Cobbler サービスの同期と起動

  1. Cobbler サービスを起動する前に、Cobbler サービスでチェックを実行し、すべての要件が組織のニーズに応じて設定されていることを確認します。
    # cobbler check
  2. 次のコマンドで Satellite サーバーを起動するには:
    # /usr/sbin/rhn-satellite start

    警告

    Satellite サービスに依存しない cobblerd サービスを起動/停止しないでください。エラーやその他の問題が発生する原因となる可能性があります。
    Red Hat Satellite の起動/停止には、/usr/sbin/rhn-satellite を必ず使用してください。

3.1.4.4. Cobbler へのディストリビューションの追加

すべての要件を満たされていて Cobbler が実行中の場合は、ディストリビューションを Cobbler に追加できるようになります。
cobbler を使用して、次の構文でディストリビューションを作成します。
# cobbler distro add --name=string --kernel=path --initrd=path
--name=string スイッチは 1 つのディストリビューションを他と区別するために使用するラベルです (例: rhel5server)。
--kernel=path スイッチは、カーネルイメージファイルへのパスを指定します。
--initrd=path スイッチは、初期の ramdisk (initrd) イメージファイルへのパスを指定します。

3.1.4.5. Cobbler へのプロファイルの追加

Cobbler にディストリビューションを追加したら、今度はプロファイルを Cobbler に追加することができます。
Cobbler プロファイルはキックスタートのファイルのように追加オプションに対して任意のディストリビューションの関連付けを行います。プロファイルはプロビジョニングの核となるユニットであり、追加されるディストリビューションにはそれぞれ少なくとも 1 つの Cobbler プロファイルがなければなりません。例えば、Web サーバーとデスクトップの設定用に 2 種類のプロファイルが作成される場合があります。いずれのプロファイルも同じディストリビューションを使用しますが、インストールタイプは異なります。
キックスタートプロファイルを Red Hat Satellite インターフェースから作成し、設定する方法について詳しくは、「キックスタートのプロファイル」 を参照してください。
cobbler を使用して、次の構文でプロファイルを作成します。
# cobbler profile add --name=string --distro=string [--kickstart=url] [--virt-file-size=gigabytes] [--virt-ram=megabytes]
--name=string は、 rhel5webserverrhel4workstation などプロファイルの固有のラベルとなります。
--distro=string スイッチは、この特定のプロファイルに使用されるディストリビューションを指定します。ディストリビューションは、「Cobbler へのディストリビューションの追加」 で追加されました。
--kickstart=url オプションは、キックスタートファイルがある場合はその場所を指定します。
--virt-file-size=gigabytes オプションを使用すると仮想ゲストファイルイメージのサイズを設定することができます。指定しないとデフォルトの 5 ギガバイトになります。
--virt-ram=megabytes オプションは、仮想ゲストシステムが消費できる物理 RAM の量をメガバイトで指定します。指定がない場合はデフォルトの 512 メガバイトになります。

3.1.4.6. Cobbler へのシステムの追加

Cobbler 用のディストリビューションとプロファイルを作成した後に、システムを Cobbler に追加します。システムの記録や、システムで実行するよう割り当てられた cobbler プロファイルに基づいて、クライアントにあるそれぞれのハードウェアのマッピングを行います。

注記

koan と PXE メニューのみでプロビジョニングを行なっている場合、システム記録を作成する必要はありません。ただし、以下の場合にシステム記録は役に立ちます。
  • システム固有のキックスタートのテンプレーティングが必要である。
  • 特定のシステムが常に特定のコンテンツのセットを受信する。
  • 特定のクライアント用に特定のロールがある。
以下のコマンドでシステムを Cobbler 設定に追加できます。
# cobbler system add --name=string --profile=string --mac-address=AA:BB:CC:DD:EE:FF
--name=stringengineeringserverfrontofficeworkstation などのシステムに固有となるラベルです。
--profile=string は、「Cobbler へのプロファイルの追加」 で追加されたプロファイル名の 1 つを指定します。
--mac-address=AA:BB:CC:DD:EE:FF オプションは、指定 MAC アドレスを持つシステムがキックスタートされると、そのシステム記録に関連するプロファイルに自動的にプロビジョニングが行われます。
ホスト名や IP アドレスの設定などオプションの詳細については、シェルプロンプトで man cobbler と入力して Cobbler man ページを参照してください。

重要

default という名前を持つシステムには特別な機能があります。未定義のシステムをすべて設定し、PXE 経由で特定のプロファイルを使用します。default システムがないと、PXE は未設定のシステム対してローカルブートになります。以下のように、名前とプロファイルとしてのみ default を含めます。
# cobbler system add --name=default --profile=rhel5webserver

3.1.4.7. Cobbler テンプレートの使用

Red Hat Satellite web インターフェース内で、キックスタートディストリビューションとプロファイルで使用する変数を作成するための各種の機能を使用できます。
キックスタートファイルでの テンプレート作成 に対応するために Satellite 内のインフラストラクチャーに加えられた変更の一部として、キックスタートの変数があります。キックスタートファイルのコンテキストでは、テンプレートとは特定のキックスタートを作成するのではなく実際のキックスタートファイルをビルドするため使用される詳細内容を保持するファイルのことです。
これらのテンプレートは、独自の変数や対応する値を持つ各種のプロファイルとシステムで共有されます。これらの変数がテンプレートを修正し、テンプレートエンジン と呼ばれるソフトウェアがそのテンプレートと変数データを使用に適したキックスタートファイルに構文解析します。Cobbler は Cheetah と呼ばれる高度なテンプレートエンジンを使用し、テンプレート、変数、およびスニペットのサポートを提供します。
テンプレートを使用する利点は以下のようになります。
  • 各状況に合わせて個別のキックスタートを手作業で作成したり重複した作業を行ったりすることなく、大量のプロファイルやシステムの作成と管理を行えるようにする強固な機能
  • テンプレートは複雑性を増してループや条件、他の拡張機能、および構文などを伴う場合がある一方、こうした複雑性が伴うことなく単純にキックスタートファイルの作成にテンプレートを使用することもできます。
3.1.4.7.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=$net_dev --bootproto=static --ip=$ip_addr --netmask=255.255.255.0 --gateway=$my_gateway --nameserver=$my_nameserver
これらの変数はキックスタートプロファイルの変数またはシステム詳細の変数で設定される値で置き換えられます。プロファイルとシステム詳細の両方で同じ変数が定義されている場合は、システムの変数が優先されます。
3.1.4.7.2. キックスタートスニペット
キックスタートの全テンプレートとプロファイルで同一の共通の設定がある場合は、Cobbler の スニペット 機能を使ってコードの再使用という利点を活用することができます。
キックスタートのスニペットとはキックスタートコードのセクションであり、Cobbler によって構文解析される $SNIPPET() 関数で呼び出し、その関数呼び出しをコードスニペットの内容に置き換えることができます。
例えば、次のように全サーバーに対して共通となるハードドライブのパーティション設定があるとします。
clearpart --all
part /boot --fstype ext3 --size=150 --asprimary
part / --fstype ext3 --size=40000 --asprimary
part swap --recommended

part pv.00 --size=1 --grow

volgroup vg00 pv.00
logvol /var --name=var vgname=vg00 --fstype ext3 --size=5000
このスニペットを利用して my_partition などのファイルに保存し、Cobber がアクセスできるようこのファイルを /var/lib/cobbler/snippets/ に配置します。
次に、キックスタートテンプレート内の $SNIPPET() 関数でこの部分を利用することができます。例えば、以下のようになります。
$SNIPPET('my_partition')
この関数を呼び出した場合は常に、Cheetah 構文解析ツールによってこの関数が my_partition ファイル内に含まれているコードのスニペットに置き換えられます。

3.1.4.8. Koan の使用

仮想マシン上でゲストのプロビジョニングを行っているか、または実行中のシステムに新規のディストリビューションを再インストールしている場合、koan は Cobbler と連携して複数のシステムのプロビジョニングを行います。
3.1.4.8.1. Koan の使用による仮想システム群のプロビジョニング
「Cobbler へのプロファイルの追加」 の説明どおりに仮想マシンのプロファイルを作成した場合、koan を使用して、システム上での仮想ゲストのインストールを開始できます。
例えば、以下のような Cobbler プロファイルを作成したとします。
# cobbler add profile --name=virtualfileserver --distro=rhel-i386-server-5 --virt-file-size=20 --virt-ram=1000
このプロファイルは、20GB のゲストイメージサイズでシステム RAM には 1 GB が割り当てられた Red Hat Enterprise Linux 5 を実行しているファイルサーバー用となります。
仮想ゲストのシステムプロファイル名を検索する場合は koan で以下を実行します。
# koan --server=hostname --list=profiles
このコマンドは cobbler profile add で作成された利用可能なプロファイルをすべて一覧表示します。
次に、イメージファイルを作成して仮想ゲストシステムのインストールを開始するプロセスを開始します。
# koan --virt --server=cobbler-server.example.com --profile=virtualfileserver --virtname=marketingfileserver
このコマンドは、仮想ゲストシステムが virtualfileserver プロファイルを使用して Cobbler サーバー (ホスト名 cobbler-server.example.com) から作成されることを指定しています。 virtname オプションは仮想ゲストのラベルを指定しています。デフォルトではシステムの MAC アドレスでラベル付けされます。
仮想ゲストのインストールが完了すると、他の仮想ゲストシステムと同じように使用できます。
3.1.4.8.2. Koan の使用による実行中システムの再インストール
マシンの実行中に別のオペレーティングシステムでそのマシンを再インストールする必要がある場合があります。 koan は利用可能な Cobbler プロファイルから新規インストールで実行中のシステムを置き換えることができます。
実行中のシステムを置き換えて新規のインストールを行う場合には、そのシステム自体で 以下のコマンドを実行します。
# koan --replace-self --server=hostname --profile=name
置き換えを行う実行中のシステムでこのコマンドを実行すると、プロビジョニングのプロセスが開始され、 --server=hostname 内で指定した Cobbler サーバーの --profile=name にあるプロファイルを使ってそれ自体のシステムの置き換えを行います。

3.1.4.9. Cobbler による ISO の構築

環境によっては、PXE サポートがない場合があります。この場合は、cobbler buildiso コマンドが、ディストリビューションとカーネルの一式、および PXE ネットワークインストールのようなメニューを含むブート ISO イメージを作成する機能を提供します。
--iso オプションを使用してブート ISO の名前と出力の場所を定義します。
# cobbler buildiso --iso=/path/to/boot.iso
デフォルトでは、ブート ISO にすべてのプロファイルとシステムが含まれます。--profiles--systems オプションを使用して、これらのプロファイルとシステムを制限します。
# cobbler buildiso --systems="system1,system2,system3" \
    --profiles="profile1,profile2,profile3"

注記

cobbler buildiso コマンドによる ISO の構築は、s390x アーキテクチャー以外のすべてのアーキテクチャーでサポートされます。

注記

cobbler buildiso --standalone オプションは Red Hat が提供するキックスタートツリーではサポートされません。この standalone オプションは、Cobbler サーバーへのネットワーク接続のないマシンのプロビジョニングに使用されますが、Satellite のプロビジョニングによって提供される追加機能にはすべて Satellite へのネットワーク接続が必要です。Red Hat Enterprise Linux をネットワーク接続のないマシンにインストールする必要がある場合は、ISO イメージをダウンロードして Red Hat Enterprise Linux をインストールしてください。