개발자 서비스 포털 업그레이드

개발자 서비스 포털 v. 4.17.09

이 절차에서는 기존 Apigee Developer Channel 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
  • OPDK-17-05.x

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

http://your_portal.com/buildInfo

업데이트하기 전에

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

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

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

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

  1. Drupal 디렉터리로 변경합니다. 예를 들면 /opt/apigee/apigee-drupal/wwwroot입니다.

    cd /opt/apigee/apigee-drupal/wwwroot

    제품 버전의 기본 디렉터리는 기본 설치 디렉터리를 참고하세요.

  2. Drupal 데이터베이스 인스턴스를 백업합니다. pg_dump 명령어는 데이터베이스의 사본을 만듭니다.
    pg_dump --dbname=devportal --host=192.168.56.101
      --username=drupaladmin --password --format=c > /tmp/portal.dmp

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

    • dbname는 포털 설치 구성 파일의 PG_NAME 속성에 지정된 대로 데이터베이스 이름을 지정합니다.
    • host은 포털 노드의 IP 주소를 지정합니다.
    • username는 포털 설치 구성 파일의 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.17.09 bootstrap_4.17.09.sh 파일을 /tmp/bootstrap_4.17.09.sh에 다운로드합니다.
      curl https://software.apigee.com/bootstrap_4.17.09.sh -o /tmp/bootstrap_4.17.09.sh
    2. Edge 4.17.09 apigee-service 유틸리티 및 종속 항목을 설치합니다.
      sudo bash /tmp/bootstrap_4.17.09.sh apigeeuser=uName
        apigeepassword=pWord

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

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

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

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

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

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

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

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

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

        여기서 uName:pWord는 저장소 사용자 이름 및 비밀번호입니다.

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

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

  12. Postgres 시작:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql start
  13. 노드에서 업데이트 유틸리티를 실행하여 포털을 업데이트합니다.
    /opt/apigee/apigee-setup/bin/update.sh -c dp -f configFile

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

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

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

/opt/apigee/apigee-drupal/wwwroot

업그레이드가 완료되었습니다.