検索

4.3. JBoss EAP でのユーザー開発レイヤーのプロビジョニング

download PDF

Red Hat から利用可能なレイヤーのプロビジョニングを行うに加え、開発するカスタムレイヤーをプロビジョニングできます。

手順

  1. Galleon Maven プラグインを使用してカスタムレイヤーを構築します。

    詳細は、Building Custom Layers for JBoss EAP を参照してください。

  2. アクセス可能な Maven リポジトリーにカスタムレイヤーをデプロイします。
  3. ユーザー定義のレイヤーとサポートされる JBoss EAP レイヤーを参照するカスタムプロビジョニングファイルを作成し、これをアプリケーションディレクトリーに保存します。

    詳細は、Custom Provisioning Files for JBoss EAP を参照してください。

  4. S2I プロセスを実行して、OpenShift で JBoss EAP サーバーをプロビジョニングします。

    詳細は、 Building an Application Provisioned with User-developed Layers を参照してください。

4.3.1. JBoss EAP のカスタムレイヤーの構築

カスタムレイヤー機能パックを Maven プロジェクトとして作成します。

  1. カスタムレイヤーは、少なくともベースレイヤーに依存します。カスタムレイヤーに必要な機能を提供するベースレイヤーを選択します。
  2. Maven プロジェクト内で、src/main/resources ディレクトリーにレイヤーコンテンツを作成します。

    たとえば、PostgreSQL および PostgreSQL データソースのサポートをプロビジョニングするレイヤーを作成するには、src/main/resources ディレクトリーに layers/standalone サブディレクトリーを作成します。standalone サブディレクトリーには以下の内容が含まれます。

    • postgresql-driver

      このディレクトリーには、以下の内容が含まれる layer-spec.xml ファイルが含まれます。

      <?xml version="1.0" ?>
      <layer-spec xmlns="urn:jboss:galleon:layer-spec:1.0" name="postgresql-driver">
          <feature spec="subsystem.datasources">
              <feature spec="subsystem.datasources.jdbc-driver">
                  <param name="driver-name" value="postgresql"/>
                  <param name="jdbc-driver" value="postgresql"/>
                  <param name="driver-xa-datasource-class-name" value="org.postgresql.xa.PGXADataSource"/>
                  <param name="driver-module-name" value="org.postgresql.jdbc"/>
              </feature>
          </feature>
          <packages>
              <package name="org.postgresql.jdbc"/>
          </packages>
      </layer-spec>
    • postgresql-datasource

      このディレクトリーには、以下の内容が含まれる layer-spec.xml ファイルが含まれます。

      <?xml version="1.0" ?>
      <layer-spec xmlns="urn:jboss:galleon:layer-spec:1.0" name="postgresql-datasource">
          <dependencies>
              <layer name="postgresql-driver"/>
          </dependencies>
          <feature spec="subsystem.datasources.data-source">
              <param name="use-ccm" value="true"/>
              <param name="data-source" value="PostgreSQLDS"/>
              <param name="enabled" value="true"/>
              <param name="use-java-context" value="true"/>
              <param name="jndi-name" value="java:jboss/datasources/${env.POSTGRESQL_DATASOURCE,env.OPENSHIFT_POSTGRESQL_DATASOURCE:PostgreSQLDS}"/>
              <param name="connection-url" value="jdbc:postgresql://${env.POSTGRESQL_SERVICE_HOST,\
      env.OPENSHIFT_POSTGRESQL_DB_HOST}:${env.POSTGRESQL_SERVICE_PORT,\
      env.OPENSHIFT_POSTGRESQL_DB_PORT}/${env.POSTGRESQL_DATABASE, env.OPENSHIFT_POSTGRESQL_DB_NAME}"/>
              <param name="driver-name" value="postgresql"/>
              <param name="user-name" value="${env.POSTGRESQL_USER, env.OPENSHIFT_POSTGRESQL_DB_USERNAME}"/>
              <param name="password" value="${env.POSTGRESQL_PASSWORD, env.OPENSHIFT_POSTGRESQL_DB_PASSWORD}"/>
              <param name="check-valid-connection-sql" value="SELECT 1"/>
              <param name="background-validation" value="true"/>
              <param name="background-validation-millis" value="60000"/>
              <param name="flush-strategy" value="IdleConnections"/>
              <param name="statistics-enabled" value="${wildfly.datasources.statistics-enabled:${wildfly.statistics-enabled:false}}" />
          </feature>
  3. カスタム機能パックの構築に使用される pom.xml ファイルでは、JBoss EAP の依存関係を参照してください。

    <dependency>
        <groupId>org.jboss.eap</groupId>
        <artifactId>wildfly-ee-galleon-pack</artifactId>1
        <version>7.3.0.GA-redhat-00004</version>
        <type>zip</type>
    </dependency>
    1
    JBoss EAP 拡張パック (JBoss EAP XP) を使用する場合は、この要素の値を wildfly-galleon-pack にする必要があります。

    これらの依存関係は、Red Hat Maven リポジトリー https://maven.repository.redhat.com/ga/ から入手できます。

  4. Galleon Maven プラグインの build-user-feature-pack ゴールを使用してカスタムレイヤーを構築します。

