마이그레이션 가이드


Red Hat Fuse 7.5

Red Hat Fuse 7.5로 마이그레이션

Fuse Documentation Team

초록

이 가이드를 사용하여 Fuse 설치를 최신 Red Hat Fuse 버전으로 업그레이드할 때 도움이 됩니다.

머리말

이 가이드에서는 Red Hat Fuse 및 Fuse 애플리케이션 업데이트에 대한 정보를 제공합니다.

참고

이 가이드의 지침에 따라 Fuse 6에서 최신 Fuse 7 릴리스로 마이그레이션하려면 Red Hat Fuse 7.0 마이그레이션 가이드 의 지침을 따라야 합니다.

1장. Spring Boot 독립형에서 Fuse 애플리케이션 업그레이드

2장. JBoss EAP 독립 실행형에서 Fuse 애플리케이션 업그레이드

3장. Karaf 독립 실행형에서 Fuse 애플리케이션 업그레이드

4장. Karaf에서 Fuse Standalone 업그레이드

1장. Spring Boot 독립형에서 Fuse 애플리케이션 업그레이드

Spring Boot에서 Fuse 애플리케이션을 업그레이드하려면 Fuse 프로젝트의 Maven 종속성을 업데이트하여 올바른 Fuse 버전을 사용해야 합니다.

일반적으로 Maven을 사용하여 Fuse 애플리케이션을 빌드합니다. Maven은 Apache의 무료 오픈 소스 빌드 툴입니다. Maven 구성은 Fuse 애플리케이션 프로젝트의 pom.xml 파일에 정의되어 있습니다. Fuse 프로젝트를 빌드하는 동안 기본 동작은 Maven이 외부 리포지토리를 검색하고 필요한 아티팩트를 다운로드하는 것입니다. Maven 빌드 프로세스에서 올바른 Fuse 지원 아티팩트 세트를 선택할 수 있도록BOM(Fuse of material)에 대한 종속성을 pom.xml 파일에 추가합니다.

다음 섹션에서는 Maven 종속 항목에 대한 정보와 Fuse 프로젝트에서 업데이트하는 방법을 설명합니다.

1.1. Maven 종속 항목 정보

BOM(Maven bill of materials) 파일의 목적은 잘 작동하는 Maven 종속성 버전 집합을 제공하여 모든 Maven 아티팩트에 대해 버전을 개별적으로 정의할 필요가 없도록 하는 것입니다.

Fuse가 실행되는 각 컨테이너에 전용 BOM 파일이 있습니다.

참고

이러한 BOM 파일을 여기에서 찾을 수 있습니다. https://github.com/jboss-fuse/redhat-fuse. 또는 BOM 파일 업데이트에 대한 정보는 최신 릴리스 노트 로 이동합니다.

Fuse BOM은 다음과 같은 이점을 제공합니다.

  • pom.xml 파일에 종속성을 추가할 때 버전을 지정할 필요가 없도록 Maven 종속 항목에 대한 버전을 정의합니다.
  • 특정 버전의 Fuse에서 완전히 테스트 및 지원되는 선별된 종속성 세트를 정의합니다.
  • Fuse 업그레이드 간소화.
중요

Fuse BOM에서 정의한 종속성 세트만 Red Hat에서 지원합니다.

1.2. Fuse 프로젝트의 Maven 종속성 업데이트

Spring Boot 용 Fuse 애플리케이션을 업그레이드하려면 프로젝트의 Maven 종속성을 업데이트합니다.

절차

  1. 프로젝트의 pom.xml 파일을 엽니다.
  2. 다음 예와 같이 프로젝트의 pom.xml 파일(또는 상위 pom.xml 파일)에 dependencyManagement 요소를 추가합니다.

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <project ...>
      ...
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    
        <!-- configure the versions you want to use here -->
        <fuse.version>7.5.0.fuse-750029-redhat-00002</fuse.version>
    
      </properties>
    
      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>org.jboss.redhat-fuse</groupId>
            <artifactId>fuse-springboot-bom</artifactId>
            <version>${fuse.version}</version>
            <type>pom</type>
            <scope>import</scope>
          </dependency>
        </dependencies>
      </dependencyManagement>
      ...
    </project>
    참고

    Spring Boot 버전도 업데이트해야 합니다. 일반적으로 pom.xml 파일의 Fuse 버전에서 찾을 수 있습니다.

         <properties>
          <!-- configure the versions you want to use here -->
          <fuse.version>7.5.0.fuse-750029-redhat-00002</fuse.version>
          <spring-boot.version>1.5.19.RELEASE</spring-boot.version>
        </properties>
  3. pom.xml 파일을 저장합니다.

