8.2. Karaf에서 Fuse Standalone 업그레이드
다음 지침에서는 Apache Karaf에서 Fuse를 업그레이드하는 방법을 설명합니다. 업그레이드 절차를 시작하기 전에 모든 사전 요구 사항이 완료되었는지 확인합니다.
사전 요구 사항
- 업그레이드하기 전에 Apache Karaf 설치에서 Fuse를 전체 백업해야 합니다.
- 아직 실행되지 않은 경우 컨테이너를 시작합니다.
컨테이너가 백그라운드에서 실행 중인 경우(또는 원격으로) SSH 콘솔 클라이언트인 bin/client
를 사용하여 컨테이너에 연결합니다.
patch:add
명령을 호출하여 업그레이드 설치 프로그램 파일을 컨테이너의 환경에 추가합니다. 예를 들어fuse-karaf-7.13.0.fuse-7_13_0-00012-redhat-00001.zip
업그레이드 설치 프로그램 파일을 추가하려면 다음을 수행합니다.patch:add file:///path/to/fuse-karaf-7.13.0.fuse-7_13_0-00012-redhat-00001.zip
참고patch:find
명령은 컨테이너 환경에 최신 핫픽스 패치를 찾아서 추가하는 데만 사용할 수 있습니다. 전체 업그레이드 패치를 적용하는 데 사용할 수 없습니다.프로세스
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
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
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()>
이렇게 하면 업그레이드가 수행되지만 컨테이너를 실제로 변경하지 않는 경우 컨테이너에 대한 변경 로그가 생성됩니다. 시뮬레이션 로그를 검토하여 컨테이너에 적용할 변경 사항을 파악합니다.
patch:install
명령을 호출하여 컨테이너를 업그레이드하고 적용할 업그레이드 ID를 지정합니다. 예를 들면 다음과 같습니다.karaf@root()> patch:install fuse-karaf-7.13.0.fuse-7_13_0-00012-redhat-00001
업그레이드 아티팩트 중 하나를 검색하여 업그레이드를 확인합니다. 예를 들어 Fuse 7.1.0을 Fuse 7.2.0으로 업그레이드한 경우 다음과 같이 빌드 번호 7.2.0.fuse-720035-redhat-00001으로 번들을 검색할 수 있습니다.
karaf@root()> bundle:list -l | grep 7.2.0.fuse-720035-redhat-00001 22 │ Active │ 80 │ 7.2.0.fuse-720035-redhat-00001 │ mvn:org.jboss.fuse.modules/fuse-pax-transx-tm-narayana/7.2.0.fuse-720035-redhat-00001 188 │ Active │ 80 │ 7.2.0.fuse-720035-redhat-00001 │ mvn:org.jboss.fuse.modules.patch/patch-commands/7.2.0.fuse-720035-redhat-00001
업그레이드 후 컨테이너를 다시 시작할 때 welcome 배너에 새 버전과 빌드 번호도 표시됩니다.