< 前へ | 次へ >

レッスン 2: コンポーネント・プロセスを作成する

コンポーネント・プロセスは、コンポーネントに対して実行する自動化タスクを記述します。 コンポーネント・プロセスは、コンポーネントに対する他のタスクをデプロイ、インストール、アンインストール、更新、または実行できます。
プロセスには、以下の 3 つのタイプがあります。
  • コンポーネントまたはアプリケーションのコンテキスト外で実行される、汎用プロセス。
  • アプリケーションのコンテキスト内で実行される、アプリケーション・プロセス。 多くの場合、アプリケーション・プロセスはコンポーネント・プロセスを呼び出します。例えば、アプリケーション・プロセスは、それらのコンポーネントをデプロイするコンポーネント・プロセスを呼び出すことができます。
  • コンポーネント・プロセスは単一のコンポーネントについてタスクを実行します。例えばコンポーネントのデプロイ、アンインストール、またはコンポーネントについての構成タスクの実行などです。

プロセスとは、ステップと、それらのステップ間の接続のリストです。各ステップは、ターゲット・コンピューターで実行される個別のコマンドです。ステップはファイルを操作し、システム・コマンドを実行し、ファイルをダウンロードし、プログラムを実行することができます。プラグインはこれらのステップに役立ちます。プラグインは、多数の異なるタイプのソフトウェアを処理することができます。

各コンポーネントには、コンポーネントをデプロイまたはインストールするためにコンポーネント・プロセスが少なくとも 1 つ必要です。 このレッスンでは、3 つのコンポーネントのそれぞれにデプロイメント・プロセスを作成します。 各コンポーネントをデプロイするためにこうしたコンポーネント・プロセスを呼び出すアプリケーション・プロセスを後で作成します。

Web コンポーネントのコンポーネント・プロセスの作成

