4.16.09 롤백 프로세스

Edge 4.16.09로 업데이트하는 동안 오류가 발생하면 오류의 원인이 된 구성요소를 롤백한 후 업데이트를 다시 시도할 수 있습니다. 예를 들어 Postgres 9.4 업데이트에 실패하면 Postgres 노드만 롤백하고 업데이트를 다시 시도할 수 있습니다.

롤백을 수행할 수 있는 두 가지 시나리오가 있습니다.

  1. 이전 출시 버전으로 롤백합니다. 예: 4.16.09~4.16.05
  2. 동일한 출시에서 이전 버전으로 롤백

아래 절차에 따라 두 시나리오 모두에 대해 롤백을 수행합니다.

롤백을 수행할 수 있는 사용자

롤백을 수행하는 사용자는 원래 Edge를 업데이트한 사용자 또는 루트로 실행되는 사용자와 동일해야 합니다.

기본적으로 에지 구성요소는 사용자 'apigee'로 실행됩니다. 경우에 따라 Edge 구성요소를 다른 사용자로 실행할 수 있습니다. 예를 들어 라우터가 권한이 있는 포트(예: 1,000 미만)에 액세스해야 하는 경우 라우터를 루트로 실행하거나 해당 포트에 액세스할 수 있는 사용자로 실행해야 합니다. 또는 한 구성요소를 한 사용자로 실행하고, 다른 구성요소를 다른 사용자로 실행할 수 있습니다.

롤백 가능한 구성요소

롤백을 수행할 때 다음 조건에 유의해야 합니다.

  • 아래에 나열된 5가지 Edge 구성요소는 공통 코드를 공유합니다. 따라서 노드의 5개 구성요소 중 하나를 롤백하려면 노드에 설치된 5개 구성요소 중 하나를 롤백해야 합니다. 예를 들어 노드에 관리 서버, 라우터, 메시지 프로세서가 설치되어 있는 경우 이들 중 하나를 롤백하려면 세 가지를 모두 롤백해야 합니다.
    코드를 공유하는 5가지 구성요소는 다음과 같습니다.
    • 관리 서버
    • 라우터
    • 메시지 프로세서
    • Qpid 서버
    • Postgres 서버
  • Edge 4.16.01에서 업데이트하는 경우 Cassandra를 롤백하지 마세요. 이 Edge 버전에는 업데이트된 Cassandra 버전이 포함되어 있습니다. 구성요소를 롤백하는 경우 Cassandra를 4.16.09 버전으로 유지하세요.
  • 이 버전에는 새로운 버전의 qpidd가 포함되어 있지 않습니다. 따라서 qpidd를 롤백할 필요가 없습니다.

4.16.09 롤백

이 섹션에는 Edge 4.16.09를 이전 버전으로 롤백하는 절차가 포함되어 있습니다. 이 섹션은 다음 두 부분으로 나뉩니다.

  • Postgres 업데이트 버전을 9.4로 롤백
    모든 업데이트 절차의 마지막 단계는 Postgres 노드를 버전 9.4로 업데이트하는 것입니다. 업데이트에 실패하면 이 절차를 사용하여 업데이트를 롤백할 수 있습니다.
  • 다른 모든 Edge 구성요소 롤백
    이 절차를 사용하여 다른 Edge 구성요소를 롤백합니다.

Postgres 9.4 업데이트를 롤백하려면 다음 단계를 따르세요.

마스터 대기 구성에서 Postgres를 업데이트할 때 Postgres 업데이트를 롤백하려면 다음을 수행합니다.

  • 새 대기 노드를 Postgres 마스터로 승격합니다. 새 Postgres 마스터는 이전 Edge 설치와 동일한 버전입니다.
  • 이전 대기 노드를 새 마스터의 대기 노드로 구성합니다. 이전 대기 노드는 이전 Edge 설치와 동일한 버전입니다.
  • 새 마스터 및 대기 노드를 분석 및 소비자 그룹에 등록합니다.

