포털 업그레이드

이 절차에서는 기존 Apigee Developer Services 포털 (이하 포털) 온프레미스 설치를 업그레이드하는 방법을 설명합니다.

올바른 업데이트 절차 결정

포털을 업데이트하는 절차는 현재 설치에 따라 다릅니다.

현재 설치 유형 확인

현재 설치 유형을 잘 모르겠다면 다음 명령어를 사용하여 확인합니다.

  • ls /opt

    Nginx/Postgres를 사용하는 경우 /opt/apigee/opt/nginx 디렉터리가 표시됩니다.

    Apache/MySQL 또는 Apache/MariaDB를 사용하는 경우 이러한 디렉터리가 없어야 합니다.

  • /opt/apigee/apigee-service/bin/apigee-all status

    Nginx/Postgres를 사용하는 경우 다음과 같은 출력이 표시됩니다.

    + apigee-service
    apigee-drupal-devportal status
    OK: apigee-drupal-devportal is up and running
    + apigee-service apigee-lb status
    apigee-service: apigee-lb: OK
    + apigee-service apigee-postgresql status
    apigee-service: apigee-postgresql: OK
  • apachectl -S

    Apache/MySQL 또는 Apache/MariaDB를 사용하는 경우 이 명령어는 다음과 같은 형식으로 포털의 웹 루트 디렉터리를 반환합니다.

    *:80
    192.168.56.102 (/etc/httpd/conf/vhosts/devportal.conf:1)

기본 설치 디렉터리

업그레이드 프로세스는 포털이 다음 위치에 설치되었다고 가정합니다.

  • 4.17.05 이상: /opt/apigee/apigee-drupal/wwwroot
  • 4.17.05 이전: /opt/apigee/apigee-drupal (Nginx) 또는 /var/www/html (Apache)

기본 디렉터리에 포털을 설치하지 않은 경우 아래 절차에서 경로를 수정하여 설치 디렉터리를 사용하세요.

지원되는 업그레이드 버전

이 업그레이드 절차는 포털 버전 OPDK-17-01.x 이상에서 지원됩니다.

포털 버전을 확인하려면 브라우저에서 다음 URL을 엽니다.

http://yourportal.com/buildInfo

업데이트하기 전에

기존 설치의 경우 Drupal 코어 또는 맞춤이 아닌 모듈에서 코드를 수정한 경우 수정사항이 덮어쓰기됩니다. 여기에는 무엇보다도 .htaccess에 적용한 변경사항이 포함됩니다. /sites 디렉터리 외부의 모든 항목은 Drupal에서 소유한다고 가정해야 합니다. 이 규칙의 예외는 robots.txt입니다. 이 파일이 웹 루트에 있으면 보존됩니다.

설치를 진행하기 전에 전체 Drupal 웹 루트 디렉터리를 백업합니다. 아래에 설명된 설치 단계를 수행한 후 백업에서 맞춤설정을 복원할 수 있습니다.

RPM을 사용하여 포털 업그레이드

