ここでは、次の障害について、考えられる解決方法について説明しています。
新しい OS アップデートを作成する場合に指定する名前は、一意である必要があります。同様に、作成される OS アップデートも 1 つしか存在しないものである必要があります。すなわち、各 OS アップデートのファイル名に加えて、内部パッケージ名、バージョン、リリース、ファイル名の組み合わせも同じく一意である必要があります。
たとえば、test1.rpm が、test1 という名前の RPM のソースである場合、test2 という名前の別の OS アップデートを、test1.rpmという同じファイル名にすることはできません。名前に関する問題を回避するために、OS アップデートの名前は、プロビジョニング可能なサーバーの別の既存のパッケージの内部パッケージ名と同じ名前にしないようにしてください。
OS アップデートを作成する場合は、adminfile の値を指定してください。Solaris OS アップデートでは、デフォルトの admin ファイルは /opt/sun/n1gc/etc/admin にあります。
mail= instance=unique partial=nocheck runlevel=nocheck idepend=nocheck rdepend=nocheck space=quit setuid=nocheck conflict=nocheck action=nocheck basedir=default authentication=nocheck |
N1 System Managerで、Solaris パッケージの配備に使用されるデフォルトの admin ファイルの設定は、instance=unique です。パッケージの重複でエラーを報告させる場合は、admin ファイルの設定を instance=quit に変更します。このように変更すると、重複したパッケージが検出されると、「アップデートのロード」ジョブの結果にエラーが表示されます。
admin ファイルのパラメータ設定の詳細については、admin(4)のマニュアルページを参照してください。Solaris システムで、root ユーザーとして man -s4 admin と入力すると、マニュアルページを表示できます。
Solaris パッケージには、応答ファイルが必要な場合もあります。OS アップデートを作成するときに、admin ファイルおよび response ファイルを指定する方法については、「OS アップデートをコピーする」を参照してください。
ここでは、次の問題に関する考えられる解決方法について説明しています。
ジョブを送信する前に発生するエラー
「アップデートのロード」ジョブのエラー
「アップデートのアンロード」ジョブのエラー
「アップデートのロード」の「停止」ジョブのエラー
次の unloadコマンドでは、update は、show update allコマンドを入力して表示される一覧の update の名前、またはターゲットのサーバー上にある実際のパッケージ名のいずれかです。
N1-ok> load server server update update |
常に、パッケージが正しいアーキテクチャーに対して指定されているかどうかを確認してください。N1 System Manager は、Solaris (x86 または SPARC) OS の 32 ビットと 64 ビットを区別しません。したがって、パッケージまたはパッチが対応していない OS にインストールされた場合は、インストールに失敗する場合があります。パッケージまたはパッチが正常にインストールされた場合でも、パフォーマンスが低下した場合は、パッチのアーキテクチャーとOS のアーキテクチャが合致していることを確認してください。
次に、ジョブが送信される前に発生する可能性がある一般的なエラーを示します。
Target server is not initialized
対処方法:add server feature osmonitor コマンドが発行され、それが成功していることを確認します。
Another running job on the target server
対処方法:サーバーで同時に実行できるジョブは 1 つだけです。ジョブが完了したあとで再度実行します。
Update is incompatible with operating system on target server
対処方法:ターゲットのサーバーの OS の種類が、アップデートの OS の種類に合致していることを確認します。 N1–ok> プロンプトで、show update update-name と入力すると、アップデートの OS の種類を表示できます。
Target server is not in a good state or is powered off
対処方法:ターゲットのサーバーが起動され、稼動中であることを確認します。 N1–ok> プロンプトで、 show server server-name と入力すると、サーバーのステータスを表示できます。reset server server-name force と入力すると強制的に再起動することができます。
「アップデートのロード」ジョブが失敗する原因として、次のことが考えられます。
「アップデートのロード」ジョブは、同じパッケージがすでに存在するため、または上のバージョンのパッケージが存在するために、失敗することがあります。ジョブが失敗した場合は、ターゲットのサーバーにそのパッケージが存在しないことを確認してください。
error: Failed dependencies:
A prerequisite package and should be installed.
対処方法:Linux RPM の依存関係を調べ、解決するために RPM ツールを使用します。Solaris システムでは、 admin ファイルのidepend= パラメータを設定します。
Preinstall or postinstall scripts failure: Non-zero status
pkgadd: ERROR: ... script did not complete successfully
対処方法:pre-installation スクリプトまたは post installation スクリプトの考えられるエラーを確認し、このエラーを解決します。
Interactive request script supplied by package
対処方法:このメッセージは、response ファイルが見つからない、または admin ファイルの設定が正しくないことを示しています。response ファイルを追加してこのエラーを修正します。
patch-name was installed without backing up the original files
対処方法:このメッセージは、Solaris OS アップデートがインストールされたときに元のファイルのバックアップを取らなかったことを示しています。対処の必要はありません。
Insufficient diskspace
対処方法:ディスク領域が十分でないために「アップデートのロード」に失敗する可能性があります。 df -k と入力して空き容量をチェックします。また、パッケージの容量も確認します。パッケージの容量が大きすぎる場合は、ターゲットのサーバーの使用可能な領域を増やします。
次に、アップデートのロードまたはアンロード操作で発生する停止ジョブのエラーを示します。
「アップデートのロード」または「アップデートのアンロード」ジョブの停止操作を行ってもジョブが停止されない場合は、管理サーバーで、次のプロセスが消去されたことをを手動で確認します。
# ps -ef |grep swi_pkg_pusher ps -ef |grep pkgadd, pkgrm, scp, ... |
プロビジョニング可能なサーバーで実行中のすべてのプロセスをチェックします。
# ps -ef |grep pkgadd, pkgrm, ... |
「サーバーのアンロード」および「グループのアンロード」ジョブの一般的なエラーを次に示します。
この項の以降では、次のコマンドに関係する問題のエラーおよび考えられる解決策を示します。unload server server-name update update-name および unload group group-name update update-name。
Removal of <SUNWssmu> was suspended (interaction required)
対処方法:このメッセージは、Solaris パッケージのアンインストールにおける依存関係の問題を示しています。admin ファイルの設定をチェックし、適切なresponse ファイルを提供してください。
Job step failure without error details
対処方法:このメッセージは、ジョブが内部で開始できなかったことを示す可能性があります。詳細情報を得るには、Sun のサービス担当者に連絡してください。
Job step failure with vague error details: Connection to 10.0.0.xx
対処方法:このメッセージは、パッケージまたは RPM の一部が完全にインストールされていなかったためにアンインストールに失敗したことを示す可能性があります。この場合は。ターゲットのサーバーで問題のパッケージを手動でインストールします。次に例を示します。
RPM を手動でインストールするには、次のコマンドを入力します。
# rpm -Uvh rpm-name |
.pkg ファイルを手動でインストールするには、次のコマンドを入力します。
# pkgadd -d pkg-name -a admin-file |
パッチを手動でインストールするには、次のコマンドを入力します。
# patchadd -d patch-name -a admin-file |
このあとで、unload コマンドを再度実行してください。
Job hangs
対処方法:ジョブがハングアップしたら、ジョブを停止し、残りのプロセスを手動で消去してください。次に例を示します。
ジョブを手動で消去するには、次のコマンドを入力します。
# n1sh stop job job-ID |
次に、RPM の PID を検索してプロセスを消去します。次のコマンドを入力します。
# ps -ef |grep rpm-name # pkill rpm-PID |
または、RKG の PID を検索してプロセスを消去します。次のコマンドを入力します。
# ps -ef |grep pkgadd # pkill pkgadd-PID |
このあとで、unload コマンドを再度実行してください。