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를 업데이트한 사용자와 동일하거나 루트로 실행하는 사용자여야 합니다.
기본적으로 Edge 구성요소는 'apigee' 사용자로 실행됩니다. 경우에 따라 Edge 구성요소를 다른 사용자로 실행할 수 있습니다. 예를 들어 라우터가 1000 미만의 포트와 같은 권한이 있는 포트에 액세스해야 하는 경우 라우터를 루트 또는 해당 포트에 액세스할 수 있는 사용자로 실행해야 합니다. 또는 한 구성요소를 한 사용자로 실행하고 다른 구성요소를 다른 사용자로 실행할 수 있습니다.
공통 코드가 있는 구성요소
다음 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 *
- 노드에서 공통 코드가 있는 구성요소를 롤백하려면 다음 예시와 같이
- 4.51.00 버전의
apigee-setup를 제거합니다./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 구성요소 외에도 Postgres 업데이트를 롤백해야 합니다.
마스터-대기 구성에서 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 Management Server를 다시 시작합니다.
/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