8.2. JBoss EAP에서 사용자 개발 계층 프로비저닝


Red Hat에서 제공하는 프로비저닝 계층 외에도 개발하는 사용자 지정 계층을 프로비저닝할 수 있습니다.

프로세스

  1. Galleon Maven 플러그인을 사용하여 사용자 지정 계층을 빌드합니다.

    자세한 내용은 Maven 프로젝트 준비를 참조하십시오.

  2. 사용자 지정 계층을 액세스 가능한 Maven 리포지토리에 배포합니다.
  3. 사용자 정의 Galleon 기능 팩 환경 변수를 사용하여 S2I 이미지 빌드 프로세스 중에 Galleon 기능 팩 및 계층을 사용자 지정할 수 있습니다.

    Galleon 기능 팩 및 계층을 사용자 지정하는 방법에 대한 자세한 내용은 S2I 빌드 중 사용자 지정 Galleon 기능 팩 사용 을 참조하십시오.

  4. 선택 사항: 사용자 정의 프로비저닝 파일을 생성하여 사용자 정의 계층을 참조하고 지원되는 JBoss EAP 계층을 생성하여 애플리케이션 디렉터리에 저장합니다.

    사용자 지정 프로비저닝 파일을 만드는 방법에 대한 자세한 내용은 Galleon 프로비저닝 파일을 참조하십시오.

  5. S2I 프로세스를 실행하여 OpenShift에서 JBoss EAP 서버를 프로비저닝합니다.

    자세한 내용은 S2I 빌드 중 사용자 지정 Galleon 기능 팩 사용을 참조하십시오.

8.2.1. JBoss EAP용 사용자 지정 Galleon 계층 빌드 및 사용

사용자 지정 Galleon 계층은 JBoss EAP 8.0에서 실행되도록 설계된 Galleon 기능 팩 내에 패키지됩니다.

Openshift에서는 계층(예: JBoss EAP 8.0 서버의 MariaDB 드라이버 및 데이터 소스)이 포함된 Galleon 기능 팩을 빌드하고 사용할 수 있습니다. 계층에는 서버에 설치된 콘텐츠가 포함되어 있습니다. 계층은 서버 XML 구성 파일을 업데이트하고 서버 설치에 콘텐츠를 추가할 수 있습니다.

이 섹션에서는 OpenShift에서 JBoss EAP 8.0 서버의 MariaDB 드라이버 및 데이터 소스를 프로비저닝하기 위해 계층이 포함된 Galleon 기능 팩을 빌드하고 사용하는 방법을 설명합니다.

8.2.1.1. Maven 프로젝트 준비

Galleon 기능 패키지는 Maven을 사용하여 생성됩니다. 이 절차에서는 새 Maven 프로젝트를 생성하는 단계를 설명합니다.

프로세스

  1. 다음 명령을 실행하여 새 Maven 프로젝트를 생성합니다.

    mvn archetype:generate -DarchetypeGroupId=org.codehaus.mojo.archetypes -DarchetypeArtifactId=pom-root -DgroupId=org.jboss.eap.demo -DartifactId=mariadb-galleon-pack -DinteractiveMode=false
  2. mariadb-galleon-pack 디렉터리로 이동하여 pom.xml 파일을 업데이트하여 Red Hat Maven 리포지토리를 포함합니다.

    <repositories>
      <repository>
        <id>redhat-ga</id>
        <name>Redhat GA</name>
        <url>https://maven.repository.redhat.com/ga/</url>
      </repository>
    </repositories>
  3. pom.xml 파일을 업데이트하여 JBoss EAP Galleon 기능 팩 및 MariaDB 드라이버에 대한 종속성을 추가합니다.

    <dependencies>
      <dependency>
        <groupId>org.jboss.eap</groupId>
        <artifactId>wildfly-ee-galleon-pack</artifactId>
        <version>8.0.0.GA-redhat-00010</version>
        <type>zip</type>
      </dependency>
      <dependency>
        <groupId>org.mariadb.jdbc</groupId>
        <artifactId>mariadb-java-client</artifactId>
        <version>2.7.2</version>
      </dependency>
    </dependencies>
    참고
  4. Galleon 기능 팩을 빌드하는 데 사용되는 Maven 플러그인을 포함하도록 pom.xml 파일을 업데이트합니다.

    <build>
      <plugins>
        <plugin>
          <groupId>org.wildfly.galleon-plugins</groupId>
          <artifactId>wildfly-galleon-maven-plugin</artifactId>
          <version>6.4.8.Final-redhat-00001</version>
          <executions>
            <execution>
              <id>mariadb-galleon-pack-build</id>
              <goals>
                <goal>build-user-feature-pack</goal>
              </goals>
              <phase>compile</phase>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </build>