pom.xml 파일에서 BOM을 종속성으로 지정하면 아티팩트 버전을 지정하지 않고 Maven 종속성을 pom.xml 파일에 추가할 수 있습니다. 예를 들어 camel-velocity 구성 요소에 대한 종속성을 추가하려면 pom.xml 파일의 종속 항목에 다음 XML 조각을 추가합니다.

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-velocity</artifactId>
  <scope>provided</scope>
</dependency>

이 종속성 정의에서 version 요소를 생략하는 방법을 참조하십시오.

2장. JBoss EAP 독립 실행형에서 Fuse 애플리케이션 업그레이드

JBoss EAP에서 Fuse 애플리케이션을 업그레이드하려면 올바른 Fuse 버전을 사용하도록 Fuse 프로젝트의 Maven 종속성을 업데이트해야 합니다.

일반적으로 Maven을 사용하여 Fuse 애플리케이션을 빌드합니다. Maven은 Apache의 무료 오픈 소스 빌드 툴입니다. Maven 구성은 Fuse 애플리케이션 프로젝트의 pom.xml 파일에 정의되어 있습니다. Fuse 프로젝트를 빌드하는 동안 기본 동작은 Maven이 외부 리포지토리를 검색하고 필요한 아티팩트를 다운로드하는 것입니다. Maven 빌드 프로세스에서 올바른 Fuse 지원 아티팩트 세트를 선택할 수 있도록BOM(Fuse of material)에 대한 종속성을 pom.xml 파일에 추가합니다.

다음 섹션에서는 Maven 종속 항목에 대한 정보와 Fuse 프로젝트에서 업데이트하는 방법을 설명합니다.

2.1. Maven 종속 항목 정보

BOM(Maven bill of materials) 파일의 목적은 잘 작동하는 Maven 종속성 버전 집합을 제공하여 모든 Maven 아티팩트에 대해 버전을 개별적으로 정의할 필요가 없도록 하는 것입니다.

Fuse가 실행되는 각 컨테이너에 전용 BOM 파일이 있습니다.

참고

이러한 BOM 파일을 여기에서 찾을 수 있습니다. https://github.com/jboss-fuse/redhat-fuse. 또는 BOM 파일 업데이트에 대한 정보는 최신 릴리스 노트 로 이동합니다.

Fuse BOM은 다음과 같은 이점을 제공합니다.

  • pom.xml 파일에 종속성을 추가할 때 버전을 지정할 필요가 없도록 Maven 종속 항목에 대한 버전을 정의합니다.
  • 특정 버전의 Fuse에서 완전히 테스트 및 지원되는 선별된 종속성 세트를 정의합니다.
  • Fuse 업그레이드 간소화.
중요

Fuse BOM에서 정의한 종속성 세트만 Red Hat에서 지원합니다.

2.2. Fuse 프로젝트의 Maven 종속성 업데이트

JBoss EAP용 Fuse 애플리케이션을 업그레이드하려면 프로젝트의 Maven 종속성을 업데이트합니다.

절차

  1. 프로젝트의 pom.xml 파일을 엽니다.
  2. 다음 예와 같이 프로젝트의 pom.xml 파일(또는 상위 pom.xml 파일)에 dependencyManagement 요소를 추가합니다.

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <project ...>
      ...
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    
        <!-- configure the versions you want to use here -->
        <fuse.version>7.5.0.fuse-750029-redhat-00002</fuse.version>
    
      </properties>
    
      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>org.jboss.redhat-fuse</groupId>
            <artifactId>fuse-eap-bom</artifactId>
            <version>${fuse.version}</version>
            <type>pom</type>
            <scope>import</scope>
          </dependency>
        </dependencies>
      </dependencyManagement>
      ...
    </project>
  3. pom.xml 파일을 저장합니다.

pom.xml 파일에서 BOM을 종속성으로 지정하면 아티팩트 버전을 지정하지 않고 Maven 종속성을 pom.xml 파일에 추가할 수 있습니다. 예를 들어 camel-velocity 구성 요소에 대한 종속성을 추가하려면 pom.xml 파일의 종속 항목에 다음 XML 조각을 추가합니다.

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-velocity</artifactId>
  <scope>provided</scope>
</dependency>

