프라이빗 클라우드용 Edge v. 4.17.09
Edge 4.17.09로 업데이트하는 중에 오류가 발생하면 오류를 일으킨 구성요소를 롤백한 후 업데이트를 다시 시도할 수 있습니다. 예를 들어 Postgres 9.4로의 업데이트가 실패하면 Postgres 노드만 롤백하고 업데이트를 다시 시도할 수 있습니다.
롤백을 수행해야 하는 시나리오는 두 가지입니다.
- 이전 출시 버전으로 롤백합니다. 예를 들어 4.17.09에서 4.17.01로 다운그레이드할 수 있습니다.
- 동일한 출시 버전의 이전 버전으로 롤백합니다.
아래 절차를 사용하여 두 시나리오 모두에 대해 롤백을 수행합니다.
롤백을 수행할 수 있는 사용자
롤백을 수행하는 사용자는 원래 Edge를 업데이트한 사용자와 동일하거나 루트로 실행하는 사용자여야 합니다.
기본적으로 Edge 구성요소는 'apigee' 사용자로 실행됩니다. 경우에 따라 Edge 구성요소를 다른 사용자로 실행할 수 있습니다. 예를 들어 라우터가 1000 미만의 포트와 같은 권한이 있는 포트에 액세스해야 하는 경우 라우터를 루트 또는 해당 포트에 액세스할 수 있는 사용자로 실행해야 합니다. 또는 한 구성요소를 한 사용자로 실행하고 다른 구성요소를 다른 사용자로 실행할 수 있습니다.
롤백할 수 있는 구성요소
롤백을 수행할 때는 다음 조건에 유의해야 합니다.
- 아래 나열된 5가지 Edge 구성요소는 공통 코드를 공유합니다. 따라서 노드의 5개 구성요소 중 하나를 롤백하려면 노드에 설치된 5개 중 하나를 롤백해야 합니다. 예를 들어 노드에 관리 서버, 라우터, 메시지 프로세서가 설치된 경우 이 중 하나를 롤백하려면 세 가지 모두를 롤백해야 합니다.
코드를 공유하는 5가지 구성요소는 다음과 같습니다.- 관리 서버
- 라우터
- 메시지 프로세서
- Qpid 서버
- Postgres 서버
- Edge 4.16.01에서 업데이트하는 경우 Cassandra를 롤백하지 마세요. 이 Edge 출시 버전에는 업데이트된 Cassandra 버전이 포함되어 있습니다. 구성요소를 롤백하는 경우 Cassandra를 4.17.09 버전으로 유지합니다.
4.17.09 롤백
이 섹션에는 Edge 4.17.09를 이전 버전으로 롤백하는 절차가 포함되어 있습니다. 이 섹션은 다음 두 부분으로 나뉩니다.
- 4.16.01 또는 4.16.05에서만 업데이트하는 경우 - Postgres 업데이트를 버전 9.4로 롤백
4.16.01 또는 4.16.05의 모든 업데이트 절차의 마지막 부분은 Postgres 노드를 버전 9.4로 업데이트하는 것입니다. 업데이트가 실패하면 이 절차를 사용하여 업데이트를 롤백할 수 있습니다. - 다른 모든 Edge 구성요소 롤백
이 절차를 사용하여 다른 Edge 구성요소를 롤백합니다.
Postgres 9.4 업데이트를 롤백하려면 다음 안내를 따르세요.
마스터-대기 구성에서 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만 호스팅하고 Qpid는 호스팅하지 않습니다. - 새 대기 노드를 Postgres 마스터로 승격합니다.
- 새 대기 노드를 새 마스터로 승격합니다.
> apigee-service apigee-postgresql promote-standby-to-master new_standby_IP
메시지가 표시되면 'apigee' 사용자의 Postgres 비밀번호를 입력합니다. 기본값은 'postgres'입니다. - 현재 버전의 Edge를 설치하는 데 사용한 구성 파일을 수정하여 다음을 지정합니다.
# 새 마스터의 IP 주소:
PG_MASTER=new_standby_IP
# 이전 대기 노드의 IP 주소
PG_STANDBY=old_standby_IP - 새 마스터를 구성합니다.
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
- 새 대기 노드를 새 마스터로 승격합니다.
- 이전 대기 노드를 다시 빌드합니다.
- 현재 버전의 Edge를 설치하는 데 사용한 구성 파일을 수정하여 다음을 지정합니다.
# new master의 IP 주소:
PG_MASTER=new_standby_IP
# old standby 노드의 IP 주소
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"
참고: edge-postgres-server 서비스가 실행 중이어야 합니다. Postgres 서버가 실행되고 있지 않으면 관리 서버에서 다음 명령어를 실행하여 UUID를 확인할 수 있습니다.
> curl -u sysAdminEmail:password http://<ms_IP>:8080/v1/servers?pod=analytics
이 명령어의 출력에는 각 Postgres 노드의 IP 주소에 대한 UUID가 나열됩니다. - 이전 단계를 반복하여 이전 대기 노드와 새 마스터의 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가 표시됩니다. - thought
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를 실행할 수 있습니다. 실행 중인지 확인합니다. 그렇지 않으면 시작합니다.
> /opt/apigee/apigee-service/bin/apigee-service edge-management-server start
또는 아래 설명된 대로 이전 마스터에서 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, 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 시스템 관리자 이메일:비밀번호 -X 삭제 -H "Content-Type: application/json" -d '' "http://<ms_IP> :8080/v1/analytics/groups/ax/ 액스그룹-001/소비자단체/ 소비자 그룹 001/소비자/ qpid_UUID" -v
> curl -u 시스템 관리자 이메일:비밀번호 -X 삭제 "http://<ms_IP> :8080/v1/analytics/groups/ax/ 액스그룹-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 시스템 관리자 이메일:비밀번호 -X POST -H "Content-Type: application/json" -d '' "http://<ms_IP> :8080/v1/analytics/groups/ax/ 액스그룹-001/servers?uuid= qpid_UUID&type=qpid-server" -v
> curl -u 시스템 관리자 이메일:비밀번호 -X POST -H "Content-Type: application/json" -d '' "http://<ms_IP> :8080/v1/analytics/groups/ax/ 액스그룹-001/소비자단체/ 소비자 그룹-001/소비자?uuid= qpid_UUID" -v - 모든 메시지 프로세서를 다시 시작합니다.
> /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart - 새 Qpid 서버에서 다음 명령어를 실행하여 큐가 생성되었는지 확인합니다.
> qpid-stat -q
Qpid 서버가 메시지를 처리할 때 msg, msgIn, msgOut이 업데이트되는지 확인합니다.
4.17.09에서 개별 구성요소를 롤백하려면 다음 안내를 따르세요.
롤백을 수행하는 과정에서 현재 Edge 버전에 대한 bootstrap.sh 파일을 다운로드해야 합니다.
- 4.17.05로 롤백하려면 bootstrap_4.17.05.sh를 다운로드합니다.
- 4.17.01로 롤백하려면 bootstrap_4.17.01.sh를 다운로드합니다.
- 4.16.09로 롤백하려면 bootstrap_4.16.09.sh를 다운로드합니다.
- 4.16.05로 롤백하려면 bootstrap_4.16.05.sh를 다운로드합니다.
- 4.16.01로 롤백하려면 bootstrap.sh를 다운로드합니다.
롤백할 구성요소를 호스팅하는 각 노드에서 다음을 수행합니다.
- 구성요소를 중지하여 롤백합니다.
-
노드에서 관리 서버, 라우터, 메시지 프로세서, Qpid 서버, Postgres 서버 구성요소 중 하나를 롤백하는 경우 모두 중지해야 합니다.
- > apigee-service edge-management-server stop
- > apigee-service edge-router stop
- > apigee-service edge-message-processor stop
- > apigee-service edge-qpid-server stop
- > apigee-service edge-postgres-server stop
-
노드의 다른 구성요소를 롤백하는 경우 해당 구성요소만 중지합니다.
- > apigee-service comp stop
-
노드에서 관리 서버, 라우터, 메시지 프로세서, Qpid 서버, Postgres 서버 구성요소 중 하나를 롤백하는 경우 모두 중지해야 합니다.
- 수익 창출을 롤백하는 경우 모든 관리 서버 및 메시지 프로세서 노드에서 제거합니다.
> apigee-service edge-mint-gateway uninstall - 노드에서 롤백할 구성요소를 제거합니다.
- 노드에서 관리 서버, 라우터, 메시지 프로세서, Qpid 서버, Postgres 서버 구성요소 중 하나를 롤백하는 경우 모두 제거합니다.
> apigee-service edge-gateway uninstall - 노드에서 다른 구성요소를 롤백하는 경우 해당 구성요소만 제거합니다.
> apigee-service comp uninstall - 라우터를 롤백하는 경우 /opt/nginx/conf.d의 콘텐츠를 삭제해야 합니다.
> cd /opt/nginx/conf.d
> rm -rf *
- 노드에서 관리 서버, 라우터, 메시지 프로세서, Qpid 서버, Postgres 서버 구성요소 중 하나를 롤백하는 경우 모두 제거합니다.
-
구성요소를 롤백하려면 다음 안내를 따르세요.
- 4.17.09 버전의 apigee-setup을 제거합니다.
> /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall - 4.16.01, 4.16.05, 4.16.09, 4.17.01 또는 4.17.05 출시 버전의 bootstrap.sh를 다운로드합니다.
예를 들어 4.16.09의 경우:
> curl https://software.apigee.com/bootstrap_4.16.09.sh -o /tmp/bootstrap_4.16.09.sh - 4.16.01, 4.16.05 또는 4.16.09 apigee-service 유틸리티 및 종속 항목을 설치합니다.
예를 들어 4.16.09의 경우:
> sudo bash /tmp/bootstrap_4.16.09.sh apigeeuser=uName apigeepassword=pWord
여기서 uName 및 pWord는 Apigee에서 받은 사용자 이름과 비밀번호입니다. pWord를 생략하면 입력하라는 메시지가 표시됩니다. - apigee-setup의 4.16.01, 4.16.05, 4.16.09, 4.17.01 또는 4.17.05 버전을 설치합니다.
> /opt/apigee/apigee-service/bin/apigee-service apigee-setup install - 구성요소의 4.16.01, 4.16.05, 4.16.09, 4.17.01 또는 4.17.05 버전을 설치합니다.
> /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile
여기서 comp는 설치할 구성요소이고 configFile은 4.16.01, 4.16.05 또는 4.16.09 구성 파일입니다. - Qpid를 롤백하는 경우 iptables를 플러시합니다.
> sudo iptables -F
- 4.17.09 버전의 apigee-setup을 제거합니다.
-
구성요소를 4.17.09 출시 버전의 특정 버전으로 롤백하려면 다음 안내를 따르세요.
- 특정 구성요소 버전을 다운로드합니다.
> /opt/apigee/apigee-service/bin/apigee-service comp-version install
여기서 comp-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
설치를 수행할 때 구성요소 이름만 지정하는 방법에 유의하세요.
- 특정 구성요소 버전을 다운로드합니다.
롤백할 때 문제가 발생하면 Apigee 지원팀에 문의하세요.