8.2.1.2. feature-pack 콘텐츠 추가

이 절차에서는 사용자 지정 Galleon 기능 팩에 레이어를 추가하는 데 도움이 됩니다(예: MariaDB 드라이버 및 데이터 소스 계층을 포함한 기능 팩).

사전 요구 사항

프로세스

  1. 사용자 지정 feature-pack Maven 프로젝트 내에서 src/main/resources 디렉터리를 생성합니다. 예를 들면 Maven 프로젝트 준비를 참조하십시오. 이 디렉터리는 feature-pack 콘텐츠를 포함하는 루트 디렉터리입니다.
  2. src/main/resources/modules/org/mariadb/jdbc/main 디렉터리를 만듭니다.
  3. 기본 디렉터리에서 다음 콘텐츠를 사용하여 module.xml 이라는 파일을 생성합니다.

    <?xml version="1.0" encoding="UTF-8"?>
    <module name="org.mariadb.jdbc" xmlns="urn:jboss:module:1.8">
      <resources>
        <artifact name="${org.mariadb.jdbc:mariadb-java-client}"/> 
    1
    
      </resources>
      <dependencies> 
    2
    
        <module name="java.se"/>
        <module name="jakarta.transaction.api"/>
        <module name="jdk.net"/>
      </dependencies>
    </module>
    1
    MariaDB 드라이버 groupIdartifactId. 프로비저닝 시 실제 드라이버 JAR 파일이 설치됩니다. 드라이버 버전은 pom.xml 파일에서 참조됩니다.
    2
    JBoss Modules 는 MariaDB 드라이버의 종속 항목을 모듈합니다.
  4. src/main/resources/layers/standalone/ 디렉터리를 생성합니다. 이는 Galleon 기능 팩이 정의하는 모든 계층의 루트 디렉터리입니다.
  5. src/main/resources/layers/standalone/mariadb-driver 디렉터리를 생성합니다.
  6. mariadb-driver 디렉터리에서 다음 콘텐츠를 사용하여 layer-spec.xml 파일을 생성합니다.

    <?xml version="1.0" ?>
    <layer-spec xmlns="urn:jboss:galleon:layer-spec:1.0" name="mariadb-driver">
      <feature spec="subsystem.datasources"> 
    1
    
        <feature spec="subsystem.datasources.jdbc-driver">
          <param name="driver-name" value="mariadb"/>
          <param name="jdbc-driver" value="mariadb"/>
          <param name="driver-xa-datasource-class-name" value="org.mariadb.jdbc.MariaDbDataSource"/>
          <param name="driver-module-name" value="org.mariadb.jdbc"/>
        </feature>
      </feature>
      <packages> 
    2
    
        <package name="org.mariadb.jdbc"/>
      </packages>
    </layer-spec>
    1
    org.mariadb.jdbc 모듈에서 구현하는 MariaDB 라는 JDBC 드라이버로 데이터 소스 하위 시스템 구성을 업데이트합니다.
    2
    계층이 프로비저닝될 때 설치된 드라이버 클래스가 포함된 JBoss Modules 모듈.

    mariadb-driver 계층은 JBoss Modules 모듈에서 구현하는 JDBC 드라이버의 구성으로 데이터 소스 하위 시스템을 업데이트합니다.

  7. src/main/resources/layers/standalone/mariadb-datasource 디렉터리를 생성합니다.
  8. mariadb-datasource 디렉터리에서 다음 콘텐츠를 사용하여 layer-spec.xml 파일을 생성합니다.

    <?xml version="1.0" ?>
    <layer-spec xmlns="urn:jboss:galleon:layer-spec:1.0" name="mariadb-datasource">
      <dependencies>
        <layer name="mariadb-driver"/> 
    1
    
      </dependencies>
      <feature spec="subsystem.datasources.data-source"> 
    2
    
        <param name="data-source" value="MariaDBDS"/>
        <param name="jndi-name" value="java:jboss/datasources/${env.MARIADB_DATASOURCE:MariaDBDS}"/>
        <param name="connection-url" value="jdbc:mariadb://${env.MARIADB_HOST:localhost}:${env.MARIADB_PORT:3306}/${env.MARIADB_DATABASE}"/> 
    3
    
        <param name="driver-name" value="mariadb"/>
        <param name="user-name" value="${env.MARIADB_USER}"/> 
    4
    
        <param name="password" value="${env.MARIADB_PASSWORD}"/>
      </feature>
    </layer-spec>
    1
    이 종속성은 데이터 소스가 프로비저닝될 때 MariaDB 드라이버의 프로비저닝을 적용합니다. 계층이 종속된 모든 계층은 해당 계층을 프로비저닝할 때 자동으로 프로비저닝됩니다.
    2
    MariaDBDS 라는 데이터 소스로 데이터 소스 하위 시스템 구성을 업데이트합니다.
    3
    데이터 소스의 이름, 호스트, 포트 및 데이터베이스 값은 서버가 시작될 때 설정된 MARIADB_ HOST, MARIADB_PORT, MARIADB_DATABASE. 환경 변수에서 확인됩니다.
    4
    사용자 이름 및 암호 값은 환경 변수 MARIADB_USERMARIADB_PASSWORD 에서 확인됩니다.
  9. 다음 명령을 실행하여 Galleon 기능 팩을 빌드합니다.

    mvn clean install

    target/mariadb-galleon-pack-1.0-SNAPSHOT.zip 파일이 생성됩니다.

