프라이빗 클라우드용 Edge v4.18.05
Edge 4.18.05로 업데이트하는 중에 오류가 발생하면 오류를 일으킨 구성요소를 롤백한 후 업데이트를 다시 시도할 수 있습니다.
Edge 4.18.05를 다음 기능 출시 버전으로 롤백할 수 있습니다.
- 버전 4.18.01
- * 버전 4.17.09
- 버전 4.17.05*
* 4.18.05에서 4.17.09 또는 4.17.05로 롤백하려면 각 노드의 구성요소를 롤백하는 것 외에도 Postgres를 롤백해야 합니다. 4.18.01로 롤백하는 경우 업그레이드 프로세스에 Postgres 업데이트가 포함되지 않았으므로 Postgres를 롤백할 필요가 없습니다.
롤백을 수행해야 하는 시나리오는 두 가지입니다.
- 이전 기능 출시 버전으로 롤백 예를 들어 4.18.05에서 4.18.01로 다운그레이드할 수 없습니다.
- 동일한 출시 버전에서 이전 업데이트 버전으로 롤백 예를 들어 4.18.05.02에서 4.18.05.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 서버)
예를 들어 노드에 관리 서버, 라우터, 메시지 프로세서가 설치된 경우 이 중 하나를 롤백하려면 세 가지를 모두 롤백해야 합니다.
이전 기능 출시 버전으로 롤백
4.18.05에서 4.17.09 또는 4.17.05로 롤백하려면 각 노드의 구성요소를 롤백하는 것 외에도 Postgres를 롤백해야 합니다. 4.18.01에서 롤백하는 경우 업그레이드 프로세스에 Postgres 업데이트가 포함되지 않았으므로 Postgres를 롤백할 필요가 없습니다.
이전 기능 출시 버전으로 롤백하려면 구성요소를 호스팅하는 각 노드에서 다음을 수행합니다.
-
롤백하려는 버전에 대한
bootstrap.sh파일을 다운로드합니다.- 4.18.01로 롤백하려면
bootstrap_4.18.01.sh를 다운로드합니다.curl https://software.apigee.com/bootstrap_4.18.01.sh -o /tmp/bootstrap_4.18.01.sh
- 4.17.09로 롤백하려면
bootstrap_4.17.09.sh를 다운로드합니다.curl https://software.apigee.com/bootstrap_4.17.09.sh -o /tmp/bootstrap_4.17.09.sh
- 4.17.05로 롤백하려면
bootstrap_4.17.05.sh를 다운로드합니다.curl https://software.apigee.com/bootstrap_4.17.05.sh -o /tmp/bootstrap_4.17.05.sh
- 4.18.01로 롤백하려면
- 롤백할 구성요소를 중지합니다.
- 노드에서 공통 코드가 있는 구성요소를 롤백하려면 다음 예와 같이 모두 중지해야 합니다.
/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 Router를 롤백하려면
edge-gateway구성요소 그룹을 제거하는 것 외에도/opt/nginx/conf.d파일의 콘텐츠를 삭제해야 합니다.cd /opt/nginx/conf.d
rm -rf *
- 노드에서 공통 코드가 있는 구성요소를 롤백하려면 다음 예시와 같이
- 4.18.05 버전의
apigee-setup를 제거합니다./opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
apigee-service유틸리티 및 해당 종속 항목의 4.18.01, 4.17.09 또는 4.17.05 버전을 설치합니다. 다음 예시에서는apigee-service의 4.17.09 버전을 설치합니다.sudo bash /tmp/bootstrap_4.17.09.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
- 롤백하는 구성요소를 호스팅하는 각 노드에 이 프로세스를 반복합니다.
4.18.05에서 4.17.09 또는 4.17.05로 롤백하려면 각 노드의 구성요소를 롤백하는 것 외에도 Postgres를 롤백해야 합니다. 4.18.01에서 롤백하는 경우 업그레이드 프로세스에 Postgres 업데이트가 포함되지 않았으므로 Postgres를 롤백할 필요가 없습니다.
이전 업데이트 버전으로 롤백
구성요소를 특정 출시 버전으로 롤백하려면 구성요소를 호스팅하는 각 노드에서 다음을 수행합니다.
- 특정 구성요소 버전을 다운로드합니다.
/opt/apigee/apigee-service/bin/apigee-service component_version install
여기서 component_version은 설치할 구성요소 및 업데이트 버전입니다. 예:
/opt/apigee/apigee-service/bin/apigee-service edge-ui-4.17.09-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
설치할 때 버전이 아닌 구성요소 이름만 지정합니다.
- 롤백하는 구성요소를 호스팅하는 각 노드에 이 프로세스를 반복합니다.
4.18.05에서 4.17.09 또는 4.17.05로 롤백하려면 각 노드의 구성요소를 롤백하는 것 외에도 Postgres를 롤백해야 합니다. 4.18.01에서 롤백하는 경우 업그레이드 프로세스에 Postgres 업데이트가 포함되지 않았으므로 Postgres를 롤백할 필요가 없습니다.
Postgres 9.6 업데이트 롤백
버전 4.17.05 또는 4.17.09에서 4.18.05로 업그레이드한 경우 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
- 새 대기 노드를 새 마스터로 승격합니다.
- 이전 대기 노드를 다시 빌드합니다.
- 현재 버전의 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
실행 중이 아니면 시작합니다.
/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를 제거한 후 이전 마스터 노드를 사용 중단할 수 있습니다.
이전 마스터에서 Qpid를 제거하고 새 마스터에 Qpid를 설치합니다.
이전 마스터에서 Qpid를 제거하고 새 마스터에 설치하려면 다음 안내를 따르세요.
- 모든 메시지 프로세서에서 다음 명령어를 실행하여 메시지 프로세서의 액세스에서 이전 마스터의 Qpid 포트 5672에 대한 액세스를 차단합니다.
iptables -A OUTPUT -p tcp -d 10.233.147.20 --dport 5672 -j DROP
- 다음 명령어를 실행하여 Qpid 메시지 큐가 비어 있는지 확인합니다. 대기 중인 모든 메시지를 처리할 때까지 Qpid를 제거할 수 없습니다.
qpid-stat -q
이 명령어는
msg, msgIn, and msgOut의 개수가 포함된 테이블을 표시합니다.msg=0및msgIn=msgOut일 때 모든 메시지가 처리됩니다. - 이전 마스터에서 다음 명령어를 실행하여 이전 마스터에서 Qpid 서버의 UUID를 확인합니다. 이후 절차를 위해 이 정보를 저장합니다.
curl -u sysAdminEmail:password http://node_IP::8083/v1/servers/self
- 이전 마스터에서 Qpid를 중지합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
/opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop - Qpid 서버를 제거합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall
/opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall - 분석 및 소비자 그룹에서 이전 Qpid 서버를 삭제합니다.
curl -u sysAdminEmail:password -X DELETE -H "Content-Type: application/json" -d '' \ "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/consumers/qpid_UUID" -v
curl -u sysAdminEmail:password -X DELETE \ "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=qpid_UUID&type=qpid-server" -v - Zookeeper에서 이전 Qpid 서버를 삭제합니다.
curl -u sysAdminEmail:password -X DELETE \ http://ms_IP:8080/v1/servers/qpid_UUID
- 새 마스터에 Qpid를 설치합니다.
/opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile
- 새 마스터에서 다음 명령어를 실행하여 새 마스터에서 Qpid 서버의 UUID를 확인합니다. 이후 절차를 위해 이 정보를 저장합니다.
curl -u sysAdminEmail:password http://node_IP::8083/v1/servers/self
- 분석 및 소비자 그룹에 새 Qpid 서버를 등록합니다.
curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d '' \ "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=qpid_UUID&type=qpid-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/consumers?uuid=qpid_UUID" -v - 모든 메시지 프로세서를 다시 시작합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- 새 Qpid 서버에서 다음 명령어를 실행하여 큐가 생성되었는지 확인합니다.
qpid-stat -q
Qpid 서버가 메시지를 처리할 때
msg,msgIn,msgOut가 업데이트되는지 확인합니다.
롤백할 때 문제가 발생하면 Apigee Edge 지원팀에 문의하세요.