Web コンポーネントのコンポーネント・プロセスは、最新バージョンのコンポーネント成果物をダウンロードし、それらの成果物を適切なフォルダーに入れます。
以下の手順に従って、Web コンポーネントをデプロイするコンポーネント・プロセスを作成します。
  1. 「コンポーネント」タブから、JPetStore-WEB コンポーネントをクリックします。
  2. 「プロセス」をクリックし、次に「新規プロセスの作成」をクリックします。
  3. 「新規プロセスの作成」ウィンドウで、名前を Deploy web component と指定します。
  4. 「プロセス・タイプ」リストで、「デプロイメント」を選択します。 このリストには、コンポーネントをアンインストールまたは構成する、プロセス用の他のオプションがあります。
  5. 他のプロパティーにはデフォルト値を受け入れて、「保存」をクリックします。
  6. プロセスのリストから新しいプロセスをクリックします。 プロセスがプロセス・エディターで開きます。 このエディターは、プロセス内のステップをフローチャートとしてグラフィカルな形式で表示します。 「開始」「終了」のボックスは、プロセスの始めと終わりを表します。 ここから、ステップをプロセスに追加して「開始」ステップと「終了」ステップの間にリンクし、各ステップの順序を示します。
  7. 作業ディレクトリーからすべてのファイルをクリーニングするステップを追加します。 プロセスは作業ディレクトリー内で実行します。 Web コンポーネント内で最新バージョンのファイルが使用されるように、作業ディレクトリーをクリーニングするコマンドを実行します。
    1. プロセス・エディターの左側の「使用可能なプラグイン・ステップ」で、「ユーティリティー」 > 「ファイル・ユーティリティー」と展開します。 「使用可能なプラグイン・ステップ」メニューには、使用可能なステップが表示されます。 ツリーを探索してステップを見つけるか、ウィンドウの一番上にある検索ボックスに入力することができます。
    2. 「ファイル・ユーティリティー」ツリー項目の下で、「ファイルとディレクトリーの削除 (Delete Files and Directories)」ステップをクリックして、プロセス・エディターにドラッグします。 「プロパティーの編集」ウィンドウが開き、ステップのプロパティーが表示されます。 これらのプロパティーのいくつかはステップ固有であり、その他はすべてのステップに共通です。
    3. 「名前」フィールドに名前を Clean working directory と指定します。
    4. 「ベース・ディレクトリー」フィールドに、単一ピリオド (.) を指定します。.
    5. 「組み込み」フィールドに、アスタリスク (*) を指定します。
    6. 他のプロパティーにはデフォルトを受け入れて、「保存」をクリックします。
    新しいステップがプロセス・エディターにボックスとして表示されます。後でこのステップをプロセス内の他のステップに接続します。 プロセス・エディターは、以下の図のようになります。
    フロー内に 1 つのステップを持つ新しいプロセス
  8. 最新のバージョンのコンポーネント成果物をダウンロードするステップを追加します。 Download Artifacts ステップは、ほとんどのデプロイメント・プロセスで使用されます。 このステップは、コンポーネント成果物の指定したバージョンを、ターゲット・コンピューターにダウンロードします。 プロセスを実行するときには、コンポーネント成果物の最新バージョンを使用するのか、それとも特定のバージョンを使用するのかを指定します。
    1. 「使用可能なプラグイン・ステップ」の下で、「リポジトリー」 > 「成果物」 > IBM UrbanCode Deployと展開して、「成果物のダウンロード (Download Artifacts)」ステップをプロセス・エディターにドラッグします。
    2. 「プロパティーの編集」ウィンドウで、デフォルト値を受け入れ、「保存」をクリックします。
  9. サーバーから古い Web コンテンツを除去するステップを追加します。
    1. 「ユーティリティー」 > 「ファイル・ユーティリティー」と展開して、別の「ファイルとディレクトリーの削除 (Delete Files and Directories)」ステップをプロセス・エディターにドラッグします。
    2. 「プロパティーの編集」ウィンドウで、名前を Remove old content と指定します。
    3. 「ベース・ディレクトリー」フィールドに、以下のディレクトリーを指定します。
      webapps/JPetStore
    4. 「組み込み」フィールドに、以下のディレクトリーを指定します。
      images
    5. 「作業ディレクトリー」フィールドに、以下の変数を指定します。
      ${p:environment/tomcat.home}
      この変数は、Tomcat Web サーバーのメイン・フォルダーを表します。 後でこの変数に値を指定することになります。
    6. 他のフィールドにはデフォルト値を受け入れて、「保存」をクリックします。
  10. 新規コンテンツをサーバーにデプロイするステップを追加します。 このステップは、コンポーネント成果物をアプリケーション・サーバーにコピーします。
    1. 「ユーティリティー」 > 「ファイル・ユーティリティー」と展開して、「ディレクトリーの移動 (Move Directory)」ステップをプロセス・エディターにドラッグします。
    2. 「プロパティーの編集」ウィンドウで、名前を Deploy new content と指定します。
    3. 「ソース・ディレクトリー」フィールドに、単一ピリオド (.) を指定します。.
    4. 「宛先ディレクトリー」フィールドに、以下のディレクトリーを指定します。
      ${p:environment/tomcat.home}/webapps/JPetStore/
    5. 「インクルード・ファイル」フィールドに、以下のコードを指定します。
      images/*
    6. 他のフィールドにはデフォルト値を受け入れて、「保存」をクリックします。
    これで以下の図のように、プロセスに 4 つのステップができました。
    「開始」ステップと「終了」ステップの間に順に配置された、プロセスの 4 つのステップ

各ステップにはステップの右上隅に 2 つのアイコンがあります。 緑の「編集」アイコン をクリックすると、ステップの作成時と同じ「プロパティーの編集」ウィンドウが開きます。 X アイコン をクリックするとステップが削除されます。

また、マウスをステップの上に置くと、そのステップの中央に矢印アイコンが表示されます。 このアイコンは、ステップ間のリンクを作成するために使用されます。

ステップ中央の矢印ボタンをクリック

  1. 以下の手順で各ステップをその実行順序で接続します。
    1. マウスを「開始」ステップの上に置き、矢印アイコンをクリックして、Clean working directory ステップにドラッグします。 以下の図のように、これらのステップ間の矢印は、1 つのステップから別のステップへのアクティビティーのフローを表します。
      「開始」ステップを Clean working directory ステップに接続するリンク
    2. 同様に、Clean working directory ステップから Download Artifacts ステップへ矢印をドラッグします。
    3. Download Artifacts ステップから Remove old content ステップへ矢印をドラッグします。
    4. Remove old content ステップから Deploy new content ステップへ矢印をドラッグします。
    5. Deploy new content ステップから Finish ステップへ矢印をドラッグします。
    これらのステップのようにステップを順次に接続することも、違うリンクを作成して各ステップを互いに並行して実行することもできます。 ただしプロセスは常に「開始」ステップで始まり、「終了」ステップで終わります。 このプロセスでのステップの順序は以下のとおりです。
    1. Start
    2. Clean working directory
    3. Download Artifacts
    4. Remove old content
    5. Deploy new content
    6. Finish
  2. 「ツール」の下の「保存」 アイコンをクリックしてプロセスを保存します。
Web コンポーネントの完成したコンポーネント・プロセスは、以下の図のようになります。
成果物の古いバージョンを除去し、新しいバージョンをアプリケーション・サーバーにデプロイする完成したコンポーネント・プロセス

アプリケーション・コンポーネントのコンポーネント・プロセスの作成

アプリケーション・コンポーネントは、単一の WAR ファイルから構成されます。 このコンポーネント・プロセスは、最新バージョンの WAR ファイルをダウンロードし、ファイル内の値を更新して、ファイルをアプリケーション・サーバーにデプロイします。
  1. 「コンポーネント」タブから、JPetStore-APP コンポーネントを選択します。
  2. 「プロセス」をクリックし、次に「新規プロセスの作成」をクリックします。
  3. 「新規プロセスの作成」ウィンドウで、名前を Deploy application component と指定します。
  4. 「プロセス・タイプ」リストで、「デプロイメント」を選択します。
  5. 他のプロパティーにはデフォルト値を受け入れて、「保存」をクリックします。
  6. プロセスのリストから、新しいプロセスをクリックしてプロセス・エディターで開きます。
  7. 作業ディレクトリーをクリーニングするステップを追加します。 Web コンポーネントの場合に行ったように、Clean working directory という名前の「ファイルとディレクトリーの削除 (Delete Files and Directories)」ステップを追加し、「ベース・ディレクトリー」フィールドにピリオド、「組み込み」フィールドにアスタリスクを指定します。
  8. 成果物をダウンロードするステップを追加します。 Web コンポーネントの場合に行ったように、Download Artifacts ステップを追加して、デフォルトのプロパティーを受け入れます。
  9. WAR ファイルを抽出するステップを追加します。 プロパティー・ファイルをデータベース接続情報で更新できるように、WAR ファイルを抽出する必要があります。
    1. ステップのリストで、「ユーティリティー」 > 「ファイル・ユーティリティー」フォルダーと展開して、Unzip ステップをプロセス・エディターにドラッグします。
    2. 名前を Expand WAR と指定します。
    3. 「ディレクトリーの抽出」フィールドに、以下のコードを指定します。
      ./JPetStore_expanded
    4. 「.zip ファイル」フィールドに、以下のファイルを指定します。
      JPetStore.war
    5. 「保存」をクリックします。
  10. 以下の手順で、プロパティー・ファイルをデータベースのロケーションで更新するステップを追加します。
    1. ステップのリストで、「ユーティリティー」 > 「ファイル・ユーティリティー」フォルダーと展開して、「プロパティー・ファイルの更新 (Update Property File)」 ステップをプロセス・エディターに追加します。
    2. 名前を Update property file と指定します。
    3. 「ディレクトリーのオフセット」フィールドに、以下のフォルダーを指定します。
      ./JPetStore_expanded/WEB-INF/classes/properties
    4. 「プロパティー・ファイル」フィールドに、以下のファイルを指定します。
      database.properties
    5. 「プロパティーの追加/更新」フィールドに、以下のコードを指定します。
      url=${p:environment/db.url}
      このコードは、プロパティー・ファイルの url プロパティーをデータベースのロケーションで更新します。 コード ${p:environment/db.url} は、アプリケーションがデプロイされるときのデータベース・コンポーネントのロケーションを表わす変数です。
    6. 「保存」をクリックします。
  11. 新しいプロパティー・ファイルで WAR ファイルを更新するステップを追加します。
    1. ステップのリストで、「ユーティリティー」 > 「ファイル・ユーティリティー」フォルダーと展開して、「.zip ファイルの作成 (Create .zip File)」 ステップをプロセス・エディターに追加します。
    2. 名前を Update WAR と指定します。
    3. 「.zip ファイル名」フィールドに JPetStore.war ファイルを指定します。
    4. 「ベース・ディレクトリー」フィールドに、以下のフォルダーを指定します。
      ./JPetStore_expanded
    5. 「組み込み」フィールドに、以下のコードを指定します。
      **/*
    6. 「既存を更新」チェック・ボックスを選択します。
    7. 「保存」をクリックします。
  12. 以下の手順で、Tomcat を開始するステップを追加します。
    1. ステップのリストで、アプリケーション・サーバー > 「Java」 > 「Tomcat」フォルダーと展開して、「Tomcat の開始 (Start Tomcat)」ステップをプロセス・エディターに追加します。 このステップがツリーにない場合、このチュートリアルの前提条件で説明しているように Tomcat プラグインをインストールします。
    2. デフォルト名 Start Tomcat を受け入れます。
    3. 「ランチャー」フィールドに、以下のコードを指定します。
      ${p:environment/tomcat.start}
      このコードは、Tomcat を開始するコマンドを表わす別の変数です。
    4. 「開始タイムアウト (秒)」フィールドに、60 秒を指定します。
    5. 「ポート」フィールドに、ポート 8080 を指定します。
    6. 「保存」をクリックします。
  13. 以下の手順で、旧バージョンのアプリケーションをすべて除去するステップを追加します。
    1. ステップのリストで、「アプリケーション・サーバー」 > 「Java」 > 「Tomcat」フォルダーと展開して、「アプリケーションのアンデプロイ (Undeploy Application)」ステップをプロセス・エディターに追加します。
    2. デフォルト名 Undeploy Application を受け入れます。
    3. 「Tomcat マネージャーの URL」フィールドに、以下のコードを指定します。
      ${p:environment/tomcat.manager.url}
    4. 「Tomcat マネージャーのユーザー名」フィールドに、Tomcat サーバーのユーザー名を指定します。 このユーザー名とパスワードはエージェントおよびターゲット・システムの構成で指定したものです。 このトピックのコード例を使用した場合、ユーザー名とパスワードは tomcatmanager となります。
    5. 「Tomcat マネージャーのパスワード」フィールドに、Tomcat サーバーのパスワードを指定します。
    6. 「コンテキスト名」フィールドに、先行スラッシュを含む以下のコンテキスト名を指定します。
      /JPetStore
    7. 「保存」をクリックします。
  14. 以下の手順で、更新された WAR ファイルをアプリケーション・サーバーにデプロイするステップを追加します。
    1. ステップのリストで、「アプリケーション・サーバー」 > 「Java」 > 「Tomcat」フォルダーと展開して、「アプリケーションのデプロイ (Deploy Application)」ステップをプロセス・エディターに追加します。
    2. デフォルト名 Deploy Application を受け入れます。
    3. 「Tomcat マネージャーの URL」フィールドに、以下のコードを指定します。
      ${p:environment/tomcat.manager.url}
    4. 「Tomcat マネージャーのユーザー名」フィールドに、Tomcat サーバーのユーザー名を指定します。
    5. 「Tomcat マネージャーのパスワード」フィールドに、Tomcat サーバーのパスワードを指定します。
    6. 「コンテキスト名」フィールドに、以下のコンテキスト名を指定します。
      /JPetStore
    7. 「War ファイル・パス」フィールドに、以下のパスを指定します。
      ./JPetStore.war
    8. 「保存」をクリックします。
  15. 以下の順序でステップを接続します。
    1. Start
    2. Clean working directory
    3. Download Artifacts
    4. Expand WAR
    5. Update Property File
    6. Update WAR
    7. Start Tomcat
    8. Undeploy Application
    9. Deploy Application
    10. Finish
  16. 以下の図に示すように、接続の緑のチェック・マークをグレイの円にかわるまでクリックして、Undeploy Application ステップと Deploy Application ステップの間のリンクの条件フラグを both に変更します。
    Undeploy Application ステップと Deploy Application ステップの間の緑のチェック・マークをグレイの円にかわるまでクリック
    1 つのステップから別のステップへの各接続には条件フラグ があります。 条件フラグは、接続の条件を指定します。以下の 3 つの条件フラグが使用可能です。
    • デフォルトでは、各接続の条件フラグは、緑のチェック・マークによって表わされる success に設定されます。 ステップが成功すると、プロセスはこの接続をたどります。
    • 条件フラグ fail は、赤のダッシュ (-) によって表わされます。 ステップが失敗すると、プロセスはこの接続をたどります。
    • 条件フラグ both は、グレイの円によって表わされます。 ステップの成否に関係なくプロセスはこの接続をたどります。
    アプリケーションの旧バージョンがインストールされていない場合、Undeploy Application ステップは失敗します。 このケースでは、接続の条件フラグが both に設定されていることで、ステップが失敗しても成功してもプロセスは稼働を継続することになります。
  17. プロセスを保存します。
