Sun N1 System Manager 1.2 管理ガイド

OS アップデートの問題

ここでは、次の障害について、考えられる解決方法について説明しています。

OS アップデートの作成の失敗

新しい OS アップデートを作成する場合に指定する名前は、一意である必要があります。同様に、作成される OS アップデートも 1 つしか存在しないものである必要があります。すなわち、各 OS アップデートのファイル名に加えて、内部パッケージ名、バージョン、リリース、ファイル名の組み合わせも同じく一意である必要があります。

たとえば、test1.rpm test1 という名前の RPM のソースである場合、test2 という名前の別の OS アップデートを、test1.rpm という同じファイル名にすることができません。名前に関する問題を回避するために、OS アップデートの名前は、プロビジョニング可能なサーバーの別の既存のパッケージの内部パッケージ名と同じ名前にしないようにしてください。

OS アップデートを作成する場合は、admin ファイルの値を指定できます。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

adminfile を使用して OS アップデートをインストールする場合は、パッケージのファイル名がパッケージの名前と一致していることを確認してください。ファイル名がパッケージ名と一致しない状態で adminfile を使用して OS アップデートをインストールすると、アンインストールできなくなります。「OS アップデートのアンインストールの失敗」を参照してください。

N1 System Manager で Solaris パッケージの配備に使用されるデフォルトの admin ファイルの設定は、instance=unique です。パッケージの重複でエラーを報告させる場合は、admin ファイルの設定を instance=quit に変更します。このように変更すると、重複したパッケージが検出された場合に、「アップデートのロード」ジョブの結果にエラーが表示されるようになります。

admin ファイルのパラメータ設定の詳細は、admin(4) のマニュアルページを参照してください。Solaris システムで、root ユーザーとして man -s4 admin と入力すると、マニュアルページを表示できます。

Solaris パッケージには、応答ファイルが必要な場合もあります。OS アップデートを作成するときに、admin ファイルおよび response ファイルを指定する方法については、「OS アップデートをコピーする」を参照してください。

Solaris OS アップデートの配備の失敗

ここでは、Solaris OS アップデートを配備するときの、次の問題に関する考えられる解決方法について説明します。

次の unload コマンドでは、update は、show update all コマンドを入力して表示される一覧の update の名前、または対象のサーバー上にある実際のパッケージ名のいずれかです。


N1-ok> load server server update update

常に、パッケージが正しいアーキテクチャーに対して指定されているかどうかを確認してください。


注 –

N1 System Manager は、Solaris OS (x86 または SPARC) の 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.

対処方法:

Solaris システムでは、admin ファイルの idepend= パラメータを設定します。


Preinstall or postinstall scripts failure: Non-zero status


pkgadd: ERROR: ... script did not complete successfully

対処方法:

インストール前スクリプトまたはインストール後処理スクリプトの考えられるエラーを確認し、このエラーを解決します。


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

対処方法:

このメッセージは、一部のパッケージが完全にインストールされていなかったためにアンインストールに失敗したことを示す可能性があります。この場合は、対象のサーバーで問題のパッケージを手動でインストールします。次に例を示します。

.pkg ファイルを手動でインストールするには、次のコマンドを入力します。


# pkgadd -d pkg-name -a admin-file

パッチを手動でインストールするには、次のコマンドを入力します。


# patchadd -d patch-name -a admin-file

このあとで、unload コマンドを再度実行してください。


Job hangs

対処方法:

ジョブがハングアップしたら、ジョブを停止し、残りのプロセスを手動で終了してください。次に例を示します。

ジョブを手動で終了するには、次のコマンドを入力します。


# n1sh stop job job-ID

次に、PKG の PID を検索してプロセスを終了します。次のコマンドを入力します。


# ps -ef |grep pkgadd
# pkill pkgadd-PID

このあとで、unload コマンドを再度実行してください。

Linux OS アップデートの配備の失敗

ここでは、Linux OS アップデートを配備するときの、次の問題に関する考えられる解決方法について説明します。

次の unload コマンドでは、update は、show update all コマンドを入力して表示される一覧の update の名前、または対象のサーバー上にある実際のパッケージ名のいずれかです。


N1-ok> load server server update update

次に、ジョブが送信される前に発生する可能性がある一般的なエラーを示します。


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 should be installed

対処方法:

Linux RPM の依存関係を調べ、解決するために RPM ツールを使用します。


Preinstall or postinstall scripts failure: Non-zero status


ERROR: ... script did not complete successfully

対処方法:

インストール前スクリプトまたはインストール後処理スクリプトの考えられるエラーを確認し、このエラーを解決します。


Insufficient diskspace

対処方法:

ディスク領域が十分でないために「アップデートのロード」に失敗する可能性があります。df -k と入力して空き容量をチェックします。また、パッケージの容量も確認します。パッケージの容量が大きすぎる場合は、対象のサーバーの使用可能な領域を増やします。

次に、アップデートのロードまたはアンロード操作で発生する停止ジョブのエラーを示します。

「アップデートのロード」または「アップデートのアンロード」ジョブの停止操作を行なってもジョブが停止されない場合は、管理サーバーで、次のプロセスが終了されているかを手動で確認します。


# ps -ef |grep swi_pkg_pusher
ps -ef |grep rpm

プロビジョニング可能なサーバーで実行中のすべてのプロセスをチェックします。


# ps -ef |grep rpm, ...

「サーバーのアンロード」および「グループのアンロード」ジョブの一般的なエラーを次に示します。

この項の以降では、次のコマンドに関係する問題のエラーおよび考えられる解決策を示します。unload server server-name update update-name および unload group group-name update update-name


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

このあとで、unload コマンドを再度実行してください。


Job hangs

対処方法:

ジョブがハングアップしたら、ジョブを停止し、残りのプロセスを手動で終了してください。次に例を示します。

ジョブを手動で終了するには、次のコマンドを入力します。


# n1sh stop job job-ID

次に、RPM の PID を検索してプロセスを終了します。次のコマンドを入力します。


# ps -ef |grep rpm-name
# pkill rpm-PID

このあとで、unload コマンドを再度実行してください。

OS アップデートのアンインストールの失敗

adminfile でインストールされた OS アップデートをアンインストールできない場合は、パッケージファイル名がパッケージの名前と一致しているかどうか確認してください。パッケージ名を調べるには、次のようにします。


bash-2.05# ls FOOi386pkg 
   FOOi386pkg
   bash-2.05# pkginfo -d ./FOOi386pkg 
   application FOOi386pkg     FOO Package for Testing
   bash-2.05# pkginfo -d ./FOOi386pkg | /usr/bin/awk '{print $2}'
   FOOi386pkg
---
   bash-2.05# cp FOOi386pkg Foopackage
   bash-2.05# pkginfo -d ./Foopackage 
   application FOOi386pkg     FOO Package for Testing
   bash-2.05# pkginfo -d ./Foopackage | /usr/bin/awk '{print $2}'
   FOOi386pkg
   bash-2.05# 

名前が異なる場合は、プロビジョニング対象サーバーの /tmp ディレクトリにある adminfile の名前をパッケージと一致するよう変更し、unload コマンドを再実行してみてください。それでもパッケージがアンインストールされない場合は、pkgrm を使用してプロビジョニング対象サーバーからパッケージを削除します。