8.2.1.3. S2I 빌드 중 사용자 정의 Galleon 기능 팩 사용

OpenShift S2I 빌드 중에 발생하는 Maven 빌드에서 사용자 지정 기능 팩을 사용할 수 있어야 합니다. 일반적으로 사용자 지정 기능 팩을 아티팩트(예: org.jboss.eap.demo:mariadb-galleon-pack:1.0-SNAPSHOT )로 배포할 수 있습니다.

참고

사용자 지정 Galleon 기능 팩 사용에 대한 JBoss EAP S2I 이미지 구성에 대한 자세한 내용은 고급 환경 변수를 사용하여 Galleon 구성 을 참조하십시오.

사전 요구 사항

  • oc 명령줄이 설치되어 있어야 합니다.
  • OpenShift 클러스터에 로그인되어 있습니다.
  • Red Hat Container 레지스트리에 대한 액세스 권한이 구성되어 있습니다. 자세한 내용은 Red Hat Container Registry 를 참조하십시오.
  • 사용자 정의 Galleon 기능 팩을 생성했습니다. 자세한 내용은 Maven 프로젝트 준비를 참조하십시오.

프로세스

  1. 다음 명령을 실행하여 MariaDB 데이터베이스를 시작합니다. 이 예에서는 MariaDB 이미지 mariadb-105-rhel7 을 사용합니다. 지원되는 최신 버전의 MariaDB 이미지를 사용해야 합니다. MariaDB 이미지에 대한 자세한 내용은 Red Hat Ecosystem Catalog 에서 참조하십시오.

    oc new-app -e MYSQL_USER=admin -e MYSQL_PASSWORD=admin -e MYSQL_DATABASE=mariadb registry.redhat.io/rhscl/mariadb-105-rhel7

    OpenShift 서비스 mariadb-101-rhel7 이 생성되고 시작됩니다.

  2. Maven 프로젝트 디렉터리 mariadb-galleon-pack:에서 다음 명령을 실행하여 사용자 지정 feature-pack Maven 빌드에서 생성된 feature-pack 아카이브에서 시크릿을 생성합니다.

    oc create secret generic mariadb-galleon-pack --from-file=target/mariadb-galleon-pack-1.0-SNAPSHOT.zip

    비밀 mariadb-galleon-pack 이 생성됩니다. S2I 빌드를 시작할 때 이 시크릿은 Pod에 feature-pack .zip 파일을 마운트하여 서버 프로비저닝 단계에서 파일을 사용할 수 있도록 합니다.

