Red Hat Training
A Red Hat training course is available for Red Hat Satellite
第3章 システムのプロビジョニング
3.1. Red Hat Satellite を使用したプロビジョニング
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 のシステムをインストールするプロセス。厳密に言えば、キックスタート とは、コンテンツの簡潔な記述とマシンの設定をインストーラーに提供できるようにし、それに基づいて動作を実行する、Anaconda インストールプログラムのメカニズムを指します。この簡潔なシステムの定義は、キックスタートプロファイル (Kickstart profile)と呼ばれています。
- キックスタートプロファイル
- キックスタートファイルは、マシンのキックスタートに必要なすべてのオプションを記載した、テキスト形式のファイルです。これには、パーティショニング情報、ネットワーク設定、インストールするパッケージが含まれます。Satellite の実装は、Cobbler のキックスタートへの機能強化をベースに構築されているため、Red Hat Satellite では キックスタートプロファイルは従来の Anaconda キックスタートの定義のスーパーセットとなります。キックスタートプロファイルはキックスタートツリーが存在することを前提としています。
- キックスタートツリー
- マシンをキックスタートするのに必要なソフトウェアとサポートファイル。これは、「インストールツリー」とも呼ばれることもあります。通常、これは、特定のリリースで出荷されたインストールメディアから取り出したディレクトリー構造とファイルです。Cobbler の用語では、キックスタートツリーはディストリビューションの一部となっています。
- PXE (Preboot eXecution Environment)
- ターゲットマシン自体の事前設定なしで、電源投入時にベアメタルマシン (通常は物理マシンまたは 実機) のキックスタートを可能にする低レベルのプロトコル。PXE は DHCP サーバーに依存して、ブートストラップサーバーに関する情報をクライアントに提供します。PXE を使用するには、ターゲットマシンのファームウェアでサポートされている必要があります。PXE は新しい物理マシンのブートや、Satellite に未登録のマシンの再インストールに非常に役立ちますが、PXE なしで仮想化を使用したり、Satellite の機能を再インストールすることも可能です。
プロビジョニングシナリオ
- 新規インストール
- オペレーティングシステムが未インストールのシステム (別名: ベアメタル インストール) のプロビジョニング
- 仮想インストール
- Satellite は、KVM、Xen 完全仮想化ゲスト、および Xen 準仮想化ゲストをサポートしています。
- 再プロビジョニング
- 物理およびゲストシステムは、いずれも再プロビジョニングが可能です。ただし、同一の Satellite インスタンスに登録されていることを条件とします。「再プロビジョニング」 をご参照ください。
3.1.1. キックスタートの流れ
- ネットワーク上に配置して電源をオンにすると、マシンの PXE 論理がその MAC アドレスと発見されるべき要求をブロードキャストします。
- 静的 IP アドレスを使用しない場合は、DHCP サーバーがその発見要求を認識してから新しいマシンを起動するために必要となるネットワーク情報を提供します。これには、IP アドレス、使用されるデフォルトのゲートウェイ、ネットワークのネットマスク、ブートローダープログラムを格納している TFTP または HTTP サーバーの IP アドレス、そのプログラムのフルパスとファイル名 (サーバーの root に相対的) などが含まれます。
- マシンはネットワーキング情報を適用してブートローダープログラムを要求するためにサーバーとのセッションを開始します。
- ブートローダーはロードされると、ブートローダー自体がロードされたサーバーからその設定ファイルを検索します。このファイルは、初期 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
- マシンは初期化イメージとカーネルを受け取り解凍すると、カーネルを起動して、キックスタート設定ファイルを格納しているサーバーを含むブートローダー設定ファイル内にあるオプションを指定してキックスタートインストールを開始します。
- 次にこのキックスタート設定ファイルがマシンにインストールファイルの場所を指示します。
- 新しいマシンはキックスタート設定ファイル内で設定されるパラメーターに基づいて構築されます。
3.1.2. 前提条件
- DHCP サーバー。これはキックスタートには不要ですが、DHCP サーバーはキックスタートファイル内でのネットワーク設定の必要性を軽減します。また、ネットワークから起動することもできます。DHCP サーバーがなく、静的 IP アドレスを使用している場合、起動プロファイルの開発中に静的 IP を選択することが推奨されます。
- FTP サーバー。HTTP 経由でキックスタートディストリビューションツリーをホストする代わりに、FTP サーバーを使用することができます。
- DHCP を設定して、必要なネットワーキングパラメーターとブートローダープログラムの場所を指定します。
- ブートローダー設定ファイル内で使用するカーネルと適切なカーネルオプションを特定します。
3.1.2.1. 必要なパッケージ
rhn-tools
Red Hat Network(RHN)チャンネルから入手できます。
koan
spacewalk-koan
rhn-tools
チャンネルのクローンを作成することをお勧めします。
kernel
と initrd
のファイルがキックスタートツリー内の特定の場所にあることを想定しています。ただし、これらの場所は、アーキテクチャーによって異なります。以下の表は、それらの異なるロケーションについてまとめたものです。
表3.1 アーキテクチャー別の必要なディストリビューションファイル
アーキテクチャー | カーネル | 初期 RAM ディスクイメージ |
---|---|---|
IBM System z | TREE_PATH/images/kernel.img | TREE_PATH/images/initrd.img |
PowerPC | TREE_PATH/ppc/ppc64/vmlinuz | TREE_PATH/ppc/ppc64/initrd.img |
その他すべてのアーキテクチャー | TREE_PATH/images/pxeboot/vmlinuz | TREE_PATH/images/pxeboot/initrd.img |
3.1.2.2. キックスタートツリー
手順3.1 キックスタートツリーの自動インストール
satellite-sync
を介した通常のチャンネル同期の一環として行われます。
- キックスタートのベースとするディストリビューションを選択して、そのディストリビューションのベースチャンネルとそれに対応する 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
が必要になります。 - 接続された Satellite を使用している場合には、
satellite-sync
コマンドを使って Satellite サーバーを Red Hat サーバーと直接同期します。Satellite サーバーが接続されていない場合には、Red Hat サーバーから切断されたチャンネルダンプを取得して、それらと同期する必要があります。 - チャンネルを同期すると、そのディストリビューション用の対応するキックスタートツリーが自動的に作成されます。
手順3.2 キックスタートツリーの手動インストール
- インストール ISO をご使用の Satellite Server にコピーして、
/mnt/iso
にマウントします。 - ISO のコンテンツをカスタムのロケーションにコピーします。すべてのカスタムディストリビューションで、
/var/satellite
内にディレクトリーを作成することが奨励されます。例えば、Red Hat Enterprise Linux 6 のベータディストリビューションのコンテンツを/var/satellite/custom-distro/rhel-x86_64-server-6-beta/
にコピーします。 - Red Hat Satellite の Web インターフェースを使用して、カスタムソフトウェアチャンネルを作成します。チャンネル → ソフトウェアチャンネルの管理 → 新しいチャンネルの作成 で、適切な名前とラベルを付けて親チャンネルを作成します。上記で使用した例では、rhel-5.3-beta のラベルを使用します。
rhnpush
コマンドを使用して、ソフトウェアパッケージをツリーのロケーションから新規作成されたソフトウェアチャンネルにプッシュします。# rhnpush --server=http://localhost/APP -c 'rhel-6-beta' \ -d /var/satellite/custom-distro/rhel-x86_64-server-6-beta/Server/
ご使用のディストリビューションによって、ツリー内のサブディレクトリーが異なります。- ソフトウェアパッケージがプッシュされたら、
rm
コマンドを使用して、ツリーパス内で削除することができます。パッケージは、依然としてチャンネル内の Satellite サーバー上に格納され、ツリー内には必要なくなります。# rm /var/satellite/custom-distro/rhel-x86_64-server-6-beta/Server/*.rpm
ソフトウェアパッケージをキックスタートツリー内に残すように選択することもできます。これにより、後日、yum
コマンドを使用して、随時インストールできるようになります。 - Red Hat Satellite Web インターフェースを使用してディストリビューションを作成します。システム → キックスタート → ディストリビューション → 新規のディストリビューションを作成 に進み、適切なラベルとフルツリーパス (例:
/var/satellite/custom-distro/rhel-i386-server-5.3-beta/
) を使用して、ディストリビューションを作成します。あらかじめ作成したベースチャンネルと正しいインストーラーの生成 (例:Red Hat Enterprise Linux 6) を選択します。作成を完了するには、キックスタートディストリビューションの作成 を選択します。 - 複数の環境とシステムにわたって同一ソフトウェアを維持するには、既存の Red Hat Enterprise Linux ベースチャンネルからの Red Hat Network Tools 子チャンネルを、新たに作成したベースチャンネルの子チャンネルとしてクローン作成できます。子チャンネルのクローン作成は以下の手順で行います。
- Satellite の Web インターフェースで、チャンネル → ソフトウェアチャンネルの管理 → チャンネルのクローン をクリックします。
- Clone From: (クローンする対象) ドロップダウンボックスからクローンする子チャンネルとその状態を選択します。
- チャンネルの作成 をクリックします。
- 必要な情報を記入し、クローンが作成された子チャンネルの上位になる親チャンネルを選びます。
- チャンネルの作成 をクリックします。
3.1.2.3. キックスタートのプロファイル
手順3.3 ウィザードを使用したキックスタートプロファイルの作成
- システム → キックスタート → 新規のキックスタートプロフィールを作成 を選択します。
- 適切な ラベル を提供し、希望する ベースチャンネル と キックスタートツリー を選択します。
- キックスタートプロファイルのダウンロードロケーションを選択します。カスタムディストリビューションを使用している場合には、そのツリーのロケーションを URL (HTTP と FTP の両方をサポート) として入力します。それ以外の場合は、デフォルトのオプションを使用します。次へ をクリックして、続行します。
- root のパスワードを入力して、完了 をクリックし、プロファイルの作成を完了します。
- 完全なキックスタートプロファイルが作成されます。このプロファイルは、キックスタートファイル をクリックすると表示することができます。
手順3.4 raw メソッドを使用したキックスタートプロファイルの作成
- システム → キックスタート → キックスタートファイルをアップロード を選択します。
- 適切な ラベル を提供し、希望する ディストリビューション を選択します。
- 必要な 仮想化タイプ を選択します。仮想化タイプについての詳しい情報は、「キックスタートのプロファイル」 を参照してください。
- 既存のキックスタートファイルがある場合には、ファイルをアップロードします。そうでない場合には、ファイルの内容 テキストボックスにキックスタートプロファイルを書き込みます。スターティングポイントとして使用できる 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')
- Red Hat Satellite Sever は、指定されたディストリビューションをキックスタート内の
url
として処理しないため、url --url
オプションをプロファイルに記載する必要があります。以下は、その例です。url --url http://$http_server/ks/dist/org/1/my_distro
my_distro
を ディストリビューションラベルに、1
をご使用の組織 ID に置き換えます。 - raw キックスタートプロファイルは、Satellite のホスト名の代わりに、
$http_server
を使用します。これは、キックスタートテンプレートがレンダリングされる際に自動的に記入されます。 redhat_register
スニペットを使用して登録処理が行われます。
図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 のみでサポートされます。 |
%packages
セクションに kernel-xen
パッケージが含まれている必要があります
%packages
セクションに qemu
パッケージが含まれている必要があります。
注記
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 つのレベルで設定し、それ以下のレベルでは上書きされる設定が可能な継承の対象となります。このため、変数がシステムレベルで定義されている場合には、この変数がプロファイルまたはキックスタートツリーのレベルで定義された同一の変数に優先します。同様に、変数がプロファイルレベルで定義されている場合は、この変数がキックスタートツリーレベルで定義されている同一の変数に優先します。
注記
スニペットは、複数のキックスタートテンプレート間でコードの断片を再利用します。これらは、多くの行にまたがる可能性があり、その中に変数が含まれる場合もあります。スニペットは、$SNIPPET('snippet_name')
のテキストを使用することにより、キックスタートプロファイルに組み入れることができます。特定のパッケージ一覧や、特定の %post
スクリプト、またはキックスタートファイルに通常含まれる任意のテキスト用にスニペットを作成することもできます。
/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 テンプレート内の特殊文字のエスケープ
%post
セクション内に挿入する必要があります。
%post echo $foo > /tmp/foo.txt
$
をエスケープしないと、テンプレートエンジンは $foo
という名前の変数を探そうとしますが、foo
は変数としては存在しないため、失敗してしまいます。
$
をエスケープする最も簡単な方法は、バックスラッシュ文字 (\
) を使用する方法です。
%post echo \$foo > /tmp/foo.txt
\$foo
が $foo
としてレンダリングされます。
#raw ... #end raw
内にラップする方法です。
%post #raw echo $foo > /tmp/foo.txt #end raw
#errorCatcher Echo
を追加する方法です。これは、テンプレートエンジンに対して、存在しない変数はいずれも無視して、テキストを現状通りに出力するように指示します。このオプションは、ウィザードスタイルのキックスタートにすでに含まれていますが、手動で作成する raw キックスタートにも組み入れが可能です。
3.1.2.5. ベアメタルからのキックスタート
- 標準のオペレーティングシステムのインストールメディア
- PXE ブート
- PowerPC の Yaboot
手順3.5 インストールメディアからのブート
- インストールメディアをマシンに挿入します。このメディアは使用するキックスタートと適合している必要があります。例えば、キックスタートが
ks-rhel-x86_64-server-6-6.4
キックスタートツリーを使用するように構成されている場合は、Red Hat Enterprise Linux 6.4 64 ビットのインストールメディアを使用します。 - ブートプロンプトが表示されたら、以下のコマンドでキックスタートをアクティブにします。
linux ks=http://satellite.example.com/path/to/kickstart
- システムが起動したら、キックスタートファイルをダウンロードして、自動的にインストールします。
手順3.6 PXE ブート
重要
ネットワーク上の別のシステムに 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;
- 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"; }
このクラスは、以下のような動作を実行します。bootp
プロトコルによるネットワークブートを有効化します。PXE
と呼ばれるクラスを作成します。ブートの優先順位で PXE が第 1 位に設定されているシステムの場合は、PXEClient
として自動的に認識します。- DHCP サーバーは、192.168.2.1 の IP アドレスの Cobbler サーバーにシステムを転送します。
- DHCP サーバーは、
/var/lib/tftpboot/pxelinux.0
にあるブートイメージファイルを参照します。
DHCP サーバーを再起動します。# service dhcpd restart
- Xinetd を設定します。Xinetd は、サービスのスイートを管理するデーモンです。これには、ブートイメージを PXE クライアントに転送するための FTP サーバーである、TFTP が含まれます。
chkconfig
コマンドを使用して Xinetd を有効にします。# chkconfig xinetd on
もう一つの方法としては、root ユーザーに切り替えて、/etc/xinetd.d/tftp
ファイルを開き、disable = yes
の行をdisable = no
に変更する方法があります。 - Xinetd サービスを起動し、TFTP が
pxelinux.0
ブートイメージに対してサービスを提供開始できるようにします# chkconfig --level 345 xinetd on # /sbin/service xinetd start
chkconfig
コマンドは、すべてのユーザーランレベルに対してxinetd
サービスを有効にする一方で、/sbin/service
コマンドは、xinetd
を即時に有効にします。
手順3.7 Yaboot の起動
- 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
に障害が発生した場合、システムの残りのデバイスは起動順序どおりに起動します。 - 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 へのシステムの追加」 を参照してください。 - 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"; }
このクラスは、以下のような動作を実行します。bootp
プロトコルによるネットワークブートを有効化します。Yaboot
というクラスを作成します。起動順序で Yaboot が最優先になるようシステムが設定されている場合、fAAPLBSDPC
として識別されます。- DHCP サーバーは、192.168.2.1 の IP アドレスの Cobbler サーバーにシステムを転送します。
- DHCP サーバーは、以前
cobbler
で作成された Yaboot イメージファイルを参照します。
DHCP サーバーを再起動します。# service dhcpd restart
- Xinetd を設定します。Xinetd はサービスを管理するデーモンです。管理されるサービスには、ブートイメージを PowerPC クライアントに転送するために使用される FTP サーバーである TFTP が含まれます。
chkconfig
コマンドを使用して Xinetd を有効にします。# chkconfig xinetd on
もう一つの方法としては、root ユーザーに切り替えて、/etc/xinetd.d/tftp
ファイルを開き、disable = yes
の行をdisable = no
に変更する方法があります。 - Xinetd サービスを起動し、TFTP が Yaboot ブートイメージの処理を開始できるようにします。
# chkconfig --level 345 xinetd on # /sbin/service xinetd start
chkconfig
コマンドは、すべてのユーザーランレベルに対してxinetd
サービスを有効にする一方で、/sbin/service
コマンドは、xinetd
を即時に有効にします。
3.1.3. アクティベーションキーの使用
rhnreg_ks
で Red Hat Enterprise Linux システムを登録し、このシステムに Red Hat Satellite サービスレベルのエンタイトルメントを付与し、特定のチャンネルやシステムグループにシステムをサブスクライブさせることができます。
注記
手順3.8 アクティベーションキーを管理する
- 左上のナビゲーションバーから システム → アクティベーションキー の順に選択します。
- 右上の 新規のキーを作成 リンクをクリックします。
警告
以下に表示されているフィールドのほかに、キー フィールド自体も入力することができます。このユーザー定義の文字列をrhnreg_ks
で指定すると、Satellite でクライアントシステムを登録できます。キーにはコンマを挿入しないでください。 これ以外の文字はすべて使用できます。コンマは複数のアクティベーションキーを 1 度に指定するときに区切り文字として使用されるため、問題になります。詳しくは 「アクティベーションキーの使用」 を参照してください。 - 次の情報を指定します。
- 詳細 - 生成されたアクティベーションキーを識別し易くするためにユーザーが定義する説明になります。
- 使用 - 一度にアクティベーションキーで登録できる登録システムの最大数です。使用を無制限にする場合は空白にします。システムプロファイルを 1 つ削除すると使用数が 1 つ減り、キーでシステムプロファイルを 1 つ登録すると、使用数が 1 つ増えます。
- ベースチャンネル - キーの主要チャンネルになります。ベースチャンネルを選択しない場合はすべての子チャンネルを選択できるようになりますが、適用可能なチャンネルにしかシステムをサブスクライブさせることができません。
- 付属エンタイトルメント - キーの補足的なエンタイトルメントになります。Monitoring、 Provisioning、Virtualization、および Virtualization Platform などが含まれます。このキーを使って、すべてのシステムにこれらのエンタイトルメントが付与されます。
- Universal default - このキーを組織のプライマリーアクティベーションキーとして考慮するかどうか。指定のアクティベーションキーを使用せずに Satellite に登録されるクライアントには Universal Default アクティベーションキーが使用されます。Universal Default アクティベーションキーには基本のシステム登録の標準または最低限のチャンネルとエンタイトルメントが含まれることが理想です。Universal Default アクティベーションキーの詳細は https://access.redhat.com/solutions/1140083 を参照してください。
アクティベーションキーの作成 をクリックします。
手順3.9 複数のアクティベーションキーを一度に使用する
- ベースソフトウェアチャンネル - 登録が失敗します。
- エンタイトルメント - 登録が失敗します。
- 設定フラグを有効にする (enable config flag) - 設定管理が設定されます。
- 個々のアクティベーションキーを複数作成します。手順は 「アクティベーションキーの使用」 を参照してください。
- コマンドライン上では、
rhnreg_ks
のオプションの場合のように、すべてのアクティベーションキーをコンマで区切って組み込みます。# rhnreg_ks --activationkey=activationkey1,activationkey2,activationkey3
警告
3.1.4. Cobbler の使用
警告
- Cheetah のテンプレートエンジンとキックスタートスニペットを使用したキックスタートのテンプレート作成および管理の機能
- クライアント側のツールである
koan
を使った仮想マシンゲストのインストールを自動化する機能 cobbler check
コマンドを使用したインストール環境の分析の機能- x86_64 アーキテクチャーの Satellite システムの
cobbler buildiso
コマンドによる PXE のようなメニューを使用してインストール ISO を構築する機能
3.1.4.1. Cobbler の要件
- 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 の設定
手順3.10 既存の DHCP サーバーを設定する
- 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"; }
上記の例の各動作を以下に示します。- 管理者は
bootp
プロトコルを使用してネットワークによる起動を有効にします。 - 次に、
PXE
というクラスを作成します。PXE が起動順序で一番目に設定されているシステムの場合は、それ自体をPXEClient
として認識します。 - DHCP サーバーはシステムを 192.168.2.1 にある Cobbler サーバーに転送します。
- 最後に DHCP サーバーは
pxelinux.0
ブートローダーファイルを取り込みます。
3.1.4.1.2. Cobbler 用の Xinetd と TFTP の設定
- root としてログインします。
/etc/xinetd.d/tftp
を編集して、以下のようにオプションを変更します。disable = yes
変更後disable = no
- xinetd サービスを起動するには:
# chkconfig --level 345 xinetd on # /sbin/service xinetd start
3.1.4.1.3. Cobbler サポート用の SELinux と IPTables の設定
手順3.11 SELinux で Cobbler サポートを有効にする
- root としてログインします。
- SELinux の Boolean が HTTPD Web サービスコンポーネントを許可するように設定するには:
# setsebool -P httpd_can_network_connect true
-P
のスイッチは不可欠です。これによって、HTTPD 接続は再起動しても永続的に有効となります。
手順3.12 IPTable の設定
- root としてログインします。
- 以下のルールを既存の 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
- ファイアウォールの設定を保存するには:
# /sbin/iptables-save > /etc/sysconfig/iptables
3.1.4.2. /etc/cobbler/settings での Cobbler の設定
/etc/cobbler/settings
ファイル内で実行されます。このファイルには数種の設定可能な設定が含まれ、Cobbler の機能に対して各設定がどのように影響を与えるか、またユーザーの環境に応じて設定の変更が推奨されるかどうかなど、各設定ごとに詳細な説明が記載されています。
/etc/cobbler/settings
ファイルをご覧ください。
3.1.4.3. Cobbler サービスの同期と起動
- Cobbler サービスを起動する前に、Cobbler サービスでチェックを実行し、すべての要件が組織のニーズに応じて設定されていることを確認します。
# cobbler check
- 次のコマンドで Satellite サーバーを起動するには:
# /usr/sbin/rhn-satellite start
警告
Satellite サービスに依存しないcobblerd
サービスを起動/停止しないでください。エラーやその他の問題が発生する原因となる可能性があります。Red Hat Satellite の起動/停止には、/usr/sbin/rhn-satellite
を必ず使用してください。
3.1.4.4. 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 profile add --name=string --distro=string [--kickstart=url] [--virt-file-size=gigabytes] [--virt-ram=megabytes]
--name=string
は、 rhel5webserver
や rhel4workstation
などプロファイルの固有のラベルとなります。
--distro=string
スイッチは、この特定のプロファイルに使用されるディストリビューションを指定します。ディストリビューションは、「Cobbler へのディストリビューションの追加」 で追加されました。
--kickstart=url
オプションは、キックスタートファイルがある場合はその場所を指定します。
--virt-file-size=gigabytes
オプションを使用すると仮想ゲストファイルイメージのサイズを設定することができます。指定しないとデフォルトの 5 ギガバイトになります。
--virt-ram=megabytes
オプションは、仮想ゲストシステムが消費できる物理 RAM の量をメガバイトで指定します。指定がない場合はデフォルトの 512 メガバイトになります。
3.1.4.6. Cobbler へのシステムの追加
注記
koan
と PXE メニューのみでプロビジョニングを行なっている場合、システム記録を作成する必要はありません。ただし、以下の場合にシステム記録は役に立ちます。
- システム固有のキックスタートのテンプレーティングが必要である。
- 特定のシステムが常に特定のコンテンツのセットを受信する。
- 特定のクライアント用に特定のロールがある。
# cobbler system add --name=string --profile=string --mac-address=AA:BB:CC:DD:EE:FF
--name=string
は engineeringserver
や frontofficeworkstation
などのシステムに固有となるラベルです。
--profile=string
は、「Cobbler へのプロファイルの追加」 で追加されたプロファイル名の 1 つを指定します。
--mac-address=AA:BB:CC:DD:EE:FF
オプションは、指定 MAC アドレスを持つシステムがキックスタートされると、そのシステム記録に関連するプロファイルに自動的にプロビジョニングが行われます。
man cobbler
と入力して Cobbler man ページを参照してください。
重要
default
という名前を持つシステムには特別な機能があります。未定義のシステムをすべて設定し、PXE 経由で特定のプロファイルを使用します。default
システムがないと、PXE は未設定のシステム対してローカルブートになります。以下のように、名前とプロファイルとしてのみ default
を含めます。
# cobbler system add --name=default --profile=rhel5webserver
3.1.4.7. Cobbler テンプレートの使用
- 各状況に合わせて個別のキックスタートを手作業で作成したり重複した作業を行ったりすることなく、大量のプロファイルやシステムの作成と管理を行えるようにする強固な機能
- テンプレートは複雑性を増してループや条件、他の拡張機能、および構文などを伴う場合がある一方、こうした複雑性が伴うことなく単純にキックスタートファイルの作成にテンプレートを使用することもできます。
3.1.4.7.1. テンプレートの使用
/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. キックスタートスニペット
$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')
my_partition
ファイル内に含まれているコードのスニペットに置き換えられます。
3.1.4.8. Koan の使用
3.1.4.8.1. Koan の使用による仮想システム群のプロビジョニング
koan
を使用して、システム上での仮想ゲストのインストールを開始できます。
# cobbler add profile --name=virtualfileserver --distro=rhel-i386-server-5 --virt-file-size=20 --virt-ram=1000
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 の構築
cobbler buildiso
コマンドが、ディストリビューションとカーネルの一式、および PXE ネットワークインストールのようなメニューを含むブート ISO イメージを作成する機能を提供します。
--iso
オプションを使用してブート ISO の名前と出力の場所を定義します。
# cobbler buildiso --iso=/path/to/boot.iso
--profiles
と --systems
オプションを使用して、これらのプロファイルとシステムを制限します。
# cobbler buildiso --systems="system1,system2,system3" \ --profiles="profile1,profile2,profile3"
注記
注記
cobbler buildiso --standalone
オプションは Red Hat が提供するキックスタートツリーではサポートされません。この standalone オプションは、Cobbler サーバーへのネットワーク接続のないマシンのプロビジョニングに使用されますが、Satellite のプロビジョニングによって提供される追加機能にはすべて Satellite へのネットワーク接続が必要です。Red Hat Enterprise Linux をネットワーク接続のないマシンにインストールする必要がある場合は、ISO イメージをダウンロードして Red Hat Enterprise Linux をインストールしてください。