이 종속성 정의에서 version 요소를 생략하는 방법을 참조하십시오.

3장. Karaf 독립 실행형에서 Fuse 애플리케이션 업그레이드

Karaf에서 Fuse 애플리케이션을 업그레이드하려면 Fuse 프로젝트의 Maven 종속성을 업데이트하여 올바른 Fuse 버전을 사용해야 합니다.

일반적으로 Maven을 사용하여 Fuse 애플리케이션을 빌드합니다. Maven은 Apache의 무료 오픈 소스 빌드 툴입니다. Maven 구성은 Fuse 애플리케이션 프로젝트의 pom.xml 파일에 정의되어 있습니다. Fuse 프로젝트를 빌드하는 동안 기본 동작은 Maven이 외부 리포지토리를 검색하고 필요한 아티팩트를 다운로드하는 것입니다. Maven 빌드 프로세스에서 올바른 Fuse 지원 아티팩트 세트를 선택할 수 있도록BOM(Fuse of material)에 대한 종속성을 pom.xml 파일에 추가합니다.

다음 섹션에서는 Maven 종속 항목에 대한 정보와 Fuse 프로젝트에서 업데이트하는 방법을 설명합니다.

3.1. Maven 종속 항목 정보

BOM(Maven bill of materials) 파일의 목적은 잘 작동하는 Maven 종속성 버전 집합을 제공하여 모든 Maven 아티팩트에 대해 버전을 개별적으로 정의할 필요가 없도록 하는 것입니다.

Fuse가 실행되는 각 컨테이너에 전용 BOM 파일이 있습니다.

참고

이러한 BOM 파일을 여기에서 찾을 수 있습니다. https://github.com/jboss-fuse/redhat-fuse. 또는 BOM 파일 업데이트에 대한 정보는 최신 릴리스 노트 로 이동합니다.

Fuse BOM은 다음과 같은 이점을 제공합니다.

  • pom.xml 파일에 종속성을 추가할 때 버전을 지정할 필요가 없도록 Maven 종속 항목에 대한 버전을 정의합니다.
  • 특정 버전의 Fuse에서 완전히 테스트 및 지원되는 선별된 종속성 세트를 정의합니다.
  • Fuse 업그레이드 간소화.
중요

Fuse BOM에서 정의한 종속성 세트만 Red Hat에서 지원합니다.

3.2. Fuse 프로젝트의 Maven 종속성 업데이트

Karaf용 Fuse 애플리케이션을 업그레이드하려면 프로젝트의 Maven 종속성을 업데이트합니다.

절차

  1. 프로젝트의 pom.xml 파일을 엽니다.
  2. 다음 예와 같이 프로젝트의 pom.xml 파일(또는 상위 pom.xml 파일)에 dependencyManagement 요소를 추가합니다.

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <project ...>
      ...
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    
        <!-- configure the versions you want to use here -->
        <fuse.version>7.5.0.fuse-750029-redhat-00002</fuse.version>
    
      </properties>
    
      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>org.jboss.redhat-fuse</groupId>
            <artifactId>fuse-karaf-bom</artifactId>
            <version>${fuse.version}</version>
            <type>pom</type>
            <scope>import</scope>
          </dependency>
        </dependencies>
      </dependencyManagement>
      ...
    </project>
  3. pom.xml 파일을 저장합니다.

pom.xml 파일에서 BOM을 종속성으로 지정하면 아티팩트 버전을 지정하지 않고 Maven 종속성을 pom.xml 파일에 추가할 수 있습니다. 예를 들어 camel-velocity 구성 요소에 대한 종속성을 추가하려면 pom.xml 파일의 종속 항목에 다음 XML 조각을 추가합니다.

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-velocity</artifactId>
  <scope>provided</scope>
</dependency>

이 종속성 정의에서 version 요소를 생략하는 방법을 참조하십시오.

4장. Karaf에서 Fuse Standalone 업그레이드

Fuse on Apache Karaf 업그레이드 메커니즘을 사용하면 Karaf에서 업데이트된 버전의 Fuse를 다시 설치할 필요 없이 Apache Karaf 컨테이너에 수정 사항을 적용할 수 있습니다. 또한 업그레이드로 인해 배포된 애플리케이션에 문제가 발생하는 경우 업그레이드를 롤백할 수 있습니다.

업그레이드 설치 프로그램 파일은 Apache Karaf에 Fuse를 설치하는 데 사용하는 것과 동일한 파일입니다.

참고