8.2.1.4. JBoss EAP 8 이미지 스트림 가져오기

아래 절차에 따라 JBoss EAP 8.0 이미지 스트림을 가져올 수 있습니다.

프로세스

  1. JBoss EAP 8.0 이미지 스트림을 가져옵니다.

    oc import-image jboss-eap-8/eap8-openjdk17-builder-openshift-rhel8:latest --from=registry.redhat.io/jboss-eap-8/eap8-openjdk17-builder-openshift-rhel8:latest
    --confirm
8.2.1.4.1. JBoss EAP maven 플러그인을 사용하여 S2I 빌드 생성

Cryostat -maven-plugin 은 JBoss EAP galleon 기능 팩, JBoss EAP 클라우드 galleon 기능 팩mariadb galleon 기능 팩에 대한 참조로 구성되어 있습니다. pom.xml 의 추출물을 참조하십시오:

<feature-packs>
  <feature-pack>
    <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-pack>
    <location>org.jboss.eap.demo:mariadb-galleon-pack:1.0-SNAPSHOT</location>
1

  </feature-pack>
</feature-packs>
<layers>
  <layer>jaxrs-server</layer>
  <layer>mariadb-datasource</layer>
2

</layers>
1
mariadb feature-pack 버전이 필요합니다. JBoss EAP 8 구성된 채널에서는 해결되지 않습니다.
2
mariadb-datasource 계층입니다.

프로세스

  1. 다음 명령을 실행하여 S2I 빌드를 생성합니다.

    oc new-build eap8-openjdk17-builder-openshift-rhel8:latest~https://github.com/jboss-container-images/jboss-eap-8-openshift-image#EAP_8.0.0 \
    --context-dir=examples/eap/custom-layers/application \
    --build-secret=mariadb-galleon-pack:/tmp/demo-maven-repository/org/jboss/eap/demo/mariadb-galleon-pack/1.0-SNAPSHOT \ 
    1
    
    --name=mariadb-app-build
    1
    mariadb-galleon-pack 시크릿은 /tmp/demo-maven-repository/org/jboss/eap/demo/mariadb-galleon-pack/1.0-SNAPSHOT 디렉터리에 마운트됩니다.

추가 리소스

자세한 내용은 JBoss EAP 8.0 데모 예제 를 참조하십시오.

8.2.1.4.2. 레거시 S2I 프로비저닝 기능을 사용하여 S2I 빌드 생성

서버를 프로비저닝할 수 있도록 openshift-legacy 프로필을 사용하여 S2I 빌드를 구성할 수 있습니다.

