Apigee Edge 4.51.00 롤백

Edge 4.51.00으로 업데이트하는 중에 오류가 발생하면 오류를 일으킨 구성요소를 롤백한 후 업데이트를 다시 시도할 수 있습니다.

Edge 4.51.00을 다음 기능 출시 버전으로 롤백할 수 있습니다.

  • 버전 4.50.00
  • 버전 4.19.06

롤백을 실행해야 하는 두 가지 시나리오가 있습니다.

  1. 이전 기능 출시로 롤백합니다. 예를 들어 4.51.00에서 4.50.00으로 변경합니다.
  2. 동일한 출시의 이전 업데이트 버전으로 롤백합니다. 예를 들어 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 서버)

예를 들어 노드에 관리 서버, 라우터, 메시지 프로세서가 설치된 경우, 그중 하나를 롤백하려면 세 가지 모두를 롤백해야 합니다.

이전 기능 출시로 롤백

이전 기능 출시로 롤백하려면 구성요소를 호스팅하는 각 노드에서 다음을 실행합니다.

  1. 롤백하려는 버전의 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 
  2. 구성요소를 중지하여 롤백합니다.
    1. 노드에서 공통 코드가 있는 구성요소를 롤백하려면 다음 예와 같이 모두 중지해야 합니다.
      /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
    2. 노드의 기타 구성요소를 롤백하려면 해당 구성요소만 중지합니다.
      • /opt/apigee/apigee-service/bin/apigee-service component stop
  3. 수익 창출을 롤백하는 경우 모든 관리 서버 및 메시지 프로세서 노드에서 수익 창출을 제거합니다.
    /opt/apigee/apigee-service/bin/apigee-service edge-mint-gateway uninstall
  4. 노드에서 롤백할 구성요소를 제거합니다.
    1. 노드에서 공통 코드가 있는 구성요소를 롤백하려면 다음 예와 같이 edge-gateway 구성요소 그룹을 제거하여 모두 제거해야 합니다.
      /opt/apigee/apigee-service/bin/apigee-service edge-gateway uninstall
    2. 노드의 다른 구성요소를 롤백하려면 다음 예와 같이 해당 구성요소만 제거합니다.
      /opt/apigee/apigee-service/bin/apigee-service component uninstall

      여기서 component은 구성요소 이름입니다.

    3. Edge 라우터를 롤백하려면 edge-gateway 구성요소 그룹을 제거하는 것 외에도 /opt/nginx/conf.d 파일의 콘텐츠를 삭제해야 합니다.
      cd /opt/nginx/conf.d
      rm -rf *
  5. apigee-setup의 4.51.00 버전을 제거합니다.
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
  6. 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

    여기서 uNamepWord는 Apigee에서 받은 사용자 이름과 비밀번호입니다. pWord를 생략하면 입력하라는 메시지가 표시됩니다.

    오류가 발생하면 1단계에서 bootstrap.sh 파일을 다운로드했는지 확인합니다.

  7. apigee-setup을 설치합니다.
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
  8. 이전 버전의 구성요소를 설치합니다.
    /opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile

    여기서 component는 설치할 구성요소이고 configFile는 이전 버전의 구성 파일입니다.

  9. Qpid를 롤백하는 경우 iptables를 플러시합니다.
    sudo iptables -F
  10. 롤백하는 구성요소를 호스팅하는 각 노드에 대해 이 프로세스를 반복합니다.

이전 업데이트 버전으로 롤백

구성요소를 출시의 특정 버전으로 롤백하려면 구성요소를 호스팅하는 각 노드에서 다음을 실행합니다.

  1. 특정 구성요소 버전을 다운로드합니다.
    /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
  2. apigee-setup을 사용하여 구성요소를 설치합니다.
    /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile

    예를 들면 다음과 같습니다.

    /opt/apigee/apigee-setup/bin/setup.sh -p ui -f configFile

    구성요소를 설치할 때는 버전이 아닌 구성요소 이름만 지정합니다.

  3. 롤백하는 구성요소를 호스팅하는 각 노드에 대해 이 프로세스를 반복합니다.

Postgres 10.17 업데이트 롤백

버전 4.19.06 또는 4.50.00에서 4.51.00으로 업그레이드한 경우 Edge 구성요소 외에도 PostgreSQL 업데이트를 롤백해야 합니다.