関連情報

ベースレイヤー

WildFly Galleon Maven Plugin Documentation

ドライバーおよびデータソースのパッケージ化を Galleon レイヤーとして示す例

4.3.2. JBoss EAP のカスタムプロビジョニングファイル

カスタムプロビジョニングファイルは、galleon サブディレクトリーに保存されている provisioning.xml というファイル名の XML ファイルです。

以下のコードは、カスタムプロビジョニングファイルを示しています。

<?xml version="1.0" ?>
<installation xmlns="urn:jboss:galleon:provisioning:3.0">
    <feature-pack location="eap-s2i@maven(org.jboss.universe:s2i-universe)">1
        <default-configs inherit="false"/>2
        <packages inherit="false"/>3
    </feature-pack>
    <feature-pack location="com.example.demo:my-galleon-feature-pack:1.0
">4
        <default-configs inherit="false"/>
        <packages inherit="false"/>
    </feature-pack>
    <config model="standalone" name="standalone.xml">5
        <layers>
            <include name="cloud-server"/>
            <include name="my-custom-driver"/>
            <include name="my-custom-datasource"/>
        </layers>
    </config>
    <options>6
        <option name="optional-packages" value="passive+"/>
    </options>
</installation>
1
この要素は、現在の eap-s2i feature-pack をプロビジョニングするようにプロビジョニングプロセスに指示します。ビルダーイメージには単一の機能パックのみが含まれていることに注意してください。
2
この要素は、デフォルト設定を除外するようにプロビジョニングプロセスに指示します。
3
この要素は、デフォルトパッケージを除外するようにプロビジョニングプロセスに指示します。
4
この要素は、com.example.demo:my-Galleon-feature-pack:1.0 機能パックをプロビジョニングするようにプロビジョニングプロセスに指示します。子要素は、デフォルトの設定およびデフォルトパッケージを除外するようプロセスに指示します。
5
この要素は、カスタムスタンドアロン設定を作成するようにプロビジョニングプロセスに指示します。この設定には、cloud-server ベースレイヤーと、 com.example.demo:my-galleon-feature-pack:1.0 機能パックの my-custom-driver および my-custom-datasource カスタムレイヤーが含まれます。
6
この要素は、JBoss EAP モジュールのプロビジョニングを最適化するようプロビジョニングプロセスに指示します。

4.3.3. ユーザー開発のレイヤーでプロビジョニングされるアプリケーションのビルド

カスタムプロビジョニングファイルを含むディレクトリーからアプリケーションを構築する場合、S2I ビルドプロセスはプロビジョニングファイルを検出し、指示どおりに JBoss EAP サーバーをプロビジョニングします。

前提条件

  • ユーザーが開発したレイヤーはアクセス可能な Maven リポジトリーに存在する必要があります。
  • アプリケーションディレクトリーには、ユーザーが開発したレイヤーと、それらのレイヤーを含む機能パックを参照する有効なプロビジョニングファイルが含まれている必要があります。

手順

  • 標準の S2I ビルドコマンドを入力してアプリケーションをビルドします。

    たとえば、以下のカスタムプロビジョニングファイルをアプリケーションディレクトリーに作成することを想定します。

    <?xml version="1.0" ?>
    <installation xmlns="urn:jboss:galleon:provisioning:3.0">
        <feature-pack location="eap-s2i@maven(org.jboss.universe:s2i-universe)">
            <default-configs inherit="false"/>
            <packages inherit="false"/>
        </feature-pack>
        <feature-pack location="com.example.demo:my-galleon-feature-pack:1.0">
            <default-configs inherit="false"/>
            <packages inherit="false"/>
        </feature-pack>
        <config model="standalone" name="standalone.xml">
            <layers>
                <include name="cloud-server"/>
                <include name="my-custom-driver"/>
                <include name="my-custom-datasource"/>
            </layers>
        </config>
        <options>
            <option name="optional-packages" value="passive+"/>
        </options>
    </installation>

    以下のコマンドは、com.example.demo:my-Galleon-feature-pack:1.0 機能パックを使用してアプリケーションを構築します。これには、my-custom-driver および my-custom-datasource レイヤーが含まれます。生成されるアプリケーションの名前は eap-my-custom-db です。データベースへの接続は環境変数を使用して設定されます。

    oc build my-app \
    -e DEMO_DB=demo \
    -e DEMO_PASSWORD=demo \
    -e DEMO_HOST=127.0.0.1  \
    -e DEMO_PORT=5432 \
    -e DEMO_USER=demo \
    eap-my-custom-db

ユーザー demo とパスワード demo を使用して、ポート 5432 でデータベースにログインできます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.