프로세스

  1. 다음 명령을 실행하여 새 OpenShift 빌드를 생성합니다.

    oc new-build eap8-openjdk17-builder-openshift-rhel8:latest~https://github.com/jboss-container-images/jboss-eap-8-openshift-image#EAP_8.0.0 \
    --context-dir=examples/eap/custom-layers/application \
    --env=GALLEON_PROVISION_CHANNELS="org.jboss.eap.channels:eap-8.0" \ 
    1
    
    --env=GALLEON_PROVISION_FEATURE_PACKS="org.jboss.eap:wildfly-ee-galleon-pack,org.jboss.eap.cloud:eap-cloud-galleon-pack,org.jboss.eap.demo:mariadb-galleon-pack:1.0-SNAPSHOT" \ 
    2
    
    --env=GALLEON_PROVISION_LAYERS="jaxrs-server,mariadb-datasource" \ 
    3
    
    --env=GALLEON_CUSTOM_FEATURE_PACKS_MAVEN_REPO="/tmp/demo-maven-repository" \ 
    4
    
    --env=MAVEN_ARGS="-Popenshift-legacy" \ 
    5
    
    --build-secret=mariadb-galleon-pack:/tmp/demo-maven-repository/org/jboss/eap/demo/mariadb-galleon-pack/1.0-SNAPSHOT \ 
    6
    
    --name=mariadb-app-build
    1
    이 환경 변수는 프로비저닝 중에 JBoss EAP 8.0 채널을 사용합니다.
    2
    이 환경 변수는 JBoss EAP 8.0 기능 팩,클라우드 기능 팩mariadb 기능-팩 을 참조합니다.
    3
    이 환경 변수는 서버를 프로비저닝하는 데 사용할 Galleon 계층 세트를 참조합니다. jaxrs-server 는 기본 서버 계층이며 mariadb-datasourcemariadb 드라이버 및 새 데이터 소스를 서버 설치에 가져오는 사용자 지정 계층입니다.
    4
    이는 mariadb 기능 팩이 포함된 로컬 maven 리포지토리의 위치를 가리킵니다.
    5
    이 환경 변수는 MAVEN_ARGS 를 사용하여 openshift-legacy 프로필을 활성화합니다.
    6
    mariadb-galleon-pack 시크릿은 /tmp/demo-maven-repository/org/jboss/eap/demo/mariadb-galleon-pack/1.0-SNAPSHOT 디렉터리에 마운트됩니다.
참고

이 디렉터리 경로는 Maven 리포지토리 아티팩트 좌표를 경로 매핑으로 준수합니다.

8.2.1.4.3. 빌드 시작

새 빌드를 생성하여 mariadb-app-build 이미지를 생성할 수 있습니다.

프로세스

  1. 이전에 생성한 동일한 OpenShift 빌드에서 새 빌드를 시작하고 다음 명령을 실행합니다.

    oc start-build mariadb-app-build

    성공적으로 명령을 실행하면 mariadb-app-build 이미지가 생성됩니다.

8.2.1.4.4. 새 배포 생성

실행 중인 MariaDB 데이터베이스에 데이터 소스를 바인딩하는 데 필요한 환경 변수를 제공하여 새 배포를 생성할 수 있습니다.

프로세스

  1. 다음 명령을 실행하여 새 배포를 생성합니다.

    oc new-app --name=mariadb-app mariadb-app-build \
    --env=MARIADB_PORT=3306 \
    --env=MARIADB_USER=admin \
    --env=MARIADB_PASSWORD=admin \
    --env=MARIADB_HOST=mariadb-105-rhel7 \
    --env=MARIADB_DATABASE=mariadb  \
    --env=MARIADB_DATASOURCE=Demo 
    1
    1
    데모에서는 데이터 소스의 이름이 데모가 될 것으로 예상합니다.
    참고

    사용자 지정 Galleon 기능 팩 환경 변수에 대한 자세한 내용은 사용자 정의 Galleon 기능 팩 환경 변수를 참조하십시오.

  2. mariadb-app 애플리케이션을 노출하고 다음 명령을 실행합니다.

    oc expose svc/mariadb-app
  3. 새 작업을 생성하려면 다음 명령을 실행합니다.

    curl -X POST http://$(oc get route mariadb-app --template='{{ .spec.host }}')/tasks/title/foo
  4. 작업 목록에 액세스하려면 다음 명령을 실행합니다.

    curl http://$(oc get route mariadb-app --template='{{ .spec.host }}')

    추가된 작업이 브라우저에 표시됩니다.

8.2.2. 고급 환경 변수를 사용하여 Galleon 구성