노드에서 포털 RPM을 업데이트하려면 다음 단계를 따르세요.

  1. Drupal 디렉터리(기본값: /opt/apigee/apigee-drupal)로 변경합니다.
    cd /opt/apigee/apigee-drupal
  2. Drupal 데이터베이스 인스턴스를 백업합니다. pg_dump 명령어는 데이터베이스의 사본을 만듭니다.
    pg_dump --dbname=devportal --host=host_IP_address --username=drupaladmin
      --password --format=c > /tmp/portal.dmp

    각 항목의 의미는 다음과 같습니다.

    • devportal는 포털 설치 구성 파일의 PG_NAME 속성에 지정된 데이터베이스 이름입니다.
    • host_IP_address는 포털 노드의 IP 주소입니다.
    • drupaladmin는 포털 설치 구성 파일의 DRUPAL_PG_USER 속성에 지정된 대로 포털에서 데이터베이스에 액세스하는 데 사용하는 Postgres 사용자 이름입니다.

    포털 설치 구성 파일의 DRUPAL_PG_PASS 속성에 정의된 Postgres 사용자 비밀번호를 입력하라는 메시지가 표시됩니다.

    나중에 백업에서 복원하려면 다음 명령어를 사용하세요.

    pg_restore --clean --dbname=devportal --host=localhost  --username=apigee < /tmp/portal.dmp
  3. 전체 Drupal 웹 루트 디렉터리의 백업을 만듭니다. 기본 설치 위치는 /opt/apigee/apigee-drupal이지만 변경했을 수 있습니다.

    이 디렉터리의 위치를 잘 모르겠다면 drush status 명령어 또는 Drupal 메뉴의 구성 > 미디어 > 파일 항목을 사용하여 다음 단계에서 사용할 공개 파일 시스템 및 비공개 파일 시스템 경로의 위치를 확인합니다.

  4. /opt/apigee/data/apigee-drupal-devportal/private의 파일을 백업합니다.
  5. Drupal을 유지보수 모드로 설정합니다.
    1. Drupal 메뉴에서 구성을 선택합니다.
    2. 구성 페이지에서 개발 아래의 유지보수 모드를 선택합니다.
    3. 사이트를 유지보수 모드로 전환 체크박스를 선택합니다.
    4. 유지보수 중에 사용자에게 표시할 메시지를 입력합니다.
    5. Save configuration(구성 저장)을 선택합니다.
  6. Edge apigee-setup 유틸리티 설치에 설명된 대로 SELinux를 사용 중지합니다.
  7. /opt 디렉터리로 변경합니다.
    cd /opt
  8. 인터넷에 연결된 서버의 업그레이드:
    1. Edge 4.19.06 bootstrap_4.19.06.sh 파일을 /tmp/bootstrap_4.19.06.sh에 다운로드합니다.
      curl https://software.apigee.com/bootstrap_4.19.06.sh -o /tmp/bootstrap_4.19.06.sh
    2. Edge 4.19.06 apigee-service 유틸리티 및 종속 항목을 설치합니다.
      sudo bash /tmp/bootstrap_4.19.06.sh apigeeuser=uName apigeepassword=pWord

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

      기본적으로 설치 프로그램은 Java 1.8이 설치되어 있는지 확인합니다. 'C' 옵션을 사용하여 자바를 설치하지 않고 계속 진행할 수 있습니다.

  9. 인터넷에 연결되어 있지 않은 서버에서 업그레이드하는 경우:
    1. 로컬 Apigee 저장소 만들기에 설명된 대로 로컬 4.19.06 저장소를 만듭니다.
    2. .tar 파일에서 apigee-service를 설치하려면 다음 단계를 따르세요.
      1. 로컬 저장소가 있는 노드에서 다음 명령어를 사용하여 로컬 저장소를 /opt/apigee/data/apigee-mirror/apigee-4.19.06.tar.gz라는 단일 .tar 파일로 패키징합니다.
        /opt/apigee/apigee-service/bin/apigee-service apigee-mirror package
      2. .tar 파일을 Edge를 업데이트할 노드에 복사합니다. 예를 들어 새 노드의 /tmp 디렉터리에 복사합니다.
      3. 새 노드에서 파일을 /tmp 디렉터리로 압축 해제합니다.
        tar -xzf apigee-4.19.06.tar.gz

        이 명령어는 .tar 파일이 포함된 디렉터리에 repos라는 새 디렉터리를 만듭니다. 예: /tmp/repos

      4. /tmp/repos에서 Edge apigee-service 유틸리티와 종속 항목을 설치합니다.
        sudo bash /tmp/repos/bootstrap_4.19.06.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos

        이 명령어에는 저장소 디렉터리의 경로가 포함됩니다.

    3. Nginx 웹 서버를 사용하여 apigee-service를 설치하려면 다음 안내를 따르세요.
      1. Edge apigee-setup 유틸리티 설치의 'Nginx 웹 서버를 사용하여 저장소에서 설치'에 설명된 대로 Nginx 웹 서버를 구성합니다.
      2. 원격 노드에서 Edge bootstrap_4.19.06.sh 파일을 /tmp/bootstrap_4.19.06.sh로 다운로드합니다.
        /usr/bin/curl http://uName:pWord@remoteRepo:3939/bootstrap_4.19.06.sh
          -o /tmp/bootstrap_4.19.06.sh

        여기서 uNamepWord는 위에서 저장소에 설정한 사용자 이름 및 비밀번호이고 remoteRepo는 저장소 노드의 IP 주소 또는 DNS 이름입니다.

      3. 원격 노드에서 Edge apigee-service 유틸리티와 종속 항목을 설치합니다.
        sudo bash /tmp/bootstrap_4.19.06.sh apigeerepohost=remoteRepo:3939
          apigeeuser=uName apigeepassword=pWord apigeeprotocol=http://

        여기서 uNamepWord는 저장소 사용자 이름과 비밀번호입니다.

  10. apigee-service를 사용하여 apigee-setup 유틸리티를 업데이트합니다.
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup update
  11. Postgres 노드에서 update 유틸리티를 실행합니다.
    /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile

    여기서 configFile은 Postgres 데이터베이스를 설치하는 데 사용한 구성 파일입니다. 구성 파일의 유일한 요구사항은 'apigee' 사용자가 구성 파일에 액세스하거나 읽을 수 있어야 한다는 것입니다.

  12. 다음 명령어를 실행하여 PHP RPM을 삭제하고 Apigee Drupal Devportal RPM 종속 항목은 삭제하지 않습니다.
    rpm -ev --nodeps $(rpm -qa | grep php | awk '{printf "%s ", $1}')

    이 명령어는 다음을 수행합니다.

    • rpm -ev --nodeps은 RPM을 삭제하지만 종속 항목은 삭제하지 않습니다.
    • rpm -qa는 삭제할 RPM 목록을 빌드합니다.
    • grep php는 모든 PHP RPM을 검색합니다.
    • awk '{printf "%s ", $1}'는 RPM 이름을 출력합니다.
  13. 노드에서 update 유틸리티를 실행하여 포털을 업데이트합니다.
    /opt/apigee/apigee-setup/bin/update.sh -c dp -f configFile

    여기서 configFile은 포털을 설치하는 데 사용한 구성 파일입니다. 구성 파일의 유일한 요구사항은 'Apigee' 사용자가 구성 파일에 액세스하거나 읽을 수 있어야 한다는 것입니다.

  14. 브라우저 창에서 다음 URL을 열어 Drupal의 update.php 스크립트를 실행합니다.
    http://portal_IP_DNS:8079/update.php
  15. 유지보수 모드를 사용 중지합니다.
    1. Drupal 메뉴에서 구성을 선택합니다.
    2. 구성 페이지에서 개발 아래의 유지보수 모드를 선택합니다.
    3. 사이트를 유지보수 모드로 전환 체크박스를 선택 해제합니다.
    4. Save configuration(구성 저장)을 선택합니다.