アプリケーション・コンポーネントの完成したコンポーネント・プロセスは、以下の図のようになります。
アプリケーションをデプロイする完成したコンポーネント・プロセス

データベース・コンポーネントのコンポーネント・プロセスの作成

データベース・コンポーネントのデプロイメント・プロセスは、サンプル値でデータベースを更新します。
  1. 「コンポーネント」タブから、JPetStore-DB コンポーネントを選択します。
  2. 「プロセス」をクリックし、次に「新規プロセスの作成」をクリックします。
  3. 「新規プロセスの作成」ウィンドウで、名前を Deploy database component と指定します。
  4. 「プロセス・タイプ」リストで、「デプロイメント」を選択します。
  5. 他のプロパティーにはデフォルト値を受け入れて、「保存」をクリックします。
  6. プロセスのリストから、新しいプロセスをクリックしてプロセス・エディターで開きます。
  7. 成果物をダウンロードするステップを追加します。 Web コンポーネントの場合に行ったように、Download Artifacts ステップを追加して、デフォルトのプロパティーを受け入れます。
  8. 以下の手順で、データベースを更新するステップを追加します。
    1. ステップのリストで、「データベース」 > 「DBUpgrader」フォルダーと展開して、「DB のアップグレード (Upgrade DB)」ステップをプロセス・エディターに追加します。 このステップがツリーにない場合、このチュートリアルの前提条件で説明しているようにデータベース・アップグレード・プラグインをインストールします。
    2. 「プロパティーの編集」ウィンドウで、「名前」フィールドに Upgrade DB というデフォルト値を受け入れます。
    3. 「ドライバー・クラス名」フィールドに、以下のクラスを指定します。
      com.mysql.jdbc.Driver
    4. 「DB ドライバー JAR」フィールドに、以下のパスを指定します。
      lib/mysql-connector-java-5.1.20-bin.jar
      このファイルは、コンポーネントのソース・コードで提供されています。
    5. 「URL」フィールドに、以下の変数を指定します。
      ${p:environment/db.url}
    6. 「ユーザー」フィールドに、データベース・ユーザーのユーザー ID を指定します。 エージェントおよびターゲット・システムの構成の例を使用した場合、ユーザー ID は jpetstore になります。
    7. 「パスワード」フィールドにデータベース・ユーザーのパスワードを指定します。 エージェントおよびターゲット・システムの構成の例を使用した場合、パスワードは jppwd になります。
    8. 「SQL ファイル・パス」フィールドに、単一ピリオド (.) を指定します。.
    9. 「SQL ファイルの組み込み」フィールドに、拡張子 *.xml を指定します。
    10. 「現行バージョンの SQL」フィールドに、以下の SQL コードを指定します。
      SELECT VER FROM DB_VERSION WHERE RELEASE_NAME = ?
    11. 「バージョン SQL の削除」フィールドに、以下の SQL コードを指定します。
      DELETE FROM DB_VERSION WHERE RELEASE_NAME = ?
    12. 「バージョン SQL の更新」フィールドに、以下の SQL コードを指定します。
      INSERT INTO DB_VERSION (RELEASE_NAME,VER) VALUES(?,?)
    13. 「保存」をクリックします。
  9. 以下の順序でステップを接続します。
    1. Start
    2. Download Artifacts
    3. Upgrade DB
    4. Finish
  10. プロセスを保存します。
データベース・コンポーネントの完成したコンポーネント・プロセスは、以下の図のようになります。
データベースをデプロイする完成したコンポーネント・プロセス

レッスン・チェックポイント

このレッスンでは、コンポーネントをデプロイするコンポーネント・プロセスを作成しました。

コンポーネント・プロセスを使用すると、コンポーネントに対する多種多様な作業を自動化できます。ただし、コンポーネント・プロセスを直接実行することはできません。ほとんどの場合、それらをアプリケーション・プロセスに追加します。このチュートリアルの後の方で、これら 3 つのコンポーネント・プロセスのアプリケーション・プロセスを作成します。

プロセスは、プラグインによって提供されるステップから構成されます。使用できるプラグインのリスト、およびそれらのプラグインとステップに関する文書については、IBM developerWorks UrbanCode Deploy Plug-ins を参照してください。

< 前へ | 次へ >

フィードバック