고급 사용자 지정 Galleon 기능 팩 환경 변수를 사용하여 S2I 이미지 빌드 프로세스 중에 사용자 지정 Galleon 기능 팩 및 계층을 저장하는 위치를 사용자 지정할 수 있습니다. 이러한 고급 사용자 지정 Galleon 기능 팩 환경 변수는 다음과 같습니다.

  • GALLEON_DIR=<path > 기본 < project_root_dir>/galleon 디렉터리 경로를 < project_root_dir>/<GALLEON_DIR > 로 재정의합니다.
  • GALLEON_CUSTOM_FEATURE_PACKS_MAVEN_REPO=<path > . . 에서는 < project root dir>/galleon/repository 디렉터리 경로를 Maven 로컬 리포지토리 캐시 디렉터리에 대한 절대 경로로 재정의합니다. 이 리포지토리에는 사용자 지정 Galleon 기능 팩이 포함되어 있습니다.

Maven local-cache 파일 시스템 구성을 준수하는 하위 디렉터리 내에서 Galleon 기능 팩 아카이브 파일을 찾아야 합니다. 예를 들어 path-to-repository/org/examples/my-feature-pack/1.0.0.Final/my-feature-pack-1.0.0.Final.zip 경로 내에서 org.examples:my-feature-pack:1.0.0.Final 기능 팩:1.0.0.Final 기능 팩을 찾습니다.

<project _root>/<GALLEON_DIR> 디렉터리에 settings.xml 파일을 생성하여 Maven 프로젝트 설정을 구성할 수 있습니다. GALLEON_DIR 의 기본값은 < project_root_dir>/galleon 입니다. Maven은 파일을 사용하여 애플리케이션의 사용자 지정 Galleon 기능 팩을 프로비저닝합니다. settings.xml 파일을 생성하지 않으면 Maven은 S2I 이미지에서 생성한 기본 settings.xml 파일을 사용합니다.

중요

S2I 빌더 이미지가 로컬 Maven 리포지토리의 위치를 지정하므로 settings.xml 파일에 로컬 Maven 리포지토리 위치를 지정하지 마십시오. S2I 빌더 이미지는 S2I 빌드 프로세스 중에 이 위치를 사용합니다.

8.2.3. 사용자 정의 Galleon 기능 팩 환경 변수

다음 사용자 지정 Galleon 기능 팩 환경 변수를 사용하여 JBoss EAP S2I 이미지 사용 방법을 사용자 지정할 수 있습니다.

Expand
표 8.1. 사용자 지정 Galleon 기능 팩 환경 변수에 대한 설명
환경 변수설명

GALLEON_DIR=<path>

여기서 <path >는 애플리케이션 프로젝트의 루트 디렉터리를 기준으로 하는 디렉터리입니다. & lt;path > 디렉터리에는 settings.xml 파일 및 로컬 Maven 리포지토리 캐시와 같은 선택적 Galleon 사용자 정의 콘텐츠가 포함되어 있습니다. 이 캐시에는 사용자 지정 Galleon 기능 팩이 포함되어 있습니다.

디렉터리의 기본값은 galleon 입니다.

GALLEON_CUSTOM_FEATURE_PACKS_MAVEN_REPO=<path>

<path >는 사용자 지정 기능 팩을 포함하는 Maven 로컬 리포지토리 디렉터리의 절대 경로입니다. 디렉터리의 기본값은 galleon/repository 입니다.

GALLEON_PROVISION_FEATURE_PACKS=<list_of_galleon_feature_packs>

여기서 < list_of_galleon_feature_packs >은 Maven 좌표로 식별되는 사용자 지정 Galleon 기능 팩의 쉼표로 구분된 목록입니다. 나열된 기능 팩은 빌더 이미지에 있는 JBoss EAP 8.0 서버 버전과 호환되어야 합니다.

GALLEON_PROVISION_LAYERS 환경 변수를 사용하여 서버에 대해 사용자 지정 기능 팩에 정의된 Galleon 계층을 설정할 수 있습니다.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동