Edge 4.51.00으로 업데이트하는 중에 오류가 발생하면 오류를 일으킨 구성요소를 롤백한 후 업데이트를 다시 시도할 수 있습니다.
Edge 4.51.00을 다음 기능 출시 버전으로 롤백할 수 있습니다.
- 버전 4.50.00
- 버전 4.19.06
롤백을 실행해야 하는 두 가지 시나리오가 있습니다.
- 이전 기능 출시로 롤백합니다. 예를 들어 4.51.00에서 4.50.00으로 변경합니다.
- 동일한 출시의 이전 업데이트 버전으로 롤백합니다. 예를 들어 4.50.00.02에서 4.50.00.01로 변경할 수 있습니다.
자세한 내용은 Apigee Edge 출시 프로세스를 참고하세요.
롤백을 실행할 수 있는 사용자
롤백을 실행하는 사용자는 원래 Edge를 업데이트한 사용자 또는 root로 실행 중인 사용자와 동일해야 합니다.
기본적으로 Edge 구성요소는 'apigee' 사용자로 실행됩니다. 경우에 따라 Edge 구성요소를 다른 사용자로 실행할 수 있습니다. 예를 들어 라우터가 권한이 있는 포트(예: 1,000 미만의 포트)에 액세스해야 하는 경우 라우터를 루트로 실행하거나 이러한 포트에 액세스할 수 있는 사용자로 실행해야 합니다. 또는 한 구성요소는 한 사용자로, 다른 구성요소는 다른 사용자로 실행할 수도 있습니다.
공통 코드가 있는 구성요소
다음 Edge 구성요소는 공통 코드를 공유합니다. 따라서 노드에서 이러한 구성요소 중 하나를 롤백하려면 해당 노드에 있는 이러한 구성요소를 모두 롤백해야 합니다.
edge-management-server
(관리 서버)edge-message-processor
(메시지 프로세서)edge-router
(라우터)edge-postgres-server
(Postgres 서버)edge-qpid-server
(Qpid 서버)
예를 들어 노드에 관리 서버, 라우터, 메시지 프로세서가 설치된 경우, 그중 하나를 롤백하려면 세 가지 모두를 롤백해야 합니다.
이전 기능 출시로 롤백
이전 기능 출시로 롤백하려면 구성요소를 호스팅하는 각 노드에서 다음을 실행합니다.
-
롤백하려는 버전의
bootstrap.sh
파일을 다운로드합니다.- 4.50.00으로 롤백하려면
bootstrap_4.50.00.sh
를 다운로드하세요.curl https://software.apigee.com/bootstrap_4.50.00.sh -o /tmp/bootstrap_4.50.00.sh
- 4.19.06으로 롤백하려면
bootstrap_4.19.06.sh
을 다운로드하세요.curl https://software.apigee.com/bootstrap_4.19.01.sh -o /tmp/bootstrap_4.19.01.sh
- 4.50.00으로 롤백하려면
- 구성요소를 중지하여 롤백합니다.
- 노드에서 공통 코드가 있는 구성요소를 롤백하려면 다음 예와 같이 모두 중지해야 합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-management-server stop
/opt/apigee/apigee-service/bin/apigee-service edge-router stop
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor stop
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
- 노드의 기타 구성요소를 롤백하려면 해당 구성요소만 중지합니다.
/opt/apigee/apigee-service/bin/apigee-service component stop
- 노드에서 공통 코드가 있는 구성요소를 롤백하려면 다음 예와 같이 모두 중지해야 합니다.
- 수익 창출을 롤백하는 경우 모든 관리 서버 및 메시지 프로세서 노드에서 수익 창출을 제거합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-mint-gateway uninstall
- 노드에서 롤백할 구성요소를 제거합니다.
- 노드에서 공통 코드가 있는 구성요소를 롤백하려면 다음 예와 같이
edge-gateway
구성요소 그룹을 제거하여 모두 제거해야 합니다./opt/apigee/apigee-service/bin/apigee-service edge-gateway uninstall
- 노드의 다른 구성요소를 롤백하려면 다음 예와 같이 해당 구성요소만 제거합니다.
/opt/apigee/apigee-service/bin/apigee-service component uninstall
여기서 component은 구성요소 이름입니다.
- Edge 라우터를 롤백하려면
edge-gateway
구성요소 그룹을 제거하는 것 외에도/opt/nginx/conf.d
파일의 콘텐츠를 삭제해야 합니다.cd /opt/nginx/conf.d
rm -rf *
- 노드에서 공통 코드가 있는 구성요소를 롤백하려면 다음 예와 같이
apigee-setup
의 4.51.00 버전을 제거합니다./opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
apigee-service
유틸리티의 4.19.06 또는 4.50.00 버전과 종속 항목을 설치합니다. 다음 예에서는apigee-service
의 4.50.00 버전을 설치합니다.sudo bash /tmp/bootstrap_4.50.00.sh apigeeuser=uName apigeepassword=pWord
여기서 uName 및 pWord는 Apigee에서 받은 사용자 이름과 비밀번호입니다. pWord를 생략하면 입력하라는 메시지가 표시됩니다.
오류가 발생하면 1단계에서
bootstrap.sh
파일을 다운로드했는지 확인합니다.apigee-setup
을 설치합니다./opt/apigee/apigee-service/bin/apigee-service apigee-setup install
- 이전 버전의 구성요소를 설치합니다.
/opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile
여기서 component는 설치할 구성요소이고 configFile는 이전 버전의 구성 파일입니다.
- Qpid를 롤백하는 경우 iptables를 플러시합니다.
sudo iptables -F
- 롤백하는 구성요소를 호스팅하는 각 노드에 대해 이 프로세스를 반복합니다.
이전 업데이트 버전으로 롤백
구성요소를 출시의 특정 버전으로 롤백하려면 구성요소를 호스팅하는 각 노드에서 다음을 실행합니다.
- 특정 구성요소 버전을 다운로드합니다.
/opt/apigee/apigee-service/bin/apigee-service component_version install
여기서 component_version은 설치할 구성요소 및 업데이트 버전입니다. 예:
/opt/apigee/apigee-service/bin/apigee-service edge-ui-4.18.05-0.0.3749 install
Apigee 온라인 저장소를 사용하는 경우 다음 명령어를 사용하여 사용 가능한 구성요소 버전을 확인할 수 있습니다.
yum --showduplicates list comp
예를 들면 다음과 같습니다.
yum --showduplicates list edge-ui
apigee-setup
을 사용하여 구성요소를 설치합니다./opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile
예를 들면 다음과 같습니다.
/opt/apigee/apigee-setup/bin/setup.sh -p ui -f configFile
구성요소를 설치할 때는 버전이 아닌 구성요소 이름만 지정합니다.
- 롤백하는 구성요소를 호스팅하는 각 노드에 대해 이 프로세스를 반복합니다.
Postgres 10.17 업데이트 롤백
버전 4.19.06 또는 4.50.00에서 4.51.00으로 업그레이드한 경우 Edge 구성요소 외에도 PostgreSQL 업데이트를 롤백해야 합니다.
마스터-스탠바이 구성에서 Postgres를 업데이트할 때 Postgres 업데이트를 롤백하려면 다음 단계를 따르세요.
- 새 대기 모드 노드를 Postgres 마스터로 승격합니다. 새 Postgres 마스터는 이전 Edge 설치와 동일한 버전입니다.
- 이전 대기 노드를 새 마스터의 대기 노드로 구성합니다. 이전 대기 모드 노드는 이전 Edge 설치와 동일한 버전입니다.
- 분석 및 소비자 그룹에 새 마스터 및 대기 노드를 등록합니다.
롤백이 완료되면 이전 마스터 노드는 더 이상 필요하지 않습니다. 그런 다음 이전 마스터 노드를 지원 중단할 수 있습니다.
- 새 대기 Postgres 노드가 실행 중인지 확인합니다.
/opt/apigee/apigee-service/bin/apigee-all status
Postgres가 실행되고 있지 않으면 다음과 같이 시작합니다.
/opt/apigee/apigee-service/bin/apigee-all start
- 이전 마스터 노드와 이전 대기 노드에서 Postgres가 중지되었는지 확인합니다.
/opt/apigee/apigee-service/bin/apigee-all status
Postgres가 실행 중이면 중지합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
- 설치된 경우 이전 대기 모드 노드에서 Qpid를 시작합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start
- 새 대기 노드를 Postgres 마스터로 승격합니다.
- 새 대기 노드를 새 마스터로 승격합니다.
apigee-service apigee-postgresql promote-standby-to-master new_standby_IP
메시지가 표시되면 'apigee' 사용자의 Postgres 비밀번호를 입력합니다. 기본값은 'postgres'입니다.
- 현재 버전의 Edge를 설치하는 데 사용한 구성 파일을 수정하여 다음을 지정합니다.
# IP address of the new master: PG_MASTER=new_standby_IP # IP address of the old standby node PG_STANDBY=old_standby_IP
- 새 마스터를 구성합니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
- 새 대기 노드를 새 마스터로 승격합니다.
- 이전 대기 노드를 이미 최신 버전으로 업그레이드한 경우 먼저 이전 대기 노드에서 Apigee 소프트웨어를 다운그레이드해야 합니다. 이전 대기 모드 노드에 여전히 이전 버전이 있는 경우 이 단계를 건너뛰고 6단계를 진행할 수 있습니다.
- 이전 대기 모드 노드에서 Postgres를 중지합니다.
apigee-service apigee-postgresql stop apigee-service edge-postgres-server stop
- 이전 대기 노드에서 Postgres를 제거합니다.
apigee-service apigee-postgresql uninstall apigee-service edge-postgres-server uninstall
- 이전 대기 모드 노드에서 Postgres 데이터 디렉터리를 삭제합니다.
cd /opt/apigee/data/apigee-postgresql/pgdata > rm -rf *
- 이전 대기 모드 노드에서 이전 버전 부트스트랩 (롤백하려는 Apigee 버전의 부트스트랩)을 다운로드하여 실행합니다. 정확한 단계는 인터넷 기반 설치를 사용하는지 또는 오프라인 설치를 사용하는지에 따라 다를 수 있습니다. 이전 버전의 Apigee 부트스트랩을 실행하면 이전 버전의 Apigee 데이터로 yum 저장소가 설정됩니다.
- 이전 대기 노드에서 Postgres 구성요소를 설정합니다.
/opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile
- 이전 대기 노드의 Postgres 구성요소가 이전 버전으로 롤백되었는지 확인합니다.
apigee-service apigee-postgresql version apigee-service edge-postgres-server version
- 이전 대기 모드 노드에서 Postgres를 중지합니다.
- 이전 대기 노드를 다시 빌드합니다.
- 현재 버전의 Edge를 설치하는 데 사용한 구성 파일을 수정하여 다음을 지정합니다.
# IP address of the new master: PG_MASTER=new_standby_IP # IP address of the old standby node PG_STANDBY=old_standby_IP
- 이전 대기 노드에서 데이터 디렉터리를 삭제합니다.
cd /opt/apigee/data/apigee-postgresql/pgdata > rm -rf *
- 이전 대기 노드를 새 마스터의 대기 노드로 재구성합니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
- Postgres가 이전 대기 노드에서 실행 중인지 확인합니다.
/opt/apigee/apigee-service/bin/apigee-all status
Postgres가 실행되고 있지 않으면 다음과 같이 시작합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server start
- 현재 버전의 Edge를 설치하는 데 사용한 구성 파일을 수정하여 다음을 지정합니다.
- 새 마스터에서
/opt/apigee/apigee-postgresql/conf/pg_hba.conf
파일을 확인하여 새 대기 모드 노드가 추가되었는지 확인합니다. - 관리 서버에서 다음 명령어를 실행하여 현재 분석 및 소비자 그룹 정보를 확인합니다.
curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax
이 명령어는
name
필드에 분석 그룹 이름을 반환하고consumer-groups
아래의name
필드에 소비자 그룹 이름을 반환합니다. 또한postgres-server
필드와datastores
필드에 이전 Postgres 마스터 및 스탠바이 노드의 UUID를 반환합니다. 다음과 같은 형식으로 출력이 표시됩니다.{ "name" : "axgroup-001", "properties" : { }, "scopes" : [ "VALIDATE~test", "sgilson~prod" ], "uuids" : { "qpid-server" : [ "8381a053-433f-4382-bd2a-100fd37a1592", "4b6856ec-ef05-498f-bac6-ef5f0d5f6521" ], "postgres-server" : [ "ab1158bd-1d59-4e2a-9c95-24cc2cfa6edc:27f90844-efab-4b32-8a23-8f85cdc9a256" ] }, "consumer-groups" : [ { "name" : "consumer-group-001", "consumers" : [ "8381a053-433f-4382-bd2a-100fd37a1592", "4b6856ec-ef05-498f-bac6-ef5f0d5f6521" ], "datastores" : [ "ab1158bd-1d59-4e2a-9c95-24cc2cfa6edc:27f90844-efab-4b32-8a23-8f85cdc9a256" ], "properties" : { } } ], "data-processors" : { } }
- 이전 마스터 노드에서 다음
curl
명령어를 실행하여 이전 마스터의 UUID 주소를 가져옵니다.curl -u sysAdminEmail:password http://node_IP:8084/v1/servers/self
출력 끝에 노드의 UUID가 다음과 같은 형식으로 표시됩니다.
"type" : [ "postgres-server" ], "uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"
- 이전 단계를 반복하여 이전 대기 모드 노드와 새 마스터의 IP 주소를 가져옵니다.
- 소비자 그룹에서 이전 마스터 및 대기 노드를 삭제합니다.
curl -u sysAdminEmail:password -X DELETE \ "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/datastores/masterUUID,standbyUUID" -v
여기서 axgroup-001 및 consumer-group-001는 분석 및 소비자 그룹의 기본 이름입니다. masterUUID,standbyUUID는 위에서 현재 분석 및 소비자 그룹 정보를 볼 때 표시된 순서와 동일합니다. standbyUUID,masterUUID로 지정해야 할 수도 있습니다.
이제
consumer-groups
의datastores
속성이 비어 있어야 합니다. - 분석 그룹에서 이전 마스터 및 대기 노드를 삭제합니다.
curl -u sysAdminEmail:password -X DELETE \ "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=masterUUID,standbyUUID&type=postgres-server" -v
이제
uuids
아래의postgres-server
속성이 비어 있어야 합니다. - 애널리틱스 및 소비자 그룹에 새 PG 마스터 및 대기 노드를 등록합니다.
curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d '' "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=masterUUID,standbyUUID&type=postgres-server" -v
curl -u sysAdminEmail:password -X POST -H "Content-Type:application/json" -d '' "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/datastores?uuid=masterUUID,standbyUUID" -v
- 분석 그룹을 확인합니다.
curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax
애널리틱스 그룹과 소비자 그룹에 새 마스터 노드와 대기 모드 노드의 UUID가 표시됩니다.
- Edge 관리 서버를 다시 시작합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- 모든 Qpid 서버를 다시 시작합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
- 모든 Postgres 서버를 다시 시작합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
- 두 서버에서 다음 스크립트를 실행하여 복제 상태를 확인합니다. 복제가 성공하려면 시스템에서 두 서버에 동일한 결과를 표시해야 합니다.
새 마스터에서 다음을 실행합니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
마스터인지 확인합니다. 이전 대기 노드에서 다음을 실행합니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby
대기 모드인지 확인합니다.
- 여러 API를 요청한 후 이전 단계를 반복하여 노드가 동기화되었는지 확인합니다.
- Apigee Edge 4.16.01/4.16.05를 4.17.09로 업데이트의 절차에 따라 이전 Postgres 마스터의 지원 중단
또는 이전 마스터에서 Qpid를 제거하고 새 마스터 노드에 Qpid를 설치할 수 있습니다. Qpid를 제거한 후에는 이전 마스터 노드를 지원 중단할 수 있습니다.
mTLS 롤백
mTLS 업데이트를 롤백하려면 모든 호스트에서 다음 단계를 따르세요.
- Apigee를 중지합니다.
apigee-all stop
- mTLS 중지:
apigee-service apigee-mtls uninstall
- mTLS 재설치:
apigee-service apigee-mtls install
apigee-service apigee-mtls setup -f /opt/silent.conf