検索

3.2. OpenShift Container Platform へのアプリケーションのデプロイ

download PDF

source-to-image (S2I) ワークフローを使用して、OpenShift Container Platform 上の JBoss EAP にアプリケーションをデプロイできます。S2I ワークフローは、Git リポジトリーからソースコードを取得し、使用する言語とフレームワークをベースとするコンテナーに挿入します。S2I ワークフローが完了すると、src コードがコンパイルされ、アプリケーションがパッケージ化されて JBoss EAP サーバーにデプロイされます。

3.2.1. OpenShift Container Platform へのデプロイに向けたアプリケーションの準備

OpenShift Container Platform は、Git リポジトリーでホストされるアプリケーションを使用します。アプリケーションを OpenShift にデプロイするには、まずアプリケーションを Git リポジトリーにプッシュする必要があります。その後、JBoss EAP Helm チャートを使用してアプリケーションのデプロイを設定できます。

前提条件

手順

  1. アプリケーションがローカル Git リポジトリーにまだない場合は、アプリケーションをローカル Git リポジトリーに移動します。

    $ mv -r helloworld/ <your_git_repo>
  2. pom.xml 設定ファイルで次のプロパティーを定義します。

    <properties>
        ...
        <version.plugin.eap>1.0.0.Final-redhat-00013</version.plugin.eap> 1
    </properties>
    1
    <version.plugin.eap> は、JBoss EAP Maven プラグインのバージョンを定義します。
  3. JBoss EAP Maven プラグインを <project> セクション内の <build> セクションの <pluginManagement> に追加します。

    <project>
        ...
        <build>
            <pluginManagement>
                <plugins>
                    ...
                    <plugin>
                        <groupId>org.jboss.eap.plugins</groupId>
                        <artifactId>eap-maven-plugin</artifactId>
                        <version>${version.plugin.eap}</version>
                    </plugin>
                </plugins>
            </pluginManagement>
        </build>
    </project>
  4. pom.xml 設定ファイルにプロファイル "openshift" を作成します。

    このプロファイルで、OpenShift Container Platform へのデプロイに必要なプラグイン、機能パック、およびレイヤーを定義します。

    <profiles>
        <profile>
            <id>openshift</id>
            <build>
                <plugins>
                    <plugin>
                         <groupId>org.jboss.eap.plugins</groupId>
                         <artifactId>eap-maven-plugin</artifactId>     1
                         <configuration>
                             <channels>
                                 <channel>
                                     <manifest>
                                         <groupId>org.jboss.eap.channels</groupId>
                                         <artifactId>eap-8.0</artifactId>
                                     </manifest>
                                 </channel>
                             </channels>
                             <feature-packs>
                                 <feature-pack>                            2
                                     <location>org.jboss.eap:wildfly-ee-galleon-pack</location>
                                 </feature-pack>
                                 <feature-pack>
                                     <location>org.jboss.eap.cloud:eap-cloud-galleon-pack</location>
                                 </feature-pack>
                             </feature-packs>
                             <layers>                                      3
                                 <layer>cloud-server</layer>
                             </layers>
                             <name>ROOT.war</name>                         4
                         </configuration>
                         <executions>
                             <execution>
                                 <goals>
                                     <goal>package</goal>
                                 </goals>
                             </execution>
                         </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
    1
    wildfly-maven-plugin は、アプリケーションがデプロイされた JBoss EAP インスタンスを OpenShift Container Platform 上にプロビジョニングするための JBoss EAP プラグインです。
    2
    feature-packs は、機能パック (サーバーを動的にプロビジョニングする機能を含む zip ファイル) を定義します。この場合、機能パック org.wildfly:wildfly-galleon-pack および org.wildfly.cloud:wildfly-cloud-galleon-pack が必要です。
    3
    layers は、プロビジョニングされたサーバーに含めるレイヤーを (設定した機能パックから) 定義します。各レイヤーは、単独で、または他のレイヤーと組み合わせてインストールできる 1 つ以上のサーバー機能を特定します。ここでは、クラウドサーバーに適した JBoss EAP の基本機能のみをプロビジョニングする cloud-server レイヤーを選択します。
    4
    <name>ROOT.war</name>: 生成されるアプリケーションの Web アーカイブ (WAR) の名前を定義します。ROOT.war を指定すると、アプリケーションはサーバーのルートパスにデプロイされます。指定しないと、<name/> 相対パスにデプロイされます。
  5. アプリケーションがコンパイルされることを確認します。

    $ mvn package -Popenshift
  6. 変更をリポジトリーにプッシュします。

3.2.2. Helm を使用した OpenShift 上の JBoss EAP へのアプリケーションのデプロイ

JBoss EAP Helm チャートを使用して、Helm を使用してアプリケーションを設定し、OpenShift 上の JBoss EAP にデプロイします。

前提条件

手順

  1. アプリケーションのルートディレクトリーに charts というディレクトリーを作成し、そこに移動します。アプリケーションのルートディレクトリーは、pom.xml 設定ファイルを含んでいるディレクトリーです。

    $ mkdir charts; cd charts
  2. 次の内容を含む helm.yaml ファイルを作成します。

    build:
      uri: https://github.com/<user>/<repository>.git     1
      ref: <branch_name>                                  2
      contextDir: helloworld                              3
    deploy:
      replicas: 1                                         4
    1
    OpenShift Container Platform にデプロイするアプリケーションを含む Git リポジトリーの URL を指定します。
    2
    アプリケーションを含む Git ブランチを指定します。
    3
    アプリケーションが存在するディレクトリーを指定します。
    4
    作成する Pod の数を指定します。
  3. Helm で JBoss EAP リポジトリーを設定します。

    • まだ JBoss EAP リポジトリーを Helm に追加していない場合は、追加します。

      $ helm repo add jboss-eap https://jbossas.github.io/eap-charts/
    • すでに JBoss EAP リポジトリーを Helm に追加している場合は、それを更新します。

      $ helm repo update jboss-eap
  4. Helm を使用してアプリケーションをデプロイします。

    $ helm install helloworld -f helm.yaml jboss-eap/eap8

    デプロイが完了するまでに数分かかる場合があります。

検証

  1. デプロイメントへのルートの URL を取得します。

    $ APPLICATION_URL=https://$(oc get route helloworld --template='{{ .spec.host }}') &&
    echo "" &&
    echo "Application URL: $APPLICATION_URL"
  2. ブラウザーで "Application URL" に移動します。

    "/HelloWorld" パスのサーブレットにリダイレクトされ、次のメッセージが表示されます。

    Hello World!
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.