업데이트 후 루트 디렉터리는 다음과 같습니다.

/opt/apigee/apigee-drupal/wwwroot

이제 업그레이드가 완료되었습니다. Apigee update 유틸리티로 Drupal 버전이 다운그레이드된 경우 Drupal 업그레이드 유틸리티를 다시 실행해야 할 수 있습니다. 자세한 내용은 Drupal 업그레이드 다시 실행을 참고하세요.

Drupal 업그레이드 재실행

Apigee update 유틸리티를 실행하여 Private Cloud용 Edge를 업그레이드했는데 실제로 Drupal 버전이 다운그레이드되는 경우 Drupal 업그레이드를 다시 설치합니다. 프라이빗 클라우드 업데이트 사이에 Drupal만 업그레이드한 경우입니다.

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

  1. Drupal 7.59가 포함된 프라이빗 클라우드용 Edge 버전 4.18.05를 실행하고 있었습니다.
  2. 필수 보안 업데이트로 인해 Drupal을 7.64로 업그레이드했습니다.
  3. 이제 프라이빗 클라우드를 Drupal 7.61이 포함된 4.19.01로 업그레이드합니다.

이 사례에서 알 수 있듯이 Apigee update 유틸리티에서 사용하는 Drupal 버전은 최신 Drupal 업그레이드를 참조하지 않을 수 있습니다. 따라서 이제 Drupal 업그레이드를 다시 실행하여 Drupal 설치를 최신 버전으로 되돌려야 합니다.