前のトピック: Linux アプライアンス インストール

次のトピック: Ubuntu Linux ディストリビューション用アプライアンス キットのインストール


RedHat/CentOS Linux ディストリビューション用アプライアンス キットのインストール
ファイル
互換性

apk-*-linux-rh バージョンは以下の OS distro と互換性があります。

APK をインストールするには、以下のいずれかが必要です。

APK で提供されるカーネルおよび initrd ファイルを使用する場合、イメージには ext3 ファイル システムが必要です。

イメージの準備

重要: Linux バージョンの APK は、VMWare と XEN ハイパーバイザの両方の HVM ブートをサポートします。 CA AppLogic で提供される PVM カーネルはオプションです。

以下の手順は、OS が最初にどのようにインストールされたかに応じて変わります。 これらの手順の一部は(準備されているイメージ上ではなく)誤ってライブ システム上で実行されると有害あるいは破壊的な影響を及ぼす可能性があり、自動スクリプトで実行することは不適切な場合があるため、これらの手順は APK セットアップ スクリプトでは実行されず、管理者の裁量に任されます。 適切でない手順はスキップしてください。

イメージを準備する方法

  1. ディスク イメージが ext3 ファイル システムであることを確認します。

    OS が ext2 としてインストールされた場合は、次のコマンドを実行してイメージを ext3 に変換します。

    tune2fs -j
    

    ext2(または ext3 以外の任意のファイルシステム)を使用するには、APK に付属の initrd ファイルを再構築する必要があります。

  2. 次のコマンドを実行してネットワーク設定ファイルを削除します。
    rm /etc/sysconfig/network-scripts/ifcfg-eth* 
    
  3. etc/fstab ファイルを編集し、ルート デバイスの名前を /dev/hda1 に変更します。

    インストーラでもチェックが行われ、ルート デバイスがラベルまたは UUID で指定されていることが検出されると警告が出力されます。

  4. 次のコマンドを実行してカーネル パッケージを削除します(ハードウェア エミュレーション モードで実行するためにイメージを構築している場合は、この手順をスキップします)。
    rpm --root path/to/image -e --nodeps kernel
    

    または、「vol manage」シェルでこの操作を行う場合は、次のコマンドを実行します。

    chroot  path/to/image rpm -e --nodeps kernel 
    
  5. 使用しないすべての OS サービスをアンインストールします。

注: クリーンアップ後に、アプライアンス用により小さなブート ボリューム イメージを作成するためにボリュームが縮小される場合がありますが、XEN DomU カーネルおよび APK をインストールするスペースを確保するため、またログ ファイルや一時ファイルなどに使用する空間を確保するために、少なくとも 10 ~ 15 MB の空き容量が残されていることを確認してください。

APK のインストール

ここに示すインストール手順では、クリーンな OS をインストールしてシャットダウンし、ブート ディスク イメージを作成すること、または既存の CA AppLogic アプライアンスを APK の新バージョンでアップグレードすることにより、APK のインストールが実際には実行されていない OS イメージ上ではなく、事前に準備された OS イメージ上で実行されていることを想定しています。

ライブ インストール(実行中の OS )も可能です。CA AppLogic サービス パック 2.4.5 以降で提供されている iso2class ユーティリティと共に使用できます。 ただし、iso2class では HVM アプライアンスが作成されますが、APK は HVM モードで動作しないことに注意してください。APK がインストールされた後、アプライアンスを準仮想化モードに変更する必要があります。 ライブ システムにインストールするには、以下の手順に従ってください。ただし、「/」をすべての操作のカレント ディレクトリとして使用します。 この手順をベア メタル システム上で実行するとマシンがブート不能になるため、この手順は(たとえば、「iso2class」を使用して)XEN 仮想マシンで実行することが最適です。

APK をインストールする方法

  1. OS イメージをファイル システムにマウントします。

    イメージが CA AppLogic グリッドにボリュームとしてすでにインストールされている場合は、vol manage コマンドを使用してアクセスできます。

  2. イメージ自体の /tmp ディレクトリまたはイメージがマウントされているホスト上の一時ディレクトリに APK ファイルをコピーします。 イメージがすでにグリッド上にある場合は、Web インターフェースを使用して、イメージ自体にファイルをコピーします。 (この操作をグリッド上で行わない場合は、以下の操作をユーザ root として実行する必要があります)。

重要: APK は、その操作に dhclient パッケージを必要とします。 このパッケージは CentOS5 にデフォルトではインストールされません。 APK をインストールする前に、イメージに dhclient パッケージをインストールします。

