Policy and Distribution Servicesには、サーバファイルおよびアプリケーションの配布やインストールを自動化および標準化するための手段が用意されています。これには、NLMTM のバージョン、環境設定ファイル、データベースなどを標準化する機能も含まれます。次の節を参照してください。
サーバにインストールするためにサーバファイルおよびアプリケーションを配布するには、ソフトウェアパッケージにソフトウェアを含める必要があります。ソフトウェアパッケージは、ConsoleOne(R)のServer Software Packagesネームスペースに作成します。ソフトウェアパッケージの作成は、ソフトウェアのインストール実行可能ファイルの構築に似ています。
次の図は、ソフトウェアパッケージとパッケージコンポーネントの関係を示しています。
次の点に注意してください。
ソフトウェアパッケージとそのコンポーネントには、環境設定情報とインストールの要件が含まれます。各コンポーネントオブジェクトはそれぞれの環境設定パラメータによって制御されるので、インストール前のアクション、インストールのアクション、インストール後のアクションなど、1 つのソフトウェアパッケージについて複数のコンポーネントを使用できます。
サーバファイルおよびアプリケーションの配布やインストールに関する次のような項目を設定できます。
ソフトウェアパッケージでインストールの前提条件を指定できるだけでなく、パッケージの各コンポーネントでもインストールの前提条件を指定できます。前提条件は次の順序で確認され、インストールできるかどうかが判断されます。
一部のコンポーネントがインストールされ、他のコンポーネントがインストールされない場合があるので、ソフトウェアパッケージが部分的にインストールされる可能性があります。
重要: 前提条件を指定する場合は、すべてのコンポーネントに等しく適用される前提条件はソフトウェアパッケージレベルで作成し、特定のコンポーネントに固有の前提条件はコンポーネントレベルで作成します。
Distribution内のServer Software Packagesの順序の指定に関して注意事項が2つあります。
1つのDistributionに複数のソフトウェアパッケージを含める場合は、次の点に注意してください。
ソフトウェアパッケージを特定の順序でインストールするには
ソフトウェアパッケージを特定の順序でインストールする別の方法としては、複数のSoftware Package Distribution間に依存関係を使用します。たとえば、前のソフトウェアパッケージと後続のソフトウェアパッケージの間に依存関係を確立します。
例:
依存関係を使用すると、スケジュールを使用してインストール順序を制御する必要がありません。
1つのDistributionに複数のソフトウェアパッケージが含まれている場合、開始した順序で抽出が終了するとは限らないので、ロールバックもこの影響を受けます。
Distributionに含まれるソフトウェアパッケージの処理の順序を指定することはできますが、この順序は保証されません。これは、ソフトウェアパッケージの処理を終了するまでにかかる時間が各パッケージによって異なり、ロールバックの順序を決定するのがソフトウェアパッケージの処理の終了時刻であるからです。
つまり、最後に正常に処理されたソフトウェアパッケージをロールバックした後、処理が終了した順序とは逆の順序でのみ、その他のソフトウェアパッケージをロールバックできます。
[Package List]コマンドを使用して、ソフトウェアパッケージの処理が終了した順序を表示できます。アスタリスクは、次にロールバックが可能なパッケージを示します。
ロールバックの詳細については、ソフトウェアパッケージのインストールのロールバックを参照してください。
Software Package Distributionでは、ソフトウェアパッケージからサーバにコピーされるファイルの中に、パッケージの抽出時に実行する実行可能ファイルが含まれている場合があります。
ソフトウェアパッケージを通じて配布される実行可能ファイルを実行するには、ソフトウェアパッケージのファイルに対して、実行前後のアクション(実行順序など)を設定します。前後のアクションは、Server Software Packageの作成時とSoftware Package Distributionの作成時に使用できます。
詳細については、Distributionの前後の処理およびソフトウェアパッケージコンポーネントの環境設定を参照してください。
コンポーネントの環境設定など、ソフトウェアパッケージを定義した後、ソフトウェアパッケージをコンパイルする必要があります。この処理では、ファイルやアプリケーションとその環境設定を配布用の1つのファイルに圧縮します。
コンパイルされたソフトウェアパッケージのデフォルトの拡張子は.cpkです。コンパイル済みのバージョンには、ソフトウェアパッケージが表すファイルやアプリケーションをインストールするために必要なすべてのファイルが含まれています。
重要: コンパイル済みファイル名の指定を求められたときに.spkファイルのパスとファイル名を指定すると、その.spkファイルは上書きされ、編集できなくなります。コンパイル済みバージョンの名前を指定するときには、.cpkという拡張子を使用してください。
ソフトウェアパッケージにはコピーされる多くのファイルが含まれる場合があるので、.cpkファイルのサイズは非常に大きく(数百メガバイト)になる可能性があります。したがって、通常、.cpkファイルは十分な空きディスク容量があるサーバに保存してください。
ただし、ソフトウェアパッケージによって単純な機能を実行することもでき、この場合.cpkファイルのサイズは比較的小さくなるため、ワークステーションに保存することもできます。たとえば、ファイルサーバ上のディレクトリを削除するだけのためにソフトウェアパッケージを設定することもできます。Server Software Packagesによるサーバ上のディレクトリの削除を参照してください。
ロールバックに対応したソフトウェアパッケージが正常にインストールされると、サーバ上にロールバックパッケージが作成されます。このロールバックパッケージを処理すると、サーバはパッケージがインストールされる前の元の状態に戻ります。詳細については、ソフトウェアパッケージのインストールのロールバックを参照してください。
ソフトウェアパッケージを保存する場所(ワークステーションまたはサーバ)は、ソフトウェアパッケージの管理方法によって異なります。
Server Software PackagesコンポーネントはConsoleOneのネームスペースを使用するので、ConsoleOneを実行している任意のワークステーションまたはサーバからソフトウェアパッケージにアクセスできます。
ただし、次の点に注意する必要があります。
複数のワークステーションからのソフトウェアパッケージの管理については、Server Software Packageの管理を参照してください。
ワークステーションからConsoleOneを実行し、ソフトウェアパッケージをそのワークステーションに保存する場合、ConsoleOne内のそのパッケージは、ConsoleOneを実行する他のワークステーションやサーバで利用できません。
異なるワークステーションでサーバ上のConsoleOneを実行する場合は、各ワークステーションのサーバへのドライブマッピングが同じである必要があります。ドライブマッピングが異なる場合、そのサーバに保存したソフトウェアパッケージを別のワークステーションで読み込むことができません。
たとえば、次のような場合にはパッケージを見つけることができます。
次のような場合にはパッケージを見つけることができません。
この2つの例の違いは、各ワークステーションでのサーバAに対するドライブ名だけです。
Distributionには、インストールされるソフトウェアパッケージまたは抽出されるファイルのグループを含めることができます。
Policy/Package Agentは、SubscriberサーバにSoftware Package Distributionを抽出またはインストールします。
ソフトウェアパッケージを作成するときに、ターゲットSubscriberサーバにパッケージをインストールするために満たしていなければならないシステムの要件をパッケージに含めることができます。Subscriberが要件を満たしている場合、パッケージが実際にインストールされる時期は購読スケジュールによって決まります。
ソフトウェアパッケージを含むDistributionをクラスタに送信して各ノードのsys:ボリュームを更新する場合、クラスタ内で現在Subscriberソフトウェアを実行しているノードだけがパッケージを受信します。
クラスタ内のノードを構成するコンピュータがSubscriberソフトウェアを実行するので、ある時点でSubscriberソフトウェアをアクティブに実行しているノードは1つだけです。
したがって、Software Package Distributionを使用してクラスタ内の各ノードのsys:ボリューム上のファイルを更新する場合は、手動でこの作業を行う必要があります。まず、1つのノードを更新し、そのノードを停止することによって、フェールオーバーシーケンス内の次のノードが前のノードでエラーが発生したことを確認し、Subscriberソフトウェアの実行が開始されるようにします。次に、そのコンピュータを更新して停止するという作業を、クラスタ内のすべてのコンピュータが更新されるまで続けます。次に、停止したすべてのサーバを再起動すると、プライマリノードのコンピュータが再び処理を引き継ぎます。
Software Package Distributionを使用して、Tiered Electronic Distributionの.ncfファイルなど、クラスタコンピュータ自体に保存されているファイルを更新できます。これは、Subscriberソフトウェアがクラスタコンピュータの共有ハードディスクドライブに保存されているからです。
次の節では、Server Software Packageのファイルの保存場所および管理方法について説明します。
ソフトウェアパッケージに関連するファイルには3つの種類があります。
環境設定ファイル(.spk): Server Software Packageを作成する場合、最初にパッケージの環境設定ファイル(.spk)を作成します。このファイルの環境設定は、ConsoleOneのServer Software Packagesネームスペース内のソフトウェアパッケージオブジェクトのプロパティで作成します。
.spkファイルは一般的にサイズの小さい(約100KB)ファイルです。したがって、このファイルは一般的に、ソフトウェアパッケージの作成や管理に使用するConsoleOneのインスタンスを実行しているワークステーションに保存できます。
コンパイル済みファイル(.cpk): ソフトウェアパッケージをコンパイルするときに、.spkファイルの環境設定情報から.cpkファイルが作成されます。このファイルは、ファイルや機能などのソフトウェアパッケージの内容を提供します。.cpkファイルはソフトウェアパッケージの内容をサーバにインストールするために使用されます。
コンパイル済みのソフトウェアパッケージには多数のファイルが含まれる場合があるので、一般的に、.cpkファイルは十分な空きディスク容量があるサーバに保存します。ただし、機能だけを含む小さな.cpkファイルはワークステーションに保存することもできます。
初期設定ファイル(.ser): 初期設定ファイル(snapinprefs.ser)は、ソフトウェアパッケージの作成に使用したワークステーション上に自動的に作成されます。このファイルには、ソフトウェアパッケージの.spkファイルへのポインタが含まれています。
この初期設定ファイルによって、ソフトウェアパッケージがConsoleOneのネームスペースにあることを確認できます。つまり、ソフトウェアパッケージがConsoleOneのインスタンスのServer Software Packagesネームスペースに表示されるのは、.spkファイルのパスがConsoleOneのインスタンスを実行するワークステーション上にある初期設定ファイルにリストされている場合だけです。
新しいソフトウェアパッケージを作成する場合は、.spkファイルのローカルパスを指定します。ソフトウェアパッケージをコンパイルする場合は、サーバの.cpkファイルのパスを指定します。ConsoleOneを終了した後、ソフトウェアパッケージを作成、削除、またはコンパイルするたびに、.spkファイルのパスがsnapinprefs.serファイルに記録されます。
.cpkファイルへのパスもsnapinprefs.serファイルに記録されます。次回ソフトウェアパッケージをコンパイルするときには、ウィザードによって.cpkファイルの以前の保存場所が表示されるので、パッケージをコンパイルするたびにファイルの場所を覚えておく必要はありません。ただし、Tiered Electronic Distributionを使用して.cpkファイルを配布する場合は、.cpkファイルを保存した場所をメモしておく必要があります。.cpkファイルの場所はソフトウェアパッケージのプロパティには保存されないからです。
特定のワークステーションを1台だけ使用して、すべてのソフトウェアパッケージファイルを表示、作成、および管理している場合は、.spkファイルをそのワークステーションに保存できます。
複数のワークステーションからソフトウェアパッケージを管理することもできます。この場合は、.spkファイルの保存場所をネットワークサーバに一元化する必要があります。また、この方法では、マスタsnapinprefs.serファイルを使用して、任意のワークステーションからすべてのソフトウェアパッケージを表示できるようにする必要があります。
次の2つの節では、これらの管理オプションについて説明します。
ワークステーションを1台だけ使用してソフトウェアパッケージを表示、作成、および管理する場合は、.spkファイルをワークステーションに、.cpkファイルをサーバに保存できます。
ConsoleOneがインストールされているワークステーションからConsoleOneを実行している場合でも、ネットワークサーバ上にインストールされているConsoleOneを使用するワークステーションからConsoleOneを実行している場合でも、ConsoleOneを実行するために使用されているワークステーション上のsnapinprefs.serファイルが更新されます。
複数のワークステーションを使用して同一セットのソフトウェアパッケージを表示、作成、および管理する場合は、すべての.spkファイルをネットワークサーバに保存して、各ワークステーションからアクセスできるようにする必要があります。
異なるワークステーションを使用して、異なるソフトウェアパッケージのセットを管理することもできます。任意のワークステーションを使用して.spkファイルを作成すると、それ自体のソフトウェアパッケージ初期設定ファイルが、ソフトウェアパッケージの管理に使用するワークステーションに作成されます。
snapinprefs.serファイルのマスタコピーを使用する場合は、複数のワークステーションからすべてのソフトウェアパッケージを管理できます。
ConsoleOneでServer Software Packageオブジェクトを作成すると、ソフトウェアパッケージ初期設定ファイル(snapinprefs.ser)が、ConsoleOneを実行しているワークステーションの次の場所に作成されます。
c:\documents and settings\user_ID\.consoleone (Windows 2000)
user_IDは、ログインしたときの権限(管理者など)に関連するユーザディレクトリです。
ソフトウェアパッケージのフルパスおよびファイル名はドライブに依存します。snapinprefs.serファイルには、ワークステーションによって作成された各.spkファイルのドライブ名、パス、およびパッケージ名が記述されます。
snapinprefs.serファイルは各ワークステーションに固有です。ワークステーションを使用して.spkファイルを追加または削除するたびに更新されるのは初期設定ファイルです。したがって、3台の異なるワークステーションを使用して.spkファイルを作成した場合、各ワークステーションに1つずつ、3つの異なるsnapinprefs.serファイルが作成されます。
ConsoleOneを起動すると、そのワークステーションで実行されているConsoleOneのインスタンスによって、そのワークステーション用のsnapinprefs.serファイルが作成されているかどうかが確認されます。また、ConsoleOneがそのワークステーションにインストールされているか、またはサーバにインストールされているインスタンスをそのワークステーションで実行しているかが確認されます。snapinprefs.serファイルが存在しない場合は、ConsoleOneを終了するときにsnapinprefs.serファイルが作成されます。snapinprefs.serファイルが存在する場合は、snapinprefs.serファイルが更新され、新しい.spkファイルへのフルパスが保存されます。
snapinprefs.serファイルを、あるワークステーションから別のワークステーションにコピーできます。ただし、snapinprefs.serファイルを別のワークステーションからのコピーと置換した後、変更を有効にするには、ConsoleOneを再起動する必要があります。
パッケージを作成した後でドライブマッピングを変更すると、パッケージに対するsnapinprefs.serファイルの場所が変わるので、ソフトウェアパッケージが使用できなくなる場合があります。ただし、UNCパスを使用している場合は、ワークステーションがそのUNCパスにアクセスできる限り、この問題は発生しません。
ワークステーション上のsnapinprefs.serファイルを置き換える場合は、新しくコピーしたsnapinprefs.serファイルに不足しているソフトウェアパッケージを手動で挿入する必要があります。この作業を行わない場合、置換されたsnapinprefs.serファイルにリストされていたソフトウェアパッケージは、ワークステーション上でアクセスできなくなります。
ワークステーションをソフトウェアパッケージの作成に一度も使用したことがない場合でも、別のワークステーションから適切な場所(c:\....\.consoleone)にsnapinprefs.serファイルをコピーできます。コピーした後、ConsoleOneを起動すると、コピーしたsnapinprefs.serファイルにリストされていたすべてのソフトウェアパッケージが表示されます。
詳細については、例:マスタsnapinprefs.serファイルの使用を参照してください。
複数のワークステーションを使用して同一セットのソフトウェアパッケージを作成、削除、およびコンパイルする場合は、次のようにしてください。
これによって、ConsoleOneを起動したワークステーションですべてのソフトウェアパッケージを表示できます。
これによって、ワークステーションの最新のソフトウェアパッケージの追加が記述された.serファイルの新しいマスタコピーが作成されます。
snapinprefs.serファイルのマスタコピーの使用に意味があるのは、あるワークステーションでConsoleOneを終了し、別のワークステーションでConsoleOneを起動する場合だけです。この連続的な方法は、ConsoleOneの複数のインスタンスを同時に実行し、各インスタンスがローカルのsnapinprefs.serファイルを更新する場合には機能しません。最後に終了したConsoleOneのインスタンスが、そのローカルの.serファイルをマスタコピーに上書きします。
重要: snapinprefs.serファイルにログが記録される処理は、ConsoleOneでのソフトウェアパッケージの作成、削除、またはコンパイルだけです。したがって、バッチファイルからConsoleOneを起動しなくても、ConsoleOneを使用して、プロパティの表示や編集など、ソフトウェアパッケージを管理することができます。バッチファイルを使ってConsoleOneを起動しない場合は、ConsoleOneで.spkファイルを追加、削除、またはコンパイルしないでください。
このマスタコピー/単一のサーバ/複数のワークステーションを使用する方法でソフトウェアパッケージを管理するには、以下の一般的な規則に従ってください。
この操作が必要になるのは、バッチファイルはConsoleOneを終了するときに、常にソフトウェアパッケージストレージサーバ上のマスタコピーを上書きするからです(バッチファイルを使用してConsoleOneを起動した場合)。誤ってマスタsnapinprefs.serファイルが上書きされ、新規作成したソフトウェアパッケージへのリンクが失われる場合があります。
たとえば、ワークステーションAでバッチファイルを使用してConsoleOneを起動し、ソフトウェアパッケージ以外の管理作業を行い、何らかの理由でワークステーションBを使ってソフトウェアパッケージを新規作成する(再度バッチファイルを使用する)ことにして、ワークステーションBでConsoleOneを終了した後、ワークステーションAでConsoleOneを終了したとします。ワークステーションBで新規作成したソフトウェアパッケージは、マスタsnapinprefs.serファイル内でのリンクが失われます。
最適なシナリオは、1人の管理者が複数のワークステーションを使用してソフトウェアパッケージを管理できるようにすることです。複数の管理者がいる場合は、マスタsnapinprefs.serファイルでソフトウェアパッケージの追加や削除に関する最新情報を互いにを上書きしないように調整する必要があります。
詳細については、例:マスタsnapinprefs.serファイルの使用を参照してください。
サーバ上のマスタコピーが常に正しく更新されるようにすることは、タイミングの問題です。たとえば、次のシナリオでは、まずワークステーションAで最初のsnapinprefs.serファイルが作成され、マスタsnapinprefs.serファイルとしてネットワークサーバにコピーされました。両方のワークステーションでWindows 2000を使用しています。
ConsoleOneの使用前後のイベントを制御するために、バッチファイルを使用してConsoleOneを起動しています。たとえば、次のように入力します。
これは、管理者AがワークステーションAにコピーしたsnapinprefs.serと同じものですが、管理者Aが追加したssp1.spkの情報は更新されていません。
この更新されたマスタsnapinprefs.serファイルには、ssp2.spkの場所が保存されています。
この更新されたマスタsnapinprefs.serファイルには、ssp1.spkの場所が保存されています。ただし、ssp2.spkの場所は失われます。これは、ワークステーションBによって更新されたマスタsnapinprefs.serファイルが、後で行われたワークステーションAからの更新によって上書きされるからです。
このシナリオでは、マスタsnapinprefs.serファイルにssp2.spkの場所の情報が含まれていないので、管理者Bはssp2.spkにアクセスできなくなります。マスタsnapinprefs.serファイルは、ssp1.spkの場所だけが含まれている管理者Aのsnapinprefs.serファイルに置き換えられています。ただし、[Insert Software Package]オプションを使用して手動でssp2.spkをConsoleOneに挿入し、ssp1.spkファイルと共にsnapinprefs.serファイルにリストすることができます。
この複数のワークステーションによる管理が機能するには、ネットワークサーバに保存しているマスタsnapinprefs.serファイルが、.spkファイルを作成、削除、またはコンパイルするために、一度に1台のワークステーションでのみ使用されるようにする必要があります。ただし、複数のワークステーションを使用して、同時にServer Software Packageオブジェクトのプロパティを表示または編集できます。これは、表示および編集機能によってsnapinprefs.serファイルが更新されることはないからです。
警告: snapinprefs.serファイルに影響を与えずにServer Software Packageオブジェクトのプロパティに対する編集を実行できます。ただし、Server Software PackageオブジェクトはeDirectoryTM内ではなく、ネームスペース内にのみ存在するので、サーバのオペレーティングシステムがファイルロックによる保護機能を提供していない限り、.spkファイルがファイルロックによって保護されない場合があります。したがって、複数のワークステーションを使用してソフトウェアパッケージを管理する場合は、.spkファイルの上書きを防止するための管理コントロールを考案する必要があります。
サーバがソフトウェアパッケージの要件のいずれかを満たしていない場合、ソフトウェアパッケージはインストールされません。
ソフトウェアパッケージのインストールによるすべての変更はシステムによってトラッキングされます。ソフトウェアパッケージのインストールのロールバックで説明されている例外を除いて、サーバが要件を満たしており、インストールが開始された後、エラーによってインストールが途中で停止した場合は、インストールプログラムは、自動的に、その時点までに行った変更を元に戻し、サーバの状態をインストールが開始される前の状態に戻します。
ソフトウェアパッケージのロールバックはデフォルトで有効になっています。インストールを元に戻す必要がないことが明確である場合以外は、ロールバックを無効にしないでください。
ソフトウェアパッケージのインストールをロールバックするには、2つの方法があります。
ソフトウェアパッケージはアンインストールされ、サーバはパッケージがインストールされていなかった状態に戻ります。ただし、インストールしたアプリケーションを使用してサーバに対して行った変更内容は除きます。
正常なパッケージのインストールの途中で、一部のコンポーネントがインストールされなかった場合でも、インストールプログラムはソフトウェアパッケージによってインストールされなかった対象をトラッキングしているので、ロールバックは機能します。
ソフトウェアパッケージのインストールをロールバックする場合、そのサーバに最後にインストールされたソフトウェアパッケージがロールバックされます。最後にインストールされたソフトウェアパッケージ以外のソフトウェアパッケージをロールバックする必要がある場合は、最新のインストールから順に、対象となるパッケージまで、各インストールをロールバックする必要があります。
たとえば、1台のサーバに3つのパッケージ(パッケージ1、パッケージ2、パッケージ3)をインストールしたとします。パッケージ1を最初にインストールし、パッケージ3を最後にインストールしました。パッケージ2をロールバックする場合、まずパッケージ3をロールバックする必要があります。そのためには、サーバのZENworks Server Managementコンソールのプロンプトで、パッケージ3についてpackage rollbackコマンドを実行した後、パッケージ2についてもう一度このコマンドを実行します。