업그레이드 설치 프로그램 파일을 얻으려면 Red Hat 고객 포털의 다운로드 페이지로 이동하여 Apache Karaf에서 Fuse용 최신 버전의 설치 아카이브(예: fuse-karaf-7.5.0.fuse-750035-redhat-00001.zip)를 다운로드합니다.

4.1. Fuse on Karaf를 업그레이드할 때의 영향

업그레이드 메커니즘은 번들 JAR 및 정적 파일(예: etc/ 디렉토리 아래의 구성 파일 포함)을 포함한 모든 설치 파일을 업데이트할 수 있습니다. Apache Karaf 업그레이드 프로세스의 Fuse:

  • 번들 JAR, 구성 파일 및 정적 파일을 포함한 모든 파일을 업데이트합니다.
  • 현재 컨테이너 인스턴스(및 데이터/ 디렉터리 아래의 런타임 스토리지)와 기본 설치를 모두 패치합니다. 따라서 컨테이너 인스턴스를 삭제한 후 패치가 유지됩니다.
  • 기능 리포지토리 파일 및 기능 자체를 포함하여 Karaf 기능과 관련된 모든 파일을 업데이트합니다. 따라서 롤업 패치 후에 설치된 모든 기능은 올바른 패치된 종속 항목을 참조합니다.
  • 필요한 경우 구성 파일(예: etc/아래 파일)을 업데이트하고 패치를 통해 변경한 구성 변경 사항을 자동으로 병합합니다. 병합 충돌이 발생하는 경우 패치 로그에서 처리 방법에 대한 자세한 내용을 참조하십시오.
  • 대부분의 병합 충돌은 자동으로 해결됩니다. 예를 들어 패치 메커니즘은 속성 파일의 속성 수준에서 충돌을 감지합니다. 사용자인지 또는 속성을 변경한 패치인지 여부를 감지합니다. 한 쪽만 속성을 변경한 경우 변경 사항은 보존됩니다.
  • 패치를 롤백할 수 있도록 설치에 수행된 모든 변경 사항(정의 파일 포함)을 추적합니다.

    참고

    롤업 패치 메커니즘은 내부 git 리포지토리( patches/.management/history)를 사용하여 변경 사항을 추적합니다.

4.2. Karaf에서 Fuse Standalone 업그레이드

다음 지침에서는 Apache Karaf에서 Fuse를 업그레이드하는 방법을 설명합니다. 업그레이드 절차를 시작하기 전에 모든 사전 요구 사항이 완료되었는지 확인합니다.

사전 요구 사항

  • 업그레이드하기 전에 Apache Karaf 설치에서 Fuse를 전체 백업해야 합니다.
  • 아직 실행되지 않은 경우 컨테이너를 시작합니다.
작은 정보

컨테이너가 백그라운드에서 실행 중인 경우(또는 원격으로) SSH 콘솔 클라이언트인 bin/client 를 사용하여 컨테이너에 연결합니다.

  • patch:add 명령을 호출하여 업그레이드 설치 프로그램 파일을 컨테이너의 환경에 추가합니다. 예를 들어 fuse-karaf-7.5.0.fuse-750035-redhat-00001.zip 업그레이드 설치 프로그램 파일을 추가하려면 다음을 수행합니다.

    patch:add file:///path/to/fuse-karaf-7.5.0.fuse-750035-redhat-00001.zip