dhclient RPM は、chroot を使用して、(たとえば、「vol manage」シェルにマウントされた)非ライブ OS イメージにインストールできます。 RPM は、いずれかの CentOS ミラー サイト( http://mirror.stanford.edu/yum/pub/centos/5.1/os/i386/CentOS/dhclient-3.0.5-7.el5.i386.rpm など)で入手できます。

dhclient パッケージをインストールする方法

  1. DomU カーネルおよび APK バイナリ アーカイブをイメージのルート ディレクトリにアンパックします。 実行するコマンドの例を以下に示します。
    cd /mnt/vol 
    tar -zxf tmp/domu-linux-2.6.18.8.386.tar.gz # ** see note below! 
    tar -zxf tmp/apk-2.0.14-rh.tar.gz 
    

    セットアップ スクリプトは ./tmp ディレクトリにアンパックされます。

    重要: distro アーキテクチャ用の適切な domu-linux アーカイブを使用してください。 32 ビット カーネルのインストールは 64 ビット distro では動作しません。

  2. 次のセットアップ スクリプトを実行します。
    tmp/apk-install 
    

    セットアップ スクリプト(および tar ファイルがイメージ自体にコピーされている場合は tar ファイル)は、次のコマンドを実行することで削除できます。

    rm tmp/apk-install tmp/domu-linux-*.tar.gz tmp/apk-*.tar.gz 
    

    注: APK で提供される init スクリプトでは、「/appliance」内にインストールされたアプライアンス固有のスクリプトがサポートされなくなりました。 アプライアンス固有のスクリプトが存在する場合は、インストール スクリプトが停止し、ユーザ入力が求められます。 アプライアンスに固有のカスタマイズがこのディレクトリで実行されていない(つまり、そのコンテンツが LUX 上のコンテンツと同じか似ている)場合は、削除しても問題ありません。 以前はここにインストールされた標準機能は、すべて APK によって提供されるようになりました。 または、[保存]をクリックして /tmp に保存し、インストールを続行します。

  3. イメージをマウント解除して CA AppLogic グリッドにインポートします(または、イメージがグリッド上にすでに存在し、vol manage を使用して編集された場合は、vol manage シェルを終了します)。
  4. イメージが既存のアプライアンスのイメージの場合、以下の手順を実行してください。
    1. (GUI エディタを使用して)クラスを編集し、カーネルと initrd ファイルの名前を削除します。
    2. 環境設定モードを dhcp に設定します。
アプライアンス Init 設定

ファイル /etc/sysconfig/applogic_init が存在する場合、APK init スクリプトはシェル インクルード スクリプトと解釈します(「.」コマンド)。 以下のパラメータは /etc/sysconfig/applogic_init に定義できます。

APK_AUTH_KEY_PATH

アプライアンスに SSH ログインする公開キーを格納する場所を指定します。 3t comp ssh コマンドは、対応する秘密キーを使用して、アプライアンスに接続します。 デフォルトは /root/.ssh です。 空の文字列に設定された場合、キーはどこにも格納されません。
指定された場所が既存のファイルの場合、その所有者と権限が保持されます。 そうでない場合は、ファイルは所有者のルートに作成されます。

APK_CONFIG_EXTIFC

アプリケーションで提供されている場合、外部インターフェースの自動 IP 設定を有効化します。 外部インターフェースの IP 設定を無効にする場合は、この値を「no」に設定します。 また、この値に設定すると、外部インターフェース設定をサポートしていなかった前のバージョンのように APK が動作します。

デフォルト: はい

重要: 3.5 以前のグリッドで動作するよう設計された外部インターフェースを持つアプライアンスに新しい CA AppLogic 3.5 APK をインストールする場合は、APK_CONFIG_EXTIFC=no を設定します。 これらのアプライアンスは、プロパティを使用して外部ネットワークを設定します。 この設定は外部インターフェースを持たないアプライアンスには効果がありません。

APK_CONFIG_FILES

アプライアンスのプロパティを適用するファイルをスペースで区切ったリストを指定します。 これは、(APK を使用していないアプライアンスの)GUI の[境界の変更]ダイアログ ボックスで指定した環境設定ファイル リストに取って代わります。 APK を使用したアプライアンスは、GUI で指定されたリストではなく、アプライアンス自体に置かれている APK_CONFIG_FILES リストを使用します。
重要: 既存のアプライアンスに APK をインストールする場合、エディタ GUI を使用してクラス記述子をチェックし、[View Class]/[境界の変更]ダイアログ ボックスの[環境設定ファイル]タブに設定ファイルが存在するかどうか調べてください。 ファイルのリストをアプライアンスの APK_CONFIG_FILES 設定に転送します。

重要: /etc/sysconfig/applogic_init ファイルは設定データが取得または適用される前に実行されるため、スクリプトはアプライアンスのいずれの設定ファイルの存在にも依存できません。 このファイルは、上記に定義した設定変数にのみ使用し、初期化コードを実行するためには使用しないでください。

/etc/sysconfig/applogic_init の例:

APK_CONFIG_FILES=/etc/httpd/conf.d/myconfig.conf 
APK_AUTH_KEY_PATH=/root/.ssh/alternate_keys 
アプライアンスの開始後チェック

ファイル /etc/sysconfig/applogic_appliance が存在する場合、アプライアンスのすべてのサービスの開始後、APK late init スクリプトはシェル インクルード スクリプトと解釈します(「.」コマンド)。 スクリプトからのリターン ステータスは、アプライアンスが正常に開始されたか失敗したかを示します。 スクリプトによってメッセージが stderr に出力され、エラーが返される場合は、このメッセージの最後の行が、コントローラに送信されるエラー メッセージとして使用されます。

Web サーバ アプライアンス用の起動後チェック ファイルの例 - サーバが起動し、ホーム ページへの HTTP GET に応答することを確認します。

if ! wget -q -O /dev/null http://localhost/ ; then
echo "start failed - Web server is not responding" >&2
return 1
fi
return 0

重要: システム カタログ内の一部のアプライアンスでは、/appliance 内にあるカスタマイズされたスクリプトを使用してサービスが初期化されます。 これはサポートされなくなりました。 APK がインストールされると、ルート ディレクトリ構造をクリーンな状態に保ち、Filesystem Hierarchy Standard に準拠するよう、警告が表示されます。 このようなスクリプトのコードを /etc/sysconfig/applogic_appliance に移動して古い動作をエミュレートできますが、この操作は起動後チェック ファイルで意図されていないため推奨されません。 代わりに、インストールされるサービスには独自の init スクリプトが必要であり、一般には完全に CA AppLogic の外部で動作できる必要があります。