この章では、データセンターでアプリケーションを管理するための、N1TM Service Provisioning System ソフトウェアのソリューションを紹介します。 プロビジョニングソフトウェア により解決される問題、 プロビジョニングソフトウェア のアーキテクチャー、およびアプリケーション管理に適用されるオブジェクト指向の手法についても説明します。
この章の内容は次のとおりです。
あらゆる種類のビジネスは、その中核業務を担うソフトウェアアプリケーションへの依存を高めています。 これらのアプリケーションの管理作業は、ミッションクリティカルな作業です。 しかし現在まで、データセンターの IT オペレーターには、アプリケーションの配備、設定、および分析を行うためのツールは、基本的なものしかありませんでした。 大部分のデータセンターでは、重要な機能の実行をカスタマイズしたスクリプトに頼っています。 IT オペレーターは、このようなスクリプトに関わるリスクを認識しています。
通常、スクリプトは急いで書かれ、頻繁にエラーが発生します。
スクリプトは長いファイルリストを使用して処理を行う傾向にあり、またアプリケーションを独立した単位として管理する能力に欠けています。
スクリプトは、配備が成功するか失敗するかに影響しうる、アプリケーションの要件、コンポーネントの依存性、ホスト環境などの要因の知識が不完全な状態で書かれています。
スクリプトには、完全な管理プラットフォームの利点が欠けています。たとえば、一般的にスクリプトは、処理を体系的にロールバックしたり、設定値を動的に調整することなどはできません。
N1 Service Provisioning System ソフトウェア はエンタープライズクラスのソフトウェアプラットフォームで、データセンターにおけるアプリケーションの配備、設定、および分析を自動化します。 プロビジョニングソフトウェア は、次の要素に対してオブジェクト指向のアプローチを適用します。
アプリケーションコンポーネント
配備、設定、分析など、 IT オペレーターがアプリケーションコンポーネントに対して実行する作業
このオブジェクト指向のアプローチにより、コンポーネントがアクションの対象になるたびに、アプリケーションコンポーネントに関するすべての情報が自動的に考慮されるようになります。 このような一貫性により、データセンターでの処理がより正確になり、エラーも発生しにくくなります。 アプリケーション認識、つまりアプリケーションの全体としての必要に対する知識により、IT オペレーターはアプリケーションとデータセンターの処理を極めて高度に制御することができます。
N1 Service Provisioning System ソフトウェア には、次の機能があります。
ソフトウェアの展開、パッチ適用、およびアップグレードの自動化と管理
既存の配備プロセスのモデルの作成
ホストにインストールされているソフトウェアの判別
ホストの設定の比較
文書化され矛盾のない設定の監視と保守
N1 Service Provisioning System ソフトウェア は、企業全体のコンピュータ環境を管理するタスクを簡単かつ素早く行えるようにできる、すべての範囲の機能を提供します。
プロビジョニングソフトウェア は、次の機能を実現しています。
パッケージアプリケーションとカスタムアプリケーションの配布、設定、および起動を含む、配備プロセスのエンドツーエンドでの自動化。
大規模コンテンツディレクトリの増分のみの配布を実現することによる、配備の大幅なスピードアップと増分ディレクトリ更新の最適化。
配備前に、配備を成功させるための主要な要件が完備していることを確認するための、完全なシミュレーション。
対象環境のためのアプリケーション設定をリアルタイムに作成することにより、配備時に柔軟性が実現されます。
ダウンタイムの原因になるエラーを防止し、オペレーションチーム全体でベストプラクティスを 活用するための、配備のシミュレーション時にチェックされるアプリケーション依存性情報をコード化する機能。
アプリケーション設定の差分を追跡し、サーバーへの不正な変更を特定する機能により、アプリケーションエラーの根本原因の分析に必要な時間が短縮されます。
参照および再構築に使用し、以前の状態へのロールバックを自動化するための、配備および設定の全データを追跡する中央リポジトリ。
すべてのアプリケーションと管理対象サーバーの全体でシステムにより行われたあらゆるアクションを詳細にログに記録することで、各サーバーに対して 行われたあらゆる変更の完全な監査履歴が提供されます。
COM+ コンポーネントに関しては、COM+ コンポーネントを Interactive User または特定の User および Password のいずれかとしてインストールする場合でも、XML を編集する必要はありません。
多くのアプリケーションでは、ソフトウェアのインストール時またはインストール後にサーバーを再起動する必要があります。 プランには、Microsoft Windows サーバーを再起動できる手順が含まれています。
N1 Service Provisioning System ソフトウェア は、分散型のソフトウェアプラットフォームで、企業全体のコンピュータ環境における配備と設定作業を自動化し、サーバー、インストールされたアプリケーション、およびファイル構造の可視性と制御を向上させます。
プロビジョニングソフトウェア には、特別な目的に使用する、次のアプリケーションが含まれています。
Master Server - N1 Service Provisioning System ソフトウェアアプリケーションをホストするサーバーです。 このサーバーは、コンポーネントとプランを保存し、アプリケーションの配備を管理するためのインタフェースを提供します。 企業内に存在できる Master Server は 1 つのみです。
Remote Agent - インストール先である各ホストに操作を実行する、小さな管理アプリケーションです。 プロビジョニングソフトウェア の制御下にある各ホストは、Remote Agent がインストール済みである必要があります。
Local Distributor - Master Server のプロキシとして動作して、ファイアウォールを介してデータセンター全体のネットワーク通信を最適化し、Gold Server 上の負荷を軽減する、オプションのサーバーです。
Command Line Interface Client - Master Server への通信パスを確立し、Master Server 上でのコマンド実行を実現します。
Web Server - Master Server への通信パスを確立し、Web ブラウザの使用により N1 Service Provisioning System ソフトウェア の制御を実現します。
次の図に、企業ネットワーク上でのアプリケーションのインストール形態の例を示します。
Master Server は、N1 Service Provisioning System ソフトウェア の主処理エンジンです。 専用マシンにインストールされ、プロビジョニングソフトウェア のさまざまな機能を実行する一次処理エンジンを提供します。 Master Server には、オブジェクト、オブジェクト属性、および実行されるタスクを定義するプランがすべて格納されます。 また Master Server は、Command Line Interface (CLI) Client を実行して、N1 Service Provisioning System ソフトウェア、および HTML (グラフィカル) インタフェースを実現する Web Server に対する、タイプ入力による制御を実現します。
Master Server には次の要素が含まれます。
プロビジョニングソフトウェア に登録されている全ホストを識別するデータベース
システムオブジェクト、コンポーネント、およびプランのデータベース
リポジトリに保存されているオブジェクトに対するバージョン管理の実行
IT オペレーターの認証、および正当なユーザーのみが特定の操作を実行していることの保証
依存性の追跡、配備などのタスクを実行するための、特別な目的を持つエンジン
ユーザーへの、HTML インタフェースとコマンド行インタフェース両方の提供
N1 Service Provisioning System ソフトウェア のリポジトリには、権限のあるユーザーにのみアクセス可能な、セキュリティー保護された組み込み SQL リレーショナルデータベースの形式で、コンポーネントとプランが保存されます。 各コンポーネントと各プランのバージョンは、リポジトリにより追跡されます。 たとえば、ある配備の一部として IT オペレーターは、バージョン 3 の Web サーバーと、バージョン 4 のカスタムアプリケーションを配備する、バージョン 5 のプランを実行することができます。
実稼働データセンターの運用では、アプリケーションに対して提案される変更は、 元のアプリケーション開発グループ、QA チーム、実稼働サーバーを管理する IT チームなど、数多くから要求されることがあります。 プロビジョニングソフトウェア では、IT オペレーターはこれらのソースからの設定データを取得し、リポジトリにこれらの変更をチェックインすることができます。 IT オペレーターは、コマンド行インタフェース (CLI) を使用してネットワーク上の任意のマシンにアクセスし、その設定データを取得することができます。 また IT オペレーターは、マシンに Remote Agent をインストールし、HTML インタフェースを使用して、リソースをそのマシンから選択することができます。そのリソースは、プロビジョニングソフトウェア によりリポジトリに保存され、コンポーネントを作成するために設定データと結合されます。
Remote Agent は JavaTM アプリケーションで、N1 Service Provisioning System ソフトウェア により管理される各システム上で実行されます。 Remote Agent が受け持つ仕事は、Master Server により要求されるタスクの実行です。 通常、Remote Agent が起動されるのはアプリケーションの起動時または停止時のみであるため、Remote Agent とデータセンターサーバー上のアプリケーションが、リソースをめぐって競合することはありません。
Remote Agent には、次の機能があります。
Master Server へのサーバーのハードウェアおよびソフトウェア設定の報告
サービスの起動と停止
ディレクトリのコンテンツとプロパティの管理
実際のインストール前のアプリケーションまたはディレクトリ、あるいはその両方、およびファイルのキャッシュ
ソフトウェアのインストールおよびアンインストール
コンポーネントモデルで指定されている OS コマンドおよびネイティブスクリプトの実行
Local Distributor の使用は任意です。 Local Distributor を使用すると、Local Distributor は一時的に Master Server として動作するプロキシになって、アプリケーション、ファイル.およびディレクトリの配布と管理を最適化します。
データセンターでは、Local Distributor を次の目的に使用できます。
配備時のネットワークトラフィックの最小化。 Master Server はコンポーネントのコピーを 1 つ Local Distributor に送信し、Local Distributor は Remote Agent を使用して、サーバーのコレクションでのインストール用にコンポーネントを複製することができます。
ファイアウォールの再設定の最小化。 Master Server と、サーバーのコレクションとの間にファイアウォールが介在する場合、管理者は、配備に関与するあらゆるサーバーに対してではなく、Local Distributor を実行するサーバーに対してのみファイアウォールを開くことができます。
大規模配備時の Master Server への負荷の最小化。
Command-Line Interface Client は、Master Server への通信パスを提供して、遠隔システムからの N1 Service Provisioning System ソフトウェア コマンドの実行を可能にします。 これらのコマンドは、Windows のコマンド行や、bash などの UNIX® シェルを使用して入力します。 コマンド行インタフェースは、sh または Perl を使用したシェルスクリプトの使用もサポートしています。
また Command-Line Interface Client では、Jython プログラミング言語も使用できます。 Jython は、高レベル、動的かつオブジェクト指向の言語である Python の Java による実装です。 Command-Line Interface Client をインストールするプランがあるすべてのシステムでは、Jython をインストールする必要があります。 Jython の詳細および Jython のダウンロードに関しては、http://www.jython.org にアクセスしてください。
Web は、Master Server への通信パスを提供します。
N1 Service Provisioning System ソフトウェア は、N1 Service Provisioning System ソフトウェア アプリケーション間での通信に対して、さまざまなネットワークプロトコルをサポートしています。 次のプロトコルがサポートされています。
Raw TCP/IP
Secure Shell (SSH v1 および v2)
SSL (Secure Sockets Layer)
Raw TCP/IP は、暗号化や認証が追加されていない、標準の TCP/IP です。 Raw TCP/IP の利点としては、追加の設定が不要な点があります。 データセンターネットワークがファイアウォールにより保護され、侵入からセキュリティー保護されている場合は、Raw TCP/IP を使用すると、N1 Service Provisioning System ソフトウェア アプリケーション間で通信を行うための便利な手段になります。
SSH (Secure Shell) は、遠隔コンピュータに安全にアクセスするための、UNIX ベースのコマンドスイートおよびプロトコルです。 SSH は、デジタル証明書を使用して両方のエンドポイントを認証し、パスワードを暗号化することにより、ネットワーククライアント/サーバーの通信をセキュリティー保護します。 ssh では RSA 公開鍵暗号を使用して、接続と認証を管理します。 SSH は telnet などのシェルベースの通信方式よりもセキュリティーが高いため、多くのシステム管理者は SSH を使用して Web サーバーなどの遠隔システムを管理します。
プロビジョニングソフトウェア は、アプリケーションが SSH を使用して通信を行うように設定できます。 N1 Service Provisioning System ソフトウェア は、OpenSSH を明示的にサポートしています。 OpenSSH は SSH のフリーバージョンで、OpenBSD Project が主体となって開発されてきました。 (詳細については、http://www.openssh.com を参照してください。) プロビジョニングソフトウェア は、SSH のほかのバージョンのサポートも設定可能です。
Secure Sockets Layer (SSL) は、IP ネットワークで通信をセキュリティー保護するためのプロトコルです。 SSL は、RSA により開発された公開鍵と非公開鍵からなる暗号化システムを使用してメッセージを保護しつつ、TCP/IP ソケットテクノロジを使用してクライアントとサーバーの間でメッセージを交換します。 SSL のサポートは、Netscape や Microsoft の Web ブラウザだけでなく、大部分の Web サーバー製品にも含まれています。
N1 Service Provisioning System ソフトウェア のアプリケーションは、ネットワーク通信に SSL を使用するよう設定して、プロビジョニングソフトウェア のメッセージが読み取られたり改ざんされることを防止できます。 オプションで、さらにネットワークセキュリティーを高めるため、通信前に SSL を使用して相互に認証を行うように、N1 Service Provisioning System ソフトウェア のアプリケーションを設定できます。
N1 Service Provisioning System ソフトウェア を使用すると、次の各種類のネットワーク接続に適用するプロトコルを選択できます。
Master Server とその子 (Local Distributor や Remote Agent) との間の通信
特定の Local Distributor とその子 (Remote Agent) との間の通信
Master Server と Command Line Interface Client との間の通信
特定のネットワークトポロジのニーズに合うよう、ネットワークセキュリティーを適合させることができます。 たとえば、各データセンターの内部の通信がセキュリティー保護されていても、遠隔データセンターへのネットワーク接続が一般のインターネットを通過する場合は、インターネットを経由したすべての通信のセキュリティーが保護されるように、遠隔データセンターのファイアウォールの内側にインストールされたLocal Distributor と通信するときはSSL を使用するよう、Master Server を設定することができます。 また、Local Distributor はその子との通信には Raw TCP/IP を使用できますが、これはローカルネットワーク上のすべての通信はセキュリティー保護され、SSL は不要であるためです。
SSL と SSH の設定の詳細については、『N1 Service Provisioning System 4.1 インストールガイド』を参照してください。
N1 Service Provisioning System ソフトウェア は、データセンター環境に適合し、すでに配置されているシステムの管理、監視、および制御を補完するよう設計されています。
多くのインターネットデータセンターに見られるハードウェアとソフトウェアの多様性を認識し、プロビジョニングソフトウェア はクロスプラットフォームサポートを念頭に置いて設計されています。 標準的な通信プロトコル (HTTP、HTTPS、SSH、および TCP/IP) と標準のファイル形式およびプレゼンテーション形式 (HTML および XML) を使用し、標準的なアプリケーションアーキテクチャー (J2EETM および .Net) と連携します。 アプリケーションが UNIX ベースであるか Windows であるかに関係なく、すべてのアプリケーションを管理するための標準ベースのシステムをデータセンターに提供します。
N1 Service Provisioning System ソフトウェア の Master Server は、次のオペレーティングシステムが稼働するシステムにインストールできます。
Solaris 8、Solaris 9
Red Hat Linux 7.2、7.3、8.0 および Red Hat Advanced Server 2.1
Microsoft Windows 2000 Server および Microsoft Windows 2000 Advanced Server
N1 Service Provisioning System ソフトウェア の Remote Agent、Local Distributor、および CLI Client は、次のオペレーティングシステムが稼働するシステムにインストールできます。
Solaris 2.6、Solaris 7、Solaris 8、Solaris 9
Red Hat Linux 7.2、7.3、8.0 および Red Hat Advanced Server 2.1
IBM AIX 4.3.3、5.1、5.2
Microsoft Windows 2000 Server および Microsoft Windows 2000 Advanced Server
システム要件の詳細については、『N1 Service Provisioning System 4.1 インストールガイド』を参照してください。
次の表に、HTML ユーザーインタフェースに関する Web ブラウザの要件の概要を示します。
表 1–1 HTML ユーザーインタフェースの Web ブラウザの要件
プラットフォーム |
ブラウザ |
---|---|
Solaris |
Netscape 6.2.2、Netscape 7.0 |
Red Hat |
Netscape 6、Netscape 7.1 |
Windows |
Internet Explorer 5.5 および 6、Netscape 6、Netscape 7.1 |
N1 Service Provisioning System ソフトウェア は、地域対応された環境でインストールおよび実行できるように、国際化対応になっています。 地域対応された環境でソフトウェアを実行する場合は、次の要件に従う必要があります。
すべてのアプリケーションは、同一のロケールまたは同等のロケールで実行する必要があります。 Remote Agent、Local Distributor、および CLI Client は、Master Server と同じロケールで実行する必要があります。
ソフトウェアのファイル名、ディレクトリ名およびその他の入力に使用できるのは ASCII 文字だけです。
N1 Service Provisioning System ソフトウェア は、アプリケーションの配備と設定を管理するための、オブジェクト指向の手法を提供し、 サーバー、インストールされたアプリケーション、およびファイル構造の可視性と制御が改善されています。
オブジェクトは大まかに、インフラストラクチャ、メイン、サポートのグループに分けられています。 インフラストラクチャオブジェクトには、ユーザー、ユーザーグループ、ホストおよびホストセットがあります。 メインオブジェクトには、リソース、コンポーネント、およびプランが該当します。 サポートオブジェクトには、比較および通知が該当します。
コンポーネントとは、アプリケーションを定義するソース情報 (ソフトウェア/ファイル構造などのコンポーネント) の論理グループです。
N1 Service Provisioning System ソフトウェア は、単純コンポーネントと複合コンポーネントの 2 種類をサポートしています。 単純コンポーネントは、1 つのソース項目を参照するコンポーネントです。 単純コンポーネントにより参照されるソース項目の型は、そのコンポーネントのコンポーネント型に対応します。 ファイル、ファイルのディレクトリ、レジストリキー、COM オブジェクト、JavaTM Archive (JAR)、EAR、IIS Web サイトなどがその例です。複合コンポーネントは、その他のコンポーネントを参照するコンポーネントです。 複合コンポーネントが含むことができる単純コンポーネントまたは複合コンポーネント、あるいはその両方の数は、制限されていません。
単純、複合に関係なく、すべてのコンポーネントには次の特性が共通しています。
コンポーネントを識別するテキストフィールドです。 これには、コンポーネントが保存されているパスが含まれます。
ソース情報の処理方法の制御に使用される、ユーザー定義可能なオブジェクト (コンポーネント型) です。 コンポーネント型オブジェクトは、実際には別のコンポーネントで、ファイル、ディレクトリ、設定などのソースオブジェクトの取得と配備を管理します。 プロビジョニングソフトウェア には、WebLogic、Windows、UNIX® およびいくつかの汎用モデルをサポートする多数のコンポーネント型が装備されています。
コンポーネントのバージョン番号です。 コンポーネントを変更するたびに、リポジトリによってバージョン番号が増分されます。
コンポーネントの配備に有効なターゲットである、プラットフォームまたはオペレーティングシステムを識別します。
コンポーネントのソース情報の発生源を識別します。 これにはパスが含まれています。
コンポーネントがチェックインされた日付と時刻です。 つまり、作成または変更された日付と時刻です。
コンポーネントをチェックインしたユーザーのユーザー ID です。 これにより、問題や矛盾の障害追跡を行う際の監査トレールが提供されます。
「components」ページでの並べ替えの制御に使用できる、ユーザー定義可能なテキスト文字列です。
コンポーネントオブジェクトを説明するテキスト文字列です。 この属性は プロビジョニングソフトウェア によっては使用されませんが、ユーザーに有意義な情報を提供できます。
コンポーネントの属性の詳細な説明については、「コンポーネントの構築」を参照してください。
N1 Service Provisioning System ソフトウェア は、次の操作の実行方法を含む、コンポーネントに関する重要な情報が含まれるメタデータとともに、各コンポーネントを保存します。
コンポーネントのインストールおよびアンインストール
コンポーネントの構成
管理コンソールなどのインタフェースを介した、コンポーネントの制御
ほかのアプリケーションコンポーネントと比較したコンポーネントの分析。たとえば、比較においてログファイルと/tmp ディレクトリを考慮する必要があるかどうかの指定
コンポーネントの起動とシャットダウン
このメタデータを読み込み、コンポーネントを比較することで、プロビジョニングソフトウェア はコンポーネントを識別し、コンポーネント間の依存性を追跡することができます。
図 1–2 に、コンポーネントの内容を示します。
このメタデータ以外に、コンポーネントには設定テンプレートが含まれます。IT オペレーターは設定テンプレートを使用すると、サーバーごとに、または実行プランで定義されている規則に従って、ポート番号などの特定の設定パラメータを調整することができます。 これらの変数は、従来のデータセンタースクリプトにハードコードされているのではなく、操作の実行時に設定可能です。
コンポーネントモデルは XML で記述します。 オブジェクトモデルには、Common Information Model (CIM) と、J2EE コンポーネントの標準管理モデルの提案である Java Specification Request (JSR-77) の機能が組み込まれています。 N1 Service Provisioning System ソフトウェア のコンソールを介して、コンポーネントテンプレートを使用して、依存のコンポーネントを素早くカスタマイズすることができます。 また、社内で開発されるアプリケーション用の新しいテンプレートを作成することもできます。 複雑な J2EE コンポーネントに対して高度なカスタマイズを行うために、コンソールの HTML インタフェースや、XML Spy などの XML 編集ツールを用いてコンポーネントを編集することができます。
プロビジョニングソフトウェア では、コンポーネントとプランはセキュリティー保護されたリポジトリに保存されます。 コンソールを使用すると、コンポーネントおよびプランをリポジトリとの間でチェックインまたチェックアウトし、比較を実行して、変更を行うことができます。
配備などのデータセンター操作を実行するには、コンポーネントにプランを適用します。 N1 Service Provisioning System ソフトウェアを介して、データセンターのあらゆる操作には、各コンポーネントに関して入手可能なすべての情報が組み込まれます。 またエラーは自動的に検出され、 失われた情報にはフラグが付けられます。 自動化によって、配備と設定変更はより迅速かつ正確に行われるようになります。
N1 Service Provisioning System ソフトウェア では、IT オペレーターがコンポーネントモデルをすぐ簡単に使用できるようになっています。 Master Server には、インターネットデータセンターで最も使用頻度が高いコンポーネント用のテンプレートが付属する、コンポーネントライブラリが含まれています。 表 1–2 に、ライブラリに含まれるテンプレートの一覧を示します。
表 1–2 コンポーネントライブラリのテンプレート
アプリケーションコンポーネントテンプレート |
シンプルなファイルおよびディレクトリ J2EE Enterprise Archive (EAR) J2EE Web Archive (WAR) J2EE Java Archive (JAR) Solaris パッケージ Solaris OS パッチ IIS Web サイトまたは仮想ディレクトリ COM+ アプリケーション COM コンポーネント MSI アプリケーション Windows レジストリキー Windows データソース .Net アプリケーション ASP .Net アプリケーション |
Web サーバーテンプレート |
SunTMONE /iPlanetTM (管理対象インスタンスが付属する admin) Apache Web サーバー Microsoft IIS (Metabase 設定が付属) |
アプリケーションサーバーテンプレート |
(単純、管理対象、およびクラスタ化インスタンスが付属する admin) IBM WebSphere (単純および複製されたインスタンスが付属する admin) Microsoft コンポーネントサービス/COM+ Microsoft Transaction Server (MTS) |
これらのコンポーネントとの連携に加えて、プロビジョニングソフトウェア は、アプリケーションの配備、設定、および分析の一部として、標準的なデータベース、ロードバランサーおよびオペレーティングシステムと協調して処理を行うことができます。 表 1–3 に、アクションの対象にすることができる、データベース、ロードバランサー、およびオペレーティングシステムの一覧を示します。
表 1–3 アクションの対象にすることができる、データベース、オペレーティングシステム、およびロードバランサー
データベース |
Oracle Enterprise Microsoft SQL Server |
サポートされるオペレーティングシステム |
SolarisTM 6、Solaris 7、または Solaris 8 の各リリース IBM AIX 4.3.x、5.1、5.2 Red Hat Linux 7.2、7.3、8.0 Red Hat Advanced Server 2.1 Microsoft Windows Server 2000 |
ロードバランサー |
Nortel/Alteo WebSystems ACEdirector Foundry ServerIron |
N1 Service Provisioning System ソフトウェア は、アプリケーションに関する情報をコンポーネントモデルに取得するのと全く同じように、データセンターの手続きに関する情報をプランに保存します。 プランは XML 文書で、1 つ以上のコンポーネント、またはほかのプランの呼び出しを操作するために使用される一連の命令が含まれます。 プランでは、この情報を明示的にコード化したり、特定のサーバー名やポート番号などの詳細情報の一部を、IT オペレーターが実行時に指定できるようにすることが可能です。 プロビジョニングソフトウェアは、プランを実行する際にコンポーネントモデルを読み込み、特定のファイルセットのインストールやディレクトリへのアクセス権の設定など、特定の操作を実行するための設定要件、依存性、および命令に関する詳細情報を得ます。
N1 Service Provisioning System ソフトウェア は、プランを次の目的に使用します。
配備などの操作の実行
操作時のコンポーネント間の動作の同期
操作時のサーバー間の動作の同期
プランには、単純と複合の 2 種類があります。 単純プランには、1 つまたは複数の対象ホストに対して一方的に実行され、ほかのプランを呼び出すことはできない一連の命令が含まれます。 アプリケーションのシャットダウン、ロードバランサーからのサーバーの除外などの、複数の手順から成る配備における各手順が、注意深く記述された独自のプランにより管理できるように、複合プランはほかのプランのみを呼び出すことができます。
たとえば、多階層のアプリケーションをロールアウトするプランは、次の 4 つのサブプランから構成されます。
ロードバランサーからサーバーを除外するサブプラン
Web サーバーを更新するサブプラン
アプリケーションサーバーを更新するサブプラン
サーバーをロードバランサーに再び組み込むサブプラン
またロールアウトプラン自体も、サブプランとサーバーとの間の動作を同期化します。 たとえば、10 台のサーバーから成るクラスタでこのプランを実行すると、N1 Service Provisioning System ソフトウェア により、各サブプランが正しく完了し、次のサブプランを継続する前に 10 台のサーバーすべてが同期していることが保証されます。
コンポーネント、プラン、およびサブプランに変数を挿入すると、オペレーターはデータセンターの操作をきめ細かく制御できます。 たとえば、コンポーネントを設定して、ポート番号に関する変数を追加することができます。 プランでは、この変数に値を割り当てることができます。 またIT オペレーターは、CLI またはHTML インタフェースを介して、プランで指定されている値に優先した 値を変数に割り当てることができます。 変数の設定は、ホストのセットや個別のホストに適用できます。
実行プランのための共通形式を提供することで、プロビジョニングソフトウェア は、多くのデータセンターに見られる、さまざまなスクリプト形式や言語の混沌状態を置き換えることができます。 オペレーターは、急いで書かれたスクリプトの内容を理解しようとするのではなく、集中的にバージョン管理が実施されるリポジトリから、必要なプランを選択することができます。
N1 Service Provisioning System ソフトウェア は、最も一般的な型のコンポーネントに対して、インストールやアンインストールなど数多くの操作に関する手続きを自動的に生成します。 配備で、1 セットのホストに対して一度に 1 つのコンポーネントをインストールする場合は、組み込み手続きを使用できるため、プランを作成する必要がありません。
次のような目的には、組み込み手続きではなくプランを使用します。
1 つの手続きで、複数のコンポーネントのインストールを自動化する
対象ホストのさまざまなセットへのコンポーネントのインストールを自動化する
インストール手続きに依存性チェックを追加する。たとえば、インストールにおいて、次のコンポーネントをインストールする前に、特定のコンポーネントのインストールと実行を確認する場合など
前の手順が正しく完了するまで特定の手順が始まらないように、インストールで手順を同期化する
N1 Service Provisioning System ソフトウェア では、サーバーやホストをオブジェクトとしてモデル化し、そのモデルをホストデータベースに保存することにより、サーバーやホストの管理が簡単に行えます。 プロビジョニングソフトウェア ではホスト型を定義できるため、ホストを設定や機能によって分類できます。 また、ホストセット、つまり 1 つの単位として管理できるホストのグループも作成できます。 ホスト検索を使用すると、現在の属性に基づいて、ホストを動的にグループ化することができます。 このようなホスト管理機能は、すでに説明したコンポーネントやプランなどのオブジェクトと連携して、データセンターにおけるアプリケーションの配備、設定、および分析を大幅に単純化します。 プロビジョニングソフトウェア でホストを操作するためには、Remote Agent をインストールし、データベースに登録し、プロビジョニングソフトウェア で使用する準備を行う必要があります。 これらの処理をすべて経たホストは、ノードとも呼ばれます。 ホストの詳細については、第 4 章「ホスト」 を参照してください。
N1 Service Provisioning System ソフトウェア の全オブジェクトには数多くの属性があり、属性には、名前などオブジェクトを識別するもの、オブジェクトを分類するもの、バージョンを追跡するもの、グループ化や表示/非表示を定義するものなどがあります。 属性は、特定のオブジェクトに固有のものもあれば、一部またはすべてのオブジェクトに使用できるものもあります。
N1 Service Provisioning System ソフトウェア には、内部リソースに自動的に適用される、system と呼ばれる組み込みカテゴリが含まれます その他すべてのカテゴリはユーザー定義可能です。 命名規則に関しては、カテゴリの定義には慎重な計画が必要です。 カテゴリの命名規則が十分適切に考慮されたものであれば、検索で使用すると強力なツールになり、またオブジェクトのグループを素早く識別または選択するための表示になります。 各オブジェクトのカテゴリは、特定の各オブジェクトに関連する節で詳細に説明されています。
カテゴリを使用すると、次の要素を分類できます。
プラン
コンポーネント
リソース
比較
時間が経過すると、オブジェクトは古くなる場合があります。 不要な表示を減らすため、Web ページのデフォルトや CLI コマンドで表示されないように、不要なオブジェクトを非表示にすることができます。 また、多くのオブジェクトを削除することも可能です。
アプリケーションをターゲットのホストコンピュータでインストール、設定、および管理できるように、モデル化によりアプリケーションの表現が作成されます。 アプリケーションのモデルは、アプリケーションが動作する特定のホストコンピュータの設定に基づいて作成できます。また、ソースコード制御システムなどのリポジトリに保存されるコンポーネントに基づいても作成できます。
特定のアプリケーションの参照システムとして機能するよう設計されたホストコンピュータは、Gold Server と呼ばれます。 [Gold Server の設計思想の概要については、Traugott および Huddleson『Bootstrapping an Infrastructure』 Twelfth USENIX Systems Administration Conference (LISA "98), Boston, Massachusetts を参照してください。 この資料を含む、IT インフラストラクチャの問題を専門に扱うその他の資料は、http://www.infrastructures.org から入手できます。 ] 多くの組織では、開発チーム、QA チーム、またはデータセンターチームが Gold Server を作成し、稼働環境に配備する必要があるアプリケーションの、テストと承認が完了した例を IT オペレーターが使用できるようにします。
N1 Service Provisioning System ソフトウェア を使用すると、Gold Server などのリポジトリから、アプリケーションをモデル化することができます。 作成されたコンポーネントモデルには、次の機能があります。
設定の変更不可能な側面、つまりアプリケーションがどの場所にインストールされても使用しなければならない内容と設定の維持
設定のホスト固有またはインストール固有の側面、たとえばホストごとに異なるポート番号 やIP アドレスなどを動的に調整するための変数の確立
設定の二次的な側面、たとえばGold Server 上のログファイルの内容などの省略
モデルを作成することで、アプリケーションがより管理しやすくなります。 アプリケーションモデルは、手動での管理が困難または不可能である、ファイル、ディレクトリなどの大量の情報を収容することができます。
J2EE アプリケーションでは、一般的にコンポーネントはディレクトリやアーカイブなどの複数のリソースから構成されます。 J2EE アプリケーションのモデル化においては、ユーザーはコンポーネントを構成するリソースにチェックインしてから、リソースに基づいてコンポーネントモデルを構築します。
一般的に、J2EE アプリケーションのモデル化は、次の手順で行います。
ホストを定義および設定します。
各コンポーネントを構成するリソースをチェックインします。
モデル化するコンポーネントとともに、Remote Agent を Gold Server または開発システムにインストールします。
コンポーネントに含めるリソースを選択します。
コンポーネントを定義します。
コンポーネントを構成するリソースの定義に加えて、設定パラメータ用の変数を作成し、コンポーネントの依存性に関する情報を追加することなどが可能です。
コンポーネントを配備および設定するためのプランを記述します。
プランを実行します。
必要に応じて比較を実行し、アプリケーション環境を分析します。
通常、Windows のアプリケーションコンポーネントは、独立したリソースのコレクションとしてではなく、全体を 1 つの単位として管理されます。
一般的に、Windows アプリケーションのモデル化は、次の手順で行います。
ホストを定義および設定します。
コンポーネントをチェックインします。
モデル化するコンポーネントとともに、Remote Agent を Gold Server または開発システムにインストールします。
モデル化するコンポーネントを選択します。 N1 Service Provisioning System ソフトウェア には、最も一般的な Windows アプリケーションコンポーネント用のモデルテンプレートが含まれています (リストは、表 1–2 を参照)。 多くの場合、Windows コンポーネント用のリソーステンプレートを選択したら、それ以上のモデル化は必要ありません。
適宜、コンポーネントにリソースを追加します。
コンポーネントを構成するリソースの定義に加えて、設定パラメータ用の変数を作成し、コンポーネントの依存性に関する情報を追加することなどが可能です。
コンポーネントを配備および設定するためのプランを記述します。
プランを実行します。
必要に応じて比較を実行し、アプリケーション環境を分析します。
N1 Service Provisioning System ソフトウェア には、次の 2 つのインタフェースがあります。
NetscapeTM または Internet Explorer Web ブラウザを介してアクセスする HTML インタフェース
シェル、Windows プロンプト、またはスクリプトを介してアクセスするコマンド行インタフェース (CLI)
HTML インタフェースは一連のWeb ページから構成され、認証済みユーザーはコンポーネントのモデル化、プランの開発および実行、およびその他の処理の実行が可能になります。 HTML インタフェースは、使いやすいように設計されています。 Netscape および Microsoft Internet Explorer Web ブラウザと連携し、各ページでは小数の基本的なナビゲーションツールを使用します。
HTML インタフェースのすべての Web ページでは、次の規則を使用します。
ポップアップウィンドウを除く全ページで、左側にナビゲーションメニューが表示されます。 左側のナビゲーションメニューは、プラス (+) またはマイナス (-) 記号をクリックすることで、展開したり折りたたむことができます。
すべての大見出しでは、クリックすると、その大見出しに関連付けられた多数の有用なリンクが表示されます。
情報はテーブル形式で表示されます。
プランやコンポーネントなどの新しいオブジェクトは、テーブルの先頭の行に情報を入力して作成します。
「Edit」をクリックすると、コンポーネントなどのオブジェクトの内容を編集するためのグラフィカルなコントロールが含まれる Web ページに移動します。
「Advanced Edit」をクリックすると、コンポーネントやプランの XML を編集できる Web ページに移動します。
問題に関する情報は赤色で表示されます。
現在のページの位置は常にページのトップに表示されます。また記号「>」を使用すると、あるページが別のページからリンクされていることを示します。たとえば、「Components」>「Details」>「Variables Settings」という位置は、現在「Variables Settings」ページを表示していて、このページは「Components」「Details」ページからアクセス可能であり、さらにこのページはメインの「Components」ページからアクセス可能であることを示します。
数多くの組み込みコンポーネントと、ユーザーが作成するコンポーネントに埋もれて、コンポーネント、コンポーネント型、およびプランの数が極めて大きくなり、必要なコンポーネントを探すことが困難になる場合があります。 特定のオブジェクトを検出および使用しやすくするため、N1 Service Provisioning System ソフトウェア では、コンポーネント、コンポーネント型、およびプランを階層型のファイリングシステムに整理することができます。
次では、HTML ユーザーインタフェースの「Path」領域について説明します。
現在の作業用ディレクトリの名前が表示されます。
コンポーネントまたはプランを一覧表示できます。 プランを選択すると、左側のナビゲーションメニューで「plans」オプションをクリックした場合と同じように、HTML ユーザーインタフェースには「plans」ページが表示されます。
リストオブジェクトをカテゴリによりフィルタリングします。
特定のディレクトリにあるオブジェクト (コンポーネント、コンポーネント型、またはプラン) にアクセスするには、「change path...」というテキストをクリックします。 プロビジョニングソフトウェア により、「Change Path」ページが表示されます。
単に「selected path」テキストフィールドに目的のパスを入力するか、必要なアイコンをクリックしてパスを選択します。
コマンド行インタフェース (CLI) は、Windows プロンプト、シェル、スクリプトなど、HTML ではないインタフェースを介して プロビジョニングソフトウェア にアクセスするためツールの集まりです。 CLI コマンドをスクリプトで使用すると、ファイルのチェックインなどの操作が自動化できます。 CLI コマンドは、Web ブラウザや HTTP 接続が使用できないシステムから Master Server にアクセスするためにも使用できます。
CLI は、Master Server にネットワークで接続可能なすべてのコンピュータにインストールできる、Command-Line Interface Client です。 このクライアントはコマンドをネイティブオブジェクトに解析し、それらを Master Server に送信します。 続いてコマンドの結果は、クライアントによりテキスト形式に変換され、ユーザーに表示されます。
大部分の CLI コマンドには認証が必要です。 ユーザーは、ユーザー名とパスワードを指定するか、各コマンドにセッション ID を指定することにより、自分自身の認証を行います。 詳細については、『N1 Service Provisioning System 4.1 リファレンスガイド』を参照してください。
CLI を起動するツールには、次の 2 つがあります。
cr_cli - シングル行コマンドモードで動作し、一度に 1 つのコマンドを実行します。
cr_clij - Jython インタプリタを使用して、対話型コマンドモードで動作します。
シングル行コマンドモードでは、一度に 1 つのコマンドを入力として受け取ります。 発行される各コマンドは完全である必要があります。ユーザーが対話形式で次の入力パラメータを求められることはありません。 このモードで動作すると、Command-Line Interface Client はコマンドの履歴を保持しません。
cr_cli ツールを使用して実行された CLI コマンドの例を示します。 このコマンドにより、型 prodserver のホストがホストデータベースに追加されます。 このコマンド rbarnes を実行するユーザーは、パスワードを入力して Master Server に対して自分自身を認証します。
cr_cli –cmd hdb.h.add -u barnes -p bar123 -name webb1 -desc `web server 1' –tID prodserver |
cr_cliコマンドは、ファイルとして保存し、シェルスクリプトから呼び出すことができます。 これは、実行プラン、比較、ホストの生成など、繰り返しの多いタスクに便利です。
対話型コマンドモードは、シェルとして Jython インタプリタを使用します。 このモードで動作すると、CLI には次のような利点があります。
コマンド全体を 1 行で入力する必要がない。 単にコマンド名を入力してから、cr_clij により入力のプロンプトが表示された時点で、コマンド引数を入力できる。
シェルにより保存されるコマンド履歴を活用できる。
Jython スクリプト内から N1 Service Provisioning System ソフトウェア コマンドを呼び出すことができる。
より複雑で繰り返しの多い操作のための、強力なスクリプトを作成できる。
自動化のために、対話型モードの結果はより詳細になっている。
Jython スクリプトの内部からコマンドを呼び出すには、スクリプトの先頭に次の行を追加します。
from clui import * app=PyCLUI() make Jython calls to the N1 Service Provisioning System app.execStr(CLI command) invoke Jython methods from the new Jython object App.close() delete the instance of this Jython class |
cr_cli と cr_clij のどちらから呼び出されたかに関係なく、すべての CLI コマンドは次の形式を使用します。
サブシステム.オブジェクト.コマンド引数
たとえば、 N1 Service Provisioning System ソフトウェア データベースにホストを追加するコマンドは、hdb.h.add となります。 このコマンドは、次のものを特定する 3 つの要素から構成されています。
N1 Service Provisioning System ソフトウェア のサブシステム。この場合はホストデータベース (hdb)。
操作対象のオブジェクト。この場合はホスト (h)。
コマンドまたは操作。この場合は追加 (add)。
表 1–4 に、各 N1 Service Provisioning System ソフトウェア のサブシステムの CLI 接頭辞と、そのサブシステムを説明する、このガイドの章の一覧を示します。
表 1–4 N1 Service Provisioning System ソフトウェア のサブシステムと、その CLI 接頭辞
サブシステム |
CLI 接頭辞 |
章 |
---|---|---|
コンポーネントデータベース |
cdb |
『N1 Service Provisioning System 4.1 リファレンスガイド』の第 6 章を参照 |
設定ジェネレータ |
cfg |
『N1 Service Provisioning System 4.1 リファレンスガイド』 の第 7 章を参照 |
比較エンジン |
cmp |
『N1 Service Provisioning System 4.1 リファレンスガイド』 の第 8 章を参照 |
ホストデータベース |
hdb |
『N1 Service Provisioning System 4.1 リファレンスガイド』 の第 9 章を参照 |
ネットワーク操作 |
net |
『N1 Service Provisioning System 4.1 リファレンスガイド』 の第 10 章を参照 |
プランデータベース |
pdb |
『N1 Service Provisioning System 4.1 リファレンスガイド』 の第 11 章を参照 |
プラン実行 |
pe |
『N1 Service Provisioning System 4.1 リファレンスガイド』 の第 12 章を参照 |
リソース |
cdb.rsrc |
『N1 Service Provisioning System 4.1 リファレンスガイド』 の第 13 章を参照 |
通知の規則 |
rule |
『N1 Service Provisioning System 4.1 リファレンスガイド』 の第 14 章を参照 |
ユーザーデータベース |
udb |
『N1 Service Provisioning System 4.1 リファレンスガイド』 の第 15 章を参照 |
カテゴリ |
cat |
『N1 Service Provisioning System 4.1 リファレンスガイド』 の第 16 章を参照 |
このユーザーマニュアルには、CLI コマンドの完全なリストはありません。 各セクションには、特定のトピックに関連する使用頻度の高い CLI コマンドの一覧があります。 CLI コマンドの完全なリストは、『N1 Service Provisioning System 4.1 リファレンスガイド』を参照してください。
この節では、N1 Service Provisioning System ソフトウェア を使用してアプリケーションの配備と設定を行う方法の概要を説明します。 従う手順は、HTML ユーザーインタフェースとコマンド行インタフェースのどちらを使用するかによって異なります。 このガイドのこの章以外の章では、各手順の実行方法に関する詳細を説明します。
HTML ユーザーインタフェースを使用すると、コンポーネントをモデル化し、対象ホストにコンポーネントをインストールすることができます。
Gold Server、ソースコード制御システム、またはその他のタイプのサーバーなどに関係なく、モデル化する各サーバーに Remote Agent をインストールします。
Remote Agent のインストール方法の詳細については、『N1 Service Provisioning System 4.1 インストールガイド』を参照してください。
モデル化するホストと、アプリケーションの配備先であるホストの、ホスト型を定義します。 動的に設定するすべての設定変数に対しては、ホスト型の属性を含めます。この属性は、名前と値のペアになっています。
ホストタイプの詳細については「ホストタイプの操作」を参照してください。
「Hosts」ページを使用して、各ホストをホストリポジトリに追加します。 ホストを追加する作業の最後の手順は「ホストの準備」で、これにより プロビジョニングソフトウェア は、ホストに対する操作を行う準備として、ホストの Remote Agent の設定を微調整できるようになります。
ホストの追加と準備の詳細については、「ホストの操作」を参照してください。
リソースのコレクションから複数のコンポーネントを定義する予定がある場合、次にリソースをチェックインすることができます。 しかし通常は、ユーザーは独自のリソースのセットを持つコンポーネントを操作するため、ユーザーは最初にコンポーネントを直接作成する必要があります。
「Components」ページを使用して、新しいコンポーネントを作成します。
「Component」>「Details」ページで、コンポーネントを構成するリソースを追加します。リソースがすでにチェックインされている場合は、それを既存のリソースとして追加します。それ以外の場合は、新しいリソースとしてリソースをチェックインします。
コンポーネントを保存します。 コンポーネントを保存することでコンポーネントが構築されます。つまり、N1 Service Provisioning System ソフトウェア でコンポーネントが特定の名前とバージョン番号を使用して保存され、この特定のバージョンのコンポーネントが、コンポーネントを構成する特定のバージョンのリソースと関連付けられます。
これで、コンポーネントをインストールしたり、XML を編集することでコンポーネントを拡張できるようになります。
大部分のコンポーネントについては、プロビジョニングソフトウェア で自動的に作成されたインストール手続きを使用して、インストール手続きを実行する準備が完了します。 インストール手続きや、このコンポーネントと関連付けられた その他の拡張制御サービスを実行するには、そのコンポーネントの「Component」>「Details」ページを表示し、実行する手続きのチェックボックスを選択して、「run」をクリックします。この手続きの実行方法を直接実行と呼びます。
追加の設定変数、特定の手続き時に実行する追加の手順、または比較時に追加または除外するものに関する詳細情報など、コンポーネントにさらに情報を追加する場合は、コンポーネントをチェックアウトし、その XML を編集してから、コンポーネントをチェックインして戻します。
XML の編集が完了したら、操作を続行する準備ができています。
単一セットのホストに対して一度に 1 つのコンポーネントをインストールする場合は、コンポーネントの「component details」ページにあるインストール手続きを実行できます。 さまざまなホストセットへのコンポーネントのインストールを自動化する場合は、インストールに依存性チェックを追加し、インストールの手順を同期化し、コンポーネント用のプランを記述してから、コンポーネントをインストールするプランを実行します。
コマンド行インタフェースを使用してコンポーネントをモデル化し、対象ホストにコンポーネントをインストールすることもできます。
CLI コマンドの実行場所であるサーバーに、Command Line Interface Client をインストールします。 このサーバーは、Master Server へのネットワーク接続を確立できる必要があります。
TurboXML などの XML エディタを使用して、コンポーネントの XML 定義を記述します。
cdb.cd.ci コマンドを実行して、コンポーネントをチェックインします。
コンポーネントのチェックインが完了すれば、HTML ユーザーインタフェースを使用してコンポーネントのインストール手続きを直接実行することで、対象ホストの単一セットにコンポーネントをインストールするオプションが使用できます。 直接実行手続きは HTML ユーザーインタフェースから呼び出すことができますが、コマンド行インタフェースからは呼び出すことができません。
TurboXML などの XML エディタを使用して、コンポーネントのプランを記述します。
pdb.ci コマンドを実行して、プランをチェックインします。
pe.p.run コマンドを実行して、プランを実行します。
プランを実行するCLI コマンドでは、プランの実行の進行状況は報告されません。 プランの実行時の進行状況を監視するには、HTML ユーザーインタフェースからプランを実行します。