アプリケーションパターンの作成例
この例に従って、新しいアプリケーションパターンの識別セクションを作成および定義する段階的なプロセスを確認します。
始める前に
プログラミングの基礎知識が望ましいです。
必要なロール:pd_admin
このタスクについて
この例では、デバッグモードを使用してマッピングパターンを作成する方法を示します。
パターンは Unix 上の Apache Web サーバー用です。
手順
- 移動先 すべて > パターンデザイナー > ディスカバリーパターン.
- [新規] をクリックします。
-
基本的なパターン属性を次のように定義します。
フィールド 説明 パターンタイプ [アプリケーション] を選択します。 名前 「Apache Web Server on Unix Pattern」と入力します。 CI タイプ リストから [Apache Web サーバー] を選択します。 オペレーティングシステム (アプリケーションパターンのみ) [すべて] チェックボックスをオフにし、リストの次のチェックボックスをオンにします。 - AIX サーバー
- HPUX サーバー
- Linux サーバー
- Solaris サーバー
- UNIX サーバー
実行順序 (アプリケーションパターンのみ) デフォルト設定の [なし] のままにします。 説明 このパターンは、バージョン 2.4 までの Unix 上の Apache Web サーバーを検出します。
- [保存] をクリックします。
-
識別セクションを作成し、その基本プロパティを定義します。
- [識別セクション] で [新規] をクリックします。
-
次のパラメーターを設定します。
フィールド 値 名前 「Identification for HTTP(S) entry point type(s)」と入力します。 エントリーポイントタイプ (アプリケーションパターンのみ) リストの次のチェックボックスをオンにします。 - HTTP(S) エンドポイント
- TCP エンドポイント
プロセス戦略を検索 (アプリケーションパターンのみ) [リスニングポート (Listening Port)] を選択します。 順序 「1」と入力します。 - [保存] をクリックします。
-
新たに作成された識別セクション [Identification for HTTP(S) entry point type(s)] をクリックします。
新しい識別セクションが別のタブに表示されます。
-
デバッグモードを有効にします。
-
パターンデザイナーで [デバッグモード] をクリックします。
[デバッグ識別セクション] ウィンドウが表示されます。
-
エントリーポイントタイプについて、必要な詳細を入力します。
フィールド 説明 デバッグタイプ サービスマッピング でトップダウン検出を実行する場合は [トップダウン] を選択します。 タイプ リストからエントリーポイントタイプの [HTTP(S)] を選択します。 URL 「http://10.196.39.244:6080/ITO」と入力します。 -
[接続] をクリックします。
デバッグモードが有効になり、デバッグボタンに緑色の点が表示されます (
)。
デバッグモードが有効になると、次の変数に値が入力されることに注意してください。- computer_system:Apache ホスト情報
- entry_point:この場合は URL で指定されます。
- process:Apache プロセス情報
-
パターンデザイナーで [デバッグモード] をクリックします。
-
CI のプロセス名が「Apache Web サーバー」であることを確認します。
- 識別セクションの最初のステップの名前を「Check process name to match Apache」に変更します。
- [操作] リストから [一致] を選択します。
-
1 番目の条件フィールドに「$process.executable」と入力します。
- 条件演算子のリストから [は次の値を含む] を選択します。
- 2 番目の条件フィールドに「"httpd"」と入力します。
- プラスアイコンをクリックして別の条件を追加します。
- 1 番目の条件フィールドに「$process.executable」と入力します。
- 条件演算子のリストから [は次の値を含む] を選択します。
- 2 番目のフィールドに「"apache"」と入力します。
- この一致操作で、このいずれかの条件と照合する必要があることを定義します。 [満たしている] リストから [任意] を選択します。
- [テスト] をクリックして、「このテスト中に行われた変更はありません」のメッセージが表示されることを確認します。
-
CI のラベル属性を入力します。
-
[ステップ] ツリーで
をクリックして、1 番目のステップの下にステップを追加します。
- 新しいステップの名前を「sets the display label」に変更します。
- [操作] リストから [パラメーター値を設定] を選択します。
- [値] フィールドに「"Apache"」と入力します。
- [名前] フィールドに「$name」と入力します。
-
[テスト] をクリックし、次のメッセージが表示されることを確認します。
- [クローズ] をクリックします。
-
[ステップ] ツリーで
-
ホームディレクトリー属性を入力します。
- [ステップ] ツリーでステップを追加し、名前を「Get home dir」に変更します。
-
[操作] リストから [変数を解析] を選択します。
この操作により、コンテンツボックスの -d の後の値が抽出されます。
- [一時変数] ペインで process 変数を展開します。
-
commandLine 変数を [一時変数] ペインから [操作] の下の変数フィールドにドラッグします。
注:ドラッグアンドドロップ機能の使用に関する詳細については、「 パターンへの値と変数の入力」を参照してください。 - [解析を定義] リストから [Command line Unix style] を選択します。
- [変数] ペインで、新しい install_directory 変数を追加します。
- [テスト] をクリックします。
-
HTTP デーモンからホームディレクトリー属性を取得します。
前のステップでホームディレクトリー属性が入力されている場合は、このステップを省略してください。この例では実行する必要があります。
- [ステップ] ツリーで新しいステップを追加し、名前を「Condition – check that home dir was set if not extract it from httpd –V」に変更します。
-
[操作] リストから [コマンド出力を解析] を選択します。
この操作により、コンテンツボックスの -d の後の値が抽出されます。
- [前提条件] をクリックします。
- 条件値フィールドに「$install_directory」と入力します。
- 条件演算子のリストから [は空] を選択します。
- [条件が次の場合] リストから [True] を選択します。
- [コマンド詳細の設定 (Set Command Details)] フィールドに「$process.executablePath+" -V "」と入力します。
- [コマンドを実行] をクリックします。
- [解析を定義] リストから [区切り付きテキスト] を選択します。
- [行を含める] フィールドに「HTTPD_ROOT」と入力します。
-
[区切り文字] の横にある [編集] ボタンをクリックします。
- 2 つの区切り文字として、等号 (=) と引用符 (") を追加します。
- [OK] をクリックします。
- [位置] フィールドに「2」と入力します。
-
[テスト] をクリックします。
値が入力されたホームディレクトリー属性が [デバッグ結果 (Debug Results)] ウィンドウに表示されます。
- [OK] をクリックします。
-
CI 構成ファイル属性を入力します。
- [ステップ] ツリーで新しいステップを追加し、名前を「Get config file」に変更します。
- [操作] リストから [変数を解析] を選択します。
- [一時変数] ペインで process 変数を展開します。
-
commandLine 変数を [一時変数] ペインから [変数を入力] フィールドにドラッグします。
/usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf の値が入力されます。
-
[解析を定義] リストから [コマンドライン Unix スタイル] を選択します。
- [取得] をクリックします。
- [キーワード] フィールドに「-d」と入力します。
- [出力] ペインで値を選択し、「install_directory」という名前の新しい変数を作成します。
- [テスト] をクリックします。
-
HTTP デーモンから CI 構成ファイル属性を抽出します。
前のステップで構成ファイル属性が入力されている場合は、このステップを省略してください。この例では実行する必要があります。
- [ステップ] ツリーで新しいステップを追加し、名前を「Condition – check that conf_file was set if not extract it from httpd –V」に変更します。
- [操作] リストから [コマンド出力を解析] を選択します。
- [前提条件] をクリックします。
- 条件値フィールドに「$config_file」と入力します。
-
条件演算子のリストから [は空] を選択します。
- [コマンド詳細の設定 (Set Command Details)] フィールドに「$process.executablePath+" -V "」と入力します。
- [コマンドを実行] をクリックします。
- [解析を定義] リストから [区切り付きテキスト] を選択します。
- [行を含める] フィールドに「SERVER_CONFIG_FILE」と入力します。
-
[区切り文字] の横にある [編集] ボタンをクリックします。
- 2 つの区切り文字として、等号 (=) と引用符 (") を追加します。
- [OK] をクリックします。
- [位置] フィールドに「2」と入力します。
- 新しい conf_file 変数が自動的に追加されない場合は、[変数] ペインで作成します。
-
[テスト] をクリックします。
値が入力された構成ファイル属性が [デバッグ結果 (Debug Results)] ウィンドウに表示されます。
- [OK] をクリックします。
-
構成ファイル属性がまだ入力されていない場合は、次のステップを実行します。
- [ステップ] ツリーで新しいステップを追加し、名前を「default location of conf file」に変更します。
- [操作] リストから [パラメーター値を設定] を選択します。
- [前提条件] をクリックします。
- 条件値フィールドに「$conf_file」と入力します。
- 条件演算子のリストから [は空] を選択します。
- [条件が次の場合] リストから [True] を選択します。
- [値] フィールドに「$home_dir+"/conf/httpd.conf"」と入力します。
- [名前] フィールドに「$conf_file」と入力します。
- [テスト] をクリックし、構成ファイル属性が入力されていることを確認します。
-
ホームディレクトリーと構成ファイルの値を連結します。
- [ステップ] ツリーで新しいステップを追加し、名前を「check if the SERVER_CONFIG_FILE is relative or not」に変更します。
- [操作] リストから [パラメーター値を設定] を選択します。
- [前提条件] をクリックします。
- 条件値フィールドに「$conf_file」と入力します。
- 条件演算子のリストから [は次の値で始まる] を選択します。
- 文字列値に「"/"」と入力します。
- [条件が次の場合] リストから [False] を選択します。
- [値] フィールドに「$home_dir+"/"$conf_file」と入力します。
- [名前] フィールドに「$conf_file」と入力します。
- [テスト] をクリックし、構成ファイル属性が入力されていることを確認します。
-
バージョン属性を入力します。
- [ステップ] ツリーで新しいステップを追加し、名前を「get version from version.signature (IBM HTTPSERVER)」に変更します。
- [操作] リストから [ファイルを解析] を選択します。
- [ファイルの選択] フィールドに、$install_directory 変数と "/version.signature" 文字列を連結した「$home_dir+"/version.signature"」を入力します。
- [ファイルコンテンツを取得 (Retrieve File Content)] をクリックします。
- [変数] ペインで Version 変数を作成します。
-
[テスト] をクリックし、バージョン属性が入力されていることを確認します。
この例では、この段階でバージョンは抽出されません。
-
HTTP デーモンからバージョン属性を抽出します。
- [ステップ] ツリーでステップを追加し、名前を「Condition - check that version was set if not extract it from httpd -v」に変更します。
- [操作] リストから [コマンド出力を解析] を選択します。
- [前提条件] をクリックします。
- 条件値フィールドに「$version」と入力します。
- 条件演算子のリストから [は空] を選択します。
- プラスアイコン (+) をクリックして別の条件を追加します。
- 条件値フィールドに「$version」と入力します。
- 条件演算子のリストから [は次の値を含む] を選択します。
- 文字列値に「"directory"」と入力します。
- [満たしている] リストから [任意] を選択します。
-
[前提条件が次の場合 (If precondition is)] リストから [true] を選択します。
- [コマンド詳細の設定 (Set Command Details)] フィールドに「$process.executablePath+" -V | grep 'Server version' | cut -d '/' -f 2 | cut -d ' ' -f 1"」と入力します。
- [コマンドを実行] をクリックし、バージョン属性が [出力] ペインに表示されることを確認します。
- [解析を定義] リストから [末尾からの位置] を選択します。
-
[変数] ペインの [位置] フィールドに「1」と入力します。
-
[テスト] をクリックし、構成ファイル属性が入力されていることを確認します。
注:
バージョン番号は [CI 属性] ペインではなく [一時変数] ペインにのみ表示されます。
この段階では、Apache Web サーバーが正常に識別され、意図的に空のままになっているバージョン属性以外の各種属性が入力されていることに注意してください。
-
バージョンがまだ入力されていない場合は、IHS.product ファイルから抽出します。
- [ステップ] ツリーでステップを追加し、名前を「set version if still empty」に変更します。
- [操作] リストから [ファイルを解析] を選択します。
- [前提条件] をクリックします。
- 条件値フィールドに「$version」と入力します。
- 条件演算子のリストから [は空] を選択します。
- プラスアイコン (+) をクリックして別の条件を追加します。
- 条件値フィールドに「$version」と入力します。
- 条件演算子のリストから [は次の値を含む] を選択します。
- 文字列値に「"directory"」と入力します。
- [満たしている] リストから [任意] を選択します。
- [前提条件が次の場合 (If precondition is)] リストから [true] を選択します。
- [ファイルの選択] フィールドに「$install_directory + "/properties/version/IHS.product"」と入力します。
-
[ファイルコンテンツを取得 (Retrieve File Content)] をクリックします。
ファイルのコンテンツが [出力] ペインに表示されます。
- [解析を定義] リストから [XML ファイル] を選択します。
-
[出力] ペインでバージョン値をマークし、変数ポップアップに「version」と入力します。
-
共有ステップライブラリーを再利用して追加の属性を検索します。
- [ステップ] ツリーでステップを追加し、新しいステップの名前を「reference to enrich library」に変更します。
- [操作] リストから [ライブラリー参照] を選択します。
-
[ライブラリー] リストから [Apache 付加属性 (Apache Enrich Attributes)] を選択します。
この操作により、事前設定された一連のサブステップがステップツリーに挿入されます。共有ステップライブラリーの作成方法については、「共有ステップライブラリーの再利用」を参照してください。
-
プロセスに関連する属性を入力します。
- [ステップ] ツリーでステップを追加し、名前を「get processes」に変更します。
- [操作] リストから [プロセスを取得 (Get process)] を選択します。
- [コマンドライン] フィールドに「"httpd"」と入力します。
- [ターゲット変数を指定します] フィールドに「$procs」と入力します。
-
[テスト] をクリックし、属性が表示されていることを確認します。
- 終了したら [クローズ] をクリックします。
-
プロセス ID を検出します。
- [ステップ] ツリーでステップを追加し、名前を「set process_ids」に変更します。
- [操作] リストから [変数を解析] を選択します。
- [変数を入力] フィールドに「$procs[*].pid」と入力します。
- [解析を定義] リストから [区切り付きテキスト] を選択します。
-
[取得] をクリックします。
コンテンツが [出力] ペインに表示されます。
- [変数] ペインで process_ids 変数を作成します。
-
[位置] フィールドに「1」と入力します。
- [テスト] をクリックします。
-
必要なすべての属性が入力されていることを確認します。
- [保存] をクリックします。
-
定義した識別セクションを ディスカバリー と サービスマッピング で使用できることを確認します。
- このパターンを使用して、Apache Web サーバーの水平検出を実行します。
- Apache Web サーバーのテーブルに移動し、この CI のエントリーが存在することを確認します。
- 同じ CI のトップダウン検出を実行します。
- Apache Web サーバーの同じテーブルを確認します。
-
レコードが重複していないことを確認します。
これは、水平検出とトップダウン検出の両方の結果が CMDB の同じレコードの下に書き込まれることを示しています。この状態であれば、パターンの識別セクションは正常です。