마스터-스탠바이 구성에서 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/apigee-service/bin/apigee-service apigee-postgresql stop

  3. 설치된 경우 이전 대기 모드 노드에서 Qpid를 시작합니다.
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start
  4. 새 대기 노드를 Postgres 마스터로 승격합니다.
    1. 새 대기 노드를 새 마스터로 승격합니다.
      apigee-service apigee-postgresql promote-standby-to-master new_standby_IP

      메시지가 표시되면 'apigee' 사용자의 Postgres 비밀번호를 입력합니다. 기본값은 'postgres'입니다.

    2. 현재 버전의 Edge를 설치하는 데 사용한 구성 파일을 수정하여 다음을 지정합니다.
      # IP address of the new master:
      PG_MASTER=new_standby_IP
      # IP address of the old standby node
      PG_STANDBY=old_standby_IP
    3. 새 마스터를 구성합니다.
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
  5. 이전 대기 노드를 이미 최신 버전으로 업그레이드한 경우 먼저 이전 대기 노드에서 Apigee 소프트웨어를 다운그레이드해야 합니다. 이전 대기 모드 노드에 여전히 이전 버전이 있는 경우 이 단계를 건너뛰고 6단계를 진행할 수 있습니다.
    1. 이전 대기 모드 노드에서 Postgres를 중지합니다.
      apigee-service apigee-postgresql stop
      apigee-service edge-postgres-server stop
    2. 이전 대기 노드에서 Postgres를 제거합니다.
      apigee-service apigee-postgresql uninstall
      apigee-service edge-postgres-server uninstall
    3. 이전 대기 모드 노드에서 Postgres 데이터 디렉터리를 삭제합니다.
      cd /opt/apigee/data/apigee-postgresql/pgdata > rm -rf *
    4. 이전 대기 모드 노드에서 이전 버전 부트스트랩 (롤백하려는 Apigee 버전의 부트스트랩)을 다운로드하여 실행합니다. 정확한 단계는 인터넷 기반 설치를 사용하는지 또는 오프라인 설치를 사용하는지에 따라 다를 수 있습니다. 이전 버전의 Apigee 부트스트랩을 실행하면 이전 버전의 Apigee 데이터로 yum 저장소가 설정됩니다.
    5. 이전 대기 노드에서 Postgres 구성요소를 설정합니다.
      /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile
    6. 이전 대기 노드의 Postgres 구성요소가 이전 버전으로 롤백되었는지 확인합니다.
      apigee-service apigee-postgresql version
      apigee-service edge-postgres-server version
  6. 이전 대기 노드를 다시 빌드합니다.
    1. 현재 버전의 Edge를 설치하는 데 사용한 구성 파일을 수정하여 다음을 지정합니다.
      # IP address of the new master:
      PG_MASTER=new_standby_IP
      # IP address of the old standby node
      PG_STANDBY=old_standby_IP
    2. 이전 대기 노드에서 데이터 디렉터리를 삭제합니다.
      cd /opt/apigee/data/apigee-postgresql/pgdata > rm -rf *
    3. 이전 대기 노드를 새 마스터의 대기 노드로 재구성합니다.
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
    4. Postgres가 이전 대기 노드에서 실행 중인지 확인합니다.
      /opt/apigee/apigee-service/bin/apigee-all status

      Postgres가 실행되고 있지 않으면 다음과 같이 시작합니다.

      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server start
  7. 새 마스터에서 /opt/apigee/apigee-postgresql/conf/pg_hba.conf 파일을 확인하여 새 대기 모드 노드가 추가되었는지 확인합니다.
  8. 관리 서버에서 다음 명령어를 실행하여 현재 분석 및 소비자 그룹 정보를 확인합니다.
    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" : {
      }
    }

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

    출력 끝에 노드의 UUID가 다음과 같은 형식으로 표시됩니다.

    "type" : [ "postgres-server" ],
    "uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"
  10. 이전 단계를 반복하여 이전 대기 모드 노드와 새 마스터의 IP 주소를 가져옵니다.
  11. 소비자 그룹에서 이전 마스터 및 대기 노드를 삭제합니다.
    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-001consumer-group-001는 분석 및 소비자 그룹의 기본 이름입니다. masterUUID,standbyUUID는 위에서 현재 분석 및 소비자 그룹 정보를 볼 때 표시된 순서와 동일합니다. standbyUUID,masterUUID로 지정해야 할 수도 있습니다.

    이제 consumer-groupsdatastores 속성이 비어 있어야 합니다.

  12. 분석 그룹에서 이전 마스터 및 대기 노드를 삭제합니다.
    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 속성이 비어 있어야 합니다.

  13. 애널리틱스 및 소비자 그룹에 새 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
  14. 분석 그룹을 확인합니다.
    curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax

    애널리틱스 그룹과 소비자 그룹에 새 마스터 노드와 대기 모드 노드의 UUID가 표시됩니다.

  15. Edge 관리 서버를 다시 시작합니다.
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  16. 모든 Qpid 서버를 다시 시작합니다.
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
  17. 모든 Postgres 서버를 다시 시작합니다.
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  18. 두 서버에서 다음 스크립트를 실행하여 복제 상태를 확인합니다. 복제가 성공하려면 시스템에서 두 서버에 동일한 결과를 표시해야 합니다.

    새 마스터에서 다음을 실행합니다.

    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

    마스터인지 확인합니다. 이전 대기 노드에서 다음을 실행합니다.

    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

    대기 모드인지 확인합니다.

  19. 여러 API를 요청한 후 이전 단계를 반복하여 노드가 동기화되었는지 확인합니다.
  20. Apigee Edge 4.16.01/4.16.05를 4.17.09로 업데이트의 절차에 따라 이전 Postgres 마스터의 지원 중단

    또는 이전 마스터에서 Qpid를 제거하고 새 마스터 노드에 Qpid를 설치할 수 있습니다. Qpid를 제거한 후에는 이전 마스터 노드를 지원 중단할 수 있습니다.

mTLS 롤백

mTLS 업데이트를 롤백하려면 모든 호스트에서 다음 단계를 따르세요.

  1. Apigee를 중지합니다.
    apigee-all stop
  2. mTLS 중지:
    apigee-service apigee-mtls uninstall
  3. mTLS 재설치:
    apigee-service apigee-mtls install
    apigee-service apigee-mtls setup -f /opt/silent.conf