롤백이 완료되면 이전 마스터 노드가 더 이상 필요하지 않습니다. 그런 다음 이전 마스터 노드를 사용 중지할 수 있습니다.

  1. 새 대기 Postgres 노드가 실행 중인지 확인합니다.
    > /opt/apigee/apigee-service/bin/apigee-all status

    Postgres가 실행되고 있지 않으면 시작합니다.
    > /opt/apigee/apigee-service/bin/apigee-all start
  2. Postgres가 이전 마스터 노드와 이전 대기 노드에서 중지되는지 확인합니다.
    > /opt/apigee/apigee-service/bin/apigee-all status

    Postgres가 실행 중인 경우 중지합니다.
    > /opt/apigee/apigee-service/bin/apigee-service Edge-postgres-server stop
    > /opt/apigee/post-custom-service/bin/apigee-
  3. 설치된 경우 이전 대기 노드에서 Qpid를 시작합니다.
    > /opt/apigee/apigee-service/bin/apigee-service Edge-qpid-server start

    참고: 대부분의 구성에서 이전 대기 노드는 Postgres만 호스팅하고 Qpid는 호스팅하지 않습니다.
  4. 새 대기 노드를 Postgres 마스터로 승격합니다.
    1. 새 대기 노드를 새 마스터로 승격합니다.
      > apigee-service apigee-postgresqlpromo-wait-to-master new_holdby_IP

      메시지가 표시되면 'apigee' 사용자의 Postgres 비밀번호(기본값 'postgres')를 입력합니다.
    2. 현재 버전의 Edge를 설치하는 데 사용한 구성 파일을 수정하여 다음을 지정합니다.
      새 마스터의 IP 주소# 개:
      PG_MASTER=new_sleepby_IP
      # 이전 대기 노드의 IP 주소
      PG_STANDBY=old_holdby_IP
    3. 새 마스터를 구성합니다.
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
  5. 이전 대기 노드를 다시 빌드합니다.
    1. 현재 버전의 Edge를 설치하는 데 사용한 구성 파일을 수정하여 다음을 지정합니다.
      새 마스터의 IP 주소# 개:
      PG_MASTER=new_holdby_IP
      # 이전 대기 노드의 IP 주소
      PG_STANDBY=old_holdby_IP
    2. 이전 대기 노드에서 데이터 디렉터리를 삭제합니다.
      > cd /opt/apigee/data/apigee-postgresql/pgdata
      > rm -rf *
    3. 이전 대기 노드를 새 마스터의 대기 노드로 재구성합니다.
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-holdby -f configFile
    4. Postgres가 이전 대기 노드에서 실행 중인지 확인합니다.
      > /opt/apigee/apigee-service/bin/apigee-all status

      실행되고 있지 않으면 시작합니다.
      > /opt/apigee/apigee-service/bin/apigee-service Edge-postgres-server start
  6. 새 마스터에서 /opt/apigee/apigee-postgresql/conf/pg_hba.conf 파일을 확인하여 새 대기 노드가 추가되었는지 확인합니다.
  7. 관리 서버에서 다음 명령어를 실행하여 현재 분석 및 소비자 그룹 정보를 확인합니다.
    > curl -u sysAdminEmail:password http://<ms_IP>:8080/v1/analytics/groups/ax

    이 명령어는 name 필드에 분석 그룹 이름을 반환하고 name-consumer 필드에 소비자 그룹 이름을 반환합니다. 또한 postgres-server 필드와 datastores 필드에 이전 Postgres 마스터 및 대기 노드의 UUID도 반환합니다. "dc-dc 5 "a
    " "dc-dc 12-a

















  8. 이전 마스터 노드에서 다음 cURL 명령어를 실행하여 이전 마스터의 UUID 주소를 가져옵니다.
    > curl -u sysAdminEmail:password http://<node_IP>:8084/v1/servers/self

    다음과 같이 출력 끝에서 노드의 UUID: UUID: UUID: [



    Postgres 서버가 실행되고 있지 않으면 관리 서버에서 다음 명령어를 실행하여 UUID를 확인할 수 있습니다.
    > curl -u sysAdminEmail:password http://<ms_IP>:8080/v1/servers?pod=analytics

    이 명령어의 출력에는 각 Postres 노드의 IP 주소 UUID가 나열됩니다.
  9. 이전 단계를 반복하여 이전 대기 노드와 새 마스터의 IP 주소를 가져옵니다.
  10. 소비자 그룹에서 이전 마스터 및 대기 노드를 삭제합니다.
    > curl -u sysAdminEmail:password -X DELETE "http://<ms_IP>:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/analytics-group-001/consumer-groups/consumer-group-001/consumer-groups/consumer-group-001/consumer-group0.com과 UUID

    masterUUID,StandbyUUID는 위의 현재 애널리틱스 및 소비자 그룹 정보를 볼 때 위에 표시된 순서와 동일합니다. sleepbyUUID,masterUUID로 지정해야 할 수도 있습니다.

    이제 consumer-groupsdatastores 속성이 비어 있습니다.
  11. 분석 그룹에서 이전 마스터 및 대기 노드를 삭제합니다.
    > curl -u sysAdminEmail:password -X DELETE "http://<ms_IP>:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=masterUUID,customer upost-server&type

  12. 애널리틱스 및 소비자 그룹으로 새 PG 마스터 및 대기 노드를 등록합니다.
    > curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d '' "http://<ms_IP>:8080/v1/analytics/groups/ax/axgroup-00

  13. 분석 그룹을 검증합니다.
    > curl -u sysAdminEmail:password http://<ms_IP>:8080/v1/analytics/groups/ax

    분석 그룹과 소비자 그룹에 나열된 새 마스터 및 대기 노드의 UUID가 표시됩니다.
  14. 에지 관리 서버를 다시 시작합니다.
    > /opt/apigee/apigee-service/bin/apigee-serviceedge-management-server restart
  15. 모든 Qpid 서버를 다시 시작합니다.
    > /opt/apigee/apigee-service/bin/apigee-serviceedge-qpid-server restart
  16. 모든 Postgres 서버를 다시 시작합니다.
    > /opt/apigee/apigee-service/bin/apigee-serviceedge-postgres-server restart
  17. 두 서버 모두에서 다음 스크립트를 실행하여 복제 상태를 확인합니다. 복제가 성공적으로 이루어지도록 시스템은 두 서버에 동일한 결과를 표시해야 합니다.

    새 마스터에서 다음을 실행합니다.
    > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

    마스터라고 표시되는지 확인합니다.

    이전 대기 노드:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-holdby

    대기 노드인지 확인합니다.
  18. 여러 API 요청을 한 후 이전 단계를 반복하여 노드가 동기화되도록 합니다.
  19. Apigee Edge를 4.16.09로 업데이트의 절차에 따라 이전 Postgres 마스터를 사용 중지합니다.

    참고: 이전 마스터 노드가 Qpid를 실행 중이었다면 Qpid를 실행하도록 해당 서버를 그대로 둘 수 있습니다. 실행 중인지 확인합니다. 그렇지 않으면 시작하세요.
    > /opt/apigee/apigee-service/bin/apigee-service Edge-management-server start

    또는 아래 설명처럼 이전 마스터에서 Qpid를 제거하여 새 마스터 노드에 Qpid를 설치해도 됩니다. Qpid를 제거한 후에 이전 마스터 노드를 사용 중지할 수 있습니다.

이전 마스터에서 Qpid를 제거하고 새 마스터에 Qpid를 설치합니다.

다음 절차에 따라 이전 마스터에서 Qpid를 제거하고 새 마스터에 설치합니다.

  1. 모든 메시지 프로세서에서 다음 명령어를 실행하여 이전 마스터의 Qpid 포트 5672에 대한 액세스가 메시지 프로세서의 액세스를 차단합니다.
    > iptables -A OUTPUT -p tcp -d 10.233.147.20 --dport 5672 -j DROP
  2. 다음 명령어를 실행하여 Qpid 메시지 큐가 비어 있는지 확인합니다. 대기 중인 메시지를 모두 처리할 때까지 Qpid를 제거할 수 없습니다.
    > qpid-stat -q

    이 명령어는 msg, msgIn, msgOut의 수가 포함된 테이블을 표시합니다. msg=0msgIn=msgOut이 되면 모든 메시지가 처리됩니다.
  3. 이전 마스터에서 다음 명령어를 실행하여 이전 마스터의 Qpid 서버 UUID를 확인합니다. 이후 절차를 위해 이 정보를 저장합니다.
    > curl -u sysAdminEmail:password http://<node_IP>::8083/v1/servers/self
  4. 이전 마스터에서 Qpid를 중지합니다.
    > /opt/apigee/apigee-service/bin/apigee-service Edge-qpid-server stop
    > /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
  5. Qpid 서버를 제거합니다.
    > /opt/apigee/apigee-service/bin/apigee-service Edge-qpid-server 제거
    > /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd remove
  6. 분석 및 소비자 그룹에서 이전 Qpid 서버를 삭제합니다.
    > curl -u sysAdminEmail:password -X DELETE -H "Content-Type: application/json" -d '' "http://<ms_IP>:8080/v1/analytics/groups/ax/axgroup-consumer-groupsaxgroup UUID 0 / UUID

  7. Jokeeper에서 이전 Qpid 서버를 삭제합니다.
    > curl -u sysAdminEmail:password -X DELETE http://<ms_IP>:8080/v1/servers/qpid_UUID
  8. 새 마스터에 Qpid를 설치합니다.
    > /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile
  9. 새 마스터에서 다음 명령어를 실행하여 새 마스터의 Qpid 서버 UUID를 확인합니다. 이후 절차를 위해 이 정보를 저장합니다.
    > curl -u sysAdminEmail:password http://<node_IP>::8083/v1/servers/self
  10. 애널리틱스 및 소비자 그룹으로 새 Qpid 서버를 등록합니다.
    > curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d '' "http://<ms_IP>:8080/v1/analytics/groups/ax/axgroup-001 axgroup-001

  11. 모든 메시지 프로세서를 다시 시작합니다.
    > /opt/apigee/apigee-service/bin/apigee-service Edge-message-processor restart
  12. 새 Qpid 서버에서 다음 명령어를 실행하여 큐가 생성되었는지 확인합니다.
    > qpid-stat -q

    Qpid 서버가 메시지를 처리할 때 msg, msgIn, msgOut이 업데이트되는지 확인합니다.

4.16.09에서 개별 구성요소를 롤백하려는 경우

롤백을 수행하는 일환으로 현재 버전의 Edge용 bootstrap.sh 파일을 다운로드해야 합니다.

  • 4.16.05로 롤백하려면 bootstrap_4.16.05.sh를 다운로드하세요.
  • 4.16.01로 롤백하려면 downlaod bootstrap.sh

롤백할 구성요소를 호스팅하는 각 노드에서 다음을 수행합니다.

  1. 롤백할 구성요소를 중지합니다.
    1. 노드에서 Management Server, Router, 메시지 프로세서, Qpid Server 또는 Postgres 서버 중 하나의 구성요소를 롤백하는 경우 모두 중지해야 합니다.
      • > apigee-service Edge-management-server 중지
      • > apigee-service Edge-router 중지
      • > apigee-service 에지-메시지-프로세서 중지
      • > apigee-service Edge-qpid-server 정지
      • > apigee-service Edge-postgres-server 정지
    2. 노드의 다른 구성요소를 롤백하는 경우 해당 구성요소만 중지합니다.
      • > apigee-service comp 중지
  2. 수익 창출을 롤백하려면 모든 관리 서버 및 메시지 프로세서 노드에서 수익 창출을 제거합니다.
    > apigee-service Edge-mint- Gateway 제거
  3. 노드에서 롤백할 구성요소를 제거합니다.
    1. 노드에서 다음 구성요소를 롤백하는 경우 Management Server, Router, Message Processor, Qpid Server, Postgres Server:
      > apigee-service Edge- Gateway 제거
    2. 노드의 다른 구성요소를 롤백하는 경우 해당 구성요소만 제거합니다.
      > apigee-service comp remove
  4. 라우터를 롤백하는 경우 /opt/nginx/conf.d의 콘텐츠를 삭제해야 합니다.
    > cd /opt/nginx/conf.d
    > rm -rf *
  5. 구성요소를 롤백하려면 다음 안내를 따르세요.
    1. apigee-setup의 4.16.09 버전을 제거합니다.
      > /opt/apigee/apigee-service/bin/apigee-service apigee-setup 마치 제거
    2. 4.16.01 또는 4.16.05 버전용 bootstrap.sh를 다운로드합니다.
      4.16.01의 경우:
      > curl https://software.apigee.com/bootstrap.sh -o /tmp/bootstrap.sh

      4.16.05의 경우:
      > curl boot.bootstrap/ 보여줍니다.
    3. 4.16.01 또는 4.16.05 apigee-service 유틸리티와 종속 항목을 설치합니다.
      > sudo bash /tmp/bootstrap.sh apigeeuser=uName apigeepassword=pWord

      여기서 uNamepWord는 Apigee에서 받은 사용자 이름과 비밀번호입니다. pWord를 생략하면 입력하라는 메시지가 표시됩니다.
    4. apigee-setup의 4.16.01 또는 4.16.05 버전을 설치합니다.
      > /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
    5. 구성요소의 4.16.01 또는 4.16.05 버전을 설치합니다.
      > /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile


      여기서 comp는 설치할 구성요소이고 configFile은 4.16.06.06.05 구성 파일입니다.
  6. 구성요소를 특정 버전의 4.16.05 출시로 롤백하려면 다음 단계를 따르세요.
    1. 특정 구성요소 버전을 다운로드합니다.
      > /<instal_dir>/apigee/apigee-service/bin/apigee-service comp-version install

      여기서 comp-version은 설치할 구성요소와 버전입니다. 예:
      > /<instal_dir>/apigee/apigee-service/bin/apigee-service Edge-ui-4.16.05-0.0.3649 install

      Apigee 온라인 저장소를 사용하는 경우 다음 명령어를 사용하여 사용 가능한 구성요소 버전을 결정하세요.
      > yum --shows list comp


    2. apigee-setup을 사용하여 구성요소를 설치합니다.
      > /<install_dir>/apigee/apigee-setup/bin/setup.sh -p comp -f configFile

      예:
      > /<install_dir>/apigee/apigee-setup/bin/setup.sh -p ui-setup/bin/setup.sh -p ui -f

롤백 시 문제가 발생하면 Apigee 지원팀에 문의하세요.