절차

  1. patch:update 명령을 실행합니다. 컨테이너를 다시 시작할 필요가 없습니다.

    karaf@root()> patch:update
    Current patch mechanism version: 7.1.0.fuse-710023-redhat-00001
    New patch mechanism version detected: 7.2.0.fuse-720035-redhat-00001
    Uninstalling patch features in version 7.1.0.fuse-710023-redhat-00001
    Installing patch features in version 7.2.0.fuse-720035-redhat-00001
  2. patch:list 명령을 호출하여 업그레이드 설치 프로그램 목록을 표시합니다. 이 목록에서 [name] 제목 아래의 항목은 업그레이드 ID입니다. 예를 들면 다음과 같습니다.

    karaf@root()> patch:list
    [name]                                    [installed] [rollup] [description]
    fuse-karaf-7.2.0.fuse-720035-redhat-00001 false       true     fuse-karaf-7.2.0.fuse-720035-redhat-00001
  3. patch:simulate 명령을 호출하고 적용할 업그레이드 ID를 다음과 같이 지정하여 업그레이드를 시뮬레이션합니다.

    karaf@root()> patch:simulate fuse-karaf-7.2.0.fuse-720035-redhat-00001
    INFO : org.jboss.fuse.modules.patch.patch-management (226): Installing rollup patch "fuse-karaf-7.2.0.fuse-720035-redhat-00001"
    ========== Repositories to remove (9):
     - mvn:io.hawt/hawtio-karaf/2.0.0.fuse-710018-redhat-00002/xml/features
    ...
    ========== Repositories to add (9):
     - mvn:io.hawt/hawtio-karaf/2.0.0.fuse-720044-redhat-00001/xml/features
    ...
    ========== Repositories to keep (10):
     - mvn:org.apache.activemq/artemis-features/2.4.0.amq-711002-redhat-1/xml/features
    ...
    ========== Features to update (100):
    [name]                         [version]                         [new version]
    aries-blueprint                4.2.0.fuse-710024-redhat-00002    4.2.0.fuse-720061-redhat-00001
    ...
    ========== Bundles to update as part of features or core bundles (100):
    [symbolic name]                                                [version]                         [new location]
    io.hawt.hawtio-log                                             2.0.0.fuse-710018-redhat-00002    mvn:io.hawt/hawtio-log/2.0.0.fuse-720044-redhat-00001
    ...
    ========== Bundles to reinstall as part of features or core bundles (123):
    [symbolic name]                                                [version]                         [location]
    com.fasterxml.jackson.core.jackson-annotations                 2.8.11                            mvn:com.fasterxml.jackson.core/jackson-annotations/2.8.11
    ...
    Simulation only - no files and runtime data will be modified.
    karaf@root()>

    이렇게 하면 업그레이드가 수행되지만 컨테이너를 실제로 변경하지 않는 경우 컨테이너에 대한 변경 로그가 생성됩니다. 시뮬레이션 로그를 검토하여 컨테이너에 적용할 변경 사항을 파악합니다.

  4. patch:install 명령을 호출하여 컨테이너를 업그레이드하고 적용할 업그레이드 ID를 지정합니다. 예를 들면 다음과 같습니다.

    karaf@root()> patch:install fuse-karaf-7.5.0.fuse-750035-redhat-00001
  5. 업그레이드 아티팩트 중 하나를 검색하여 업그레이드를 확인합니다. 예를 들어 Fuse 7.1.0을 Fuse 7.2.0으로 업그레이드한 경우 다음과 같이 빌드 번호 750035로 번들을 검색할 수 있습니다.

    karaf@root()> bundle:list -l | grep 750035
     22 │ Active │  80 │ 7.5.0.fuse-750035-redhat-00001  │ mvn:org.jboss.fuse.modules/fuse-pax-transx-tm-narayana/7.5.0.fuse-750035-redhat-00001
    188 │ Active │  80 │ 7.5.0.fuse-750035-redhat-00001  │ mvn:org.jboss.fuse.modules.patch/patch-commands/7.5.0.fuse-750035-redhat-00001
참고

업그레이드 후 컨테이너를 다시 시작할 때 welcome 배너에 새 버전과 빌드 번호도 표시됩니다.

4.3. Karaf에서 Fuse의 업그레이드 롤백

경우에 따라 업그레이드가 작동하지 않거나 컨테이너에 새로운 문제가 발생할 수 있습니다. 이 경우 patch:rollback 명령을 사용하여 업그레이드를 쉽게 롤백하고 시스템을 이전 상태로 복원할 수 있습니다. 이 지침에서는 이 절차를 안내합니다.

사전 요구 사항

  • 최근 Karaf에서 Fuse를 업그레이드했습니다.
  • 업그레이드를 롤백하려고 합니다.

절차

  1. patch:list 명령을 호출하여 가장 최근에 설치된 패치의 업그레이드 ID UPGRADE_ID 를 가져옵니다.
  2. 다음과 같이 patch:rollback 명령을 호출합니다.

    patch:rollback UPGRADE_ID
    참고

    경우에 따라 업그레이드를 롤백하기 위해 컨테이너를 다시 시작해야 합니다. 이 경우 컨테이너가 자동으로 다시 시작됩니다. OSGi 런타임의 매우 동적인 특성으로 인해 재시작 중에 호환되지 않는 클래스와 관련된 일부 오류가 표시될 수 있습니다. 이러한 오류는 방금 시작하거나 중지하여 무시해도 되는 OSGi 서비스와 관련이 있습니다.

법적 공지

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.