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

개발자 서비스 포털 v. 4.17.05

이 절차에서는 기존 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)

기본 설치 디렉터리

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

  • /opt/apigee/apigee-drupal (Nginx)
  • /var/www/html (Apache)

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

설치 디렉터리를 모르는 경우 흔히 사용되는 Drush 명령어에 설명된 대로 확인할 수 있습니다.

새로운 4.17.01 설치에서 Nginx/Postgres를 업데이트한 후의 새로운 기본 설치 디렉터리

Nginx/Postgres를 사용하는 4.17.01의 새 설치를 업데이트한 후 루트 디렉터리가 다음에서 변경되었습니다.

/opt/apigee/apigee-drupal

다음과 같이 진행합니다

/opt/apigee/apigee-drupal/wwwroot

지원되는 업그레이드 버전

이 업그레이드 절차는 다음 버전의 포털에서 지원됩니다.

  • pantheon-14.02.x
  • pantheon-14.03.x
  • pantheon-14.04.x
  • pantheon-14.07.x
  • pantheon-15-01.x
  • OPDK-15-04.x
  • OPDK-15-07.x
  • OPDK-16-01.x
  • OPDK-16-05.x
  • OPDK-16-09.x
  • OPDK-17-01.x

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

http://yourportal.com/buildInfo

업데이트하기 전에

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

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

.tar 파일을 사용하여 포털 업그레이드

  1. Drupal MySQL/MariaDB 인스턴스를 백업합니다.
    자세한 내용은 http://www.thegeekstuff.com/2008/09/backup-and-restore-mysql-database-using-mysqldump/를 참조하세요.
    1. 옵션 1: Drush 사용

      Drush 명령어 sql-dump는 데이터베이스의 사본을 만듭니다. Drupal 디렉터리(기본적으로 /var/www/html)에서 다음 명령어를 실행합니다.
      > drush sql-dump > /path/to/backup_dir/database-backup.sql

      자세한 내용은 drush help sql-dump를 사용하세요.
    2. 옵션 2: MySQLdump 사용
      mysqldump 명령어를 사용하여 데이터베이스 사본을 만듭니다.
      mysqldump -u USERNAME -p'PASSWORD' DATABASENAME > /path/to/backup_dir/database-backup.sql

      -p 옵션과 비밀번호 사이에 공백이 없어야 합니다. 비밀번호에 특수문자가 포함된 경우 비밀번호를 작은따옴표로 묶어야 합니다.

      포털을 설치할 때 USERNAME 및 DATABASENAME을 설정합니다. 기본적으로 둘 다 devportal입니다.
  2. 전체 Drupal 웹 루트 디렉터리를 백업합니다. 기본 설치 위치는 /var/www/html이지만 설치 시 변경했을 수 있습니다.
  3. ftp.apigee.com에서 개발자 채널 서비스 DeveloperServices_x.y.z.tar 파일을 다운로드합니다. 여기서 x.y.z는 포털 버전 번호에 해당합니다. 메시지가 표시되면 Apigee에서 받은 사용자 인증 정보를 입력합니다.

    브라우저에서 Apigee가 보낸 링크에서 파일을 다운로드하거나 복사한 후 다음 cURL 명령어에 추가할 수 있습니다.
    > curl -kOL <paste link here>

    참고: 포털이 외부 인터넷 연결이 없는 서버에 있는 경우 액세스 권한이 있는 서버에서 이 단계를 수행합니다.

    Apigee Edge 지원으로 이동하고 지원 포털에 로그인을 선택하여 개발자 채널 서비스 업그레이드 .tar 파일을 요청합니다. 지원 포털에 계정이 없는 경우 지원 포털에 로그인을 선택한 후 로그인 페이지에서 급하신가요? 여기에서 지원 티켓을 제출하세요.
  4. 인터넷에 연결된 서버에서 업그레이드하는 경우:
    1. 포털 업그레이드 파일을 추출합니다.
      > tar -xvf <tar file>

      이 명령어 추출은 DeveloperServices-4.x.y.z라는 새 디렉터리를 만듭니다.
    2. DeveloperServices-4.x.y.z 디렉터리로 변경합니다.
    3. 다음 명령어를 사용하여 최신 Drupal 버전을 다운로드합니다.
      > drush dl drupal

      이 명령어는 drupal-x.y라는 디렉터리를 만듭니다. 여기서 x.y는 현재 Drupal 버전에 해당합니다.
    4. networked-update.sh 스크립트를 실행합니다.
      > ./networked-update.sh

      파일 권한에 따라 sudo를 사용하여 이 명령어를 실행하거나 관리자로 실행해야 할 수 있습니다.
    5. Drupal 업데이트 알림을 받으려면 Drupal 업데이트 관리자 모듈이 사용 설정되어 있는지 확인합니다. Drupal 메뉴에서 모듈을 선택하고 업데이트 관리자 모듈까지 아래로 스크롤합니다. 사용 설정되어 있지 않으면 사용 설정합니다.

      사용 설정하면 보고서 > 사용 가능한 업데이트 메뉴 항목을 사용하여 사용 가능한 업데이트를 확인할 수 있습니다.

      보고서 > 사용 가능한 업데이트 > 설정 메뉴 항목을 사용하여 업데이트가 있을 때 이메일을 보내도록 모듈을 구성하고 업데이트 확인 빈도를 설정합니다.
  5. 인터넷에 연결되지 않은 서버에서 업그레이드하는 경우:
    1. 개발자 채널 서비스 DeveloperServices_x.y.z.tar 파일을 다운로드한 서버에서 포털 업그레이드 파일을 추출합니다.
      > tar -xvf <tar file>

      이 명령어 추출은 DeveloperServices-4.x.y.z라는 새 디렉터리를 만듭니다.
    2. DeveloperServices-4.x.y.z 디렉터리로 변경합니다.
    3. non-networked-update.sh 스크립트를 실행합니다.
      > ./non-networked-update.sh

      파일 권한에 따라 sudo를 사용하여 이 명령어를 실행하거나 관리자로 실행해야 할 수도 있습니다.

      이 명령어는 필요한 모든 업데이트 파일을 다운로드하고 devportal-update.tgz라는 단일 파일로 패키징하고 파일을 원하는 위치에 작성합니다.
    4. devportal-update.tgz를 포털을 실행하는 대상 서버에 복사합니다.
      참고: devportal-update.tgz를 대상 서버의 웹 루트에 복사하지 마세요.
    5. devportal-update.tgz 파일을 현재 디렉터리에 압축 해제합니다.
      > tar -xzf /path/to/devportal-update.tgz
    6. developer-update 디렉터리로 변경합니다.
    7. 다음 명령어를 실행하여 업데이트를 설치합니다.
      > ./install-update.sh
    8. 프롬프트에 답변합니다.

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

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

다음 절차를 사용하여 노드에서 포털 RPM을 업데이트합니다.

  1. Drupal 디렉터리(기본적으로 /opt/apigee/apigee-drupal)로 변경합니다.
    > cd /opt/apigee/apigee-drupal
  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. Edge apigee-setup 유틸리티 설치에 설명된 대로 SELinux를 사용 중지합니다.
  6. 인터넷에 연결된 서버에서 업그레이드하는 경우:
    1. Edge 4.17.05 bootstrap_4.17.05.sh 파일을 /tmp/bootstrap_4.17.05.sh에 다운로드합니다.
      > curl https://software.apigee.com/bootstrap_4.17.05.sh -o /tmp/bootstrap_4.17.05.sh
    2. Edge 4.17.05 apigee-service 유틸리티 및 종속 항목을 설치합니다.
      > sudo bash /tmp/bootstrap_4.17.05.sh apigeeuser=uName apigeepassword=pWord

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

      기본적으로 설치 프로그램은 Java 1.8이 설치되어 있는지 확인합니다. 'C' 옵션을 사용하여 Java를 설치하지 않고 계속할 수 있습니다.
  7. 인터넷에 연결되지 않은 서버에서 업그레이드하는 경우:
    1. Edge apigee-setup 유틸리티 설치의 '로컬 Apigee 저장소 만들기'에 설명된 대로 로컬 4.17.05 저장소를 만듭니다.
      참고: 기존 4.17.01 저장소가 이미 있는 경우 Edge apigee-setup 유틸리티 설치의 '로컬 Apigee 저장소 업데이트'에 설명된 대로 4.17.05 저장소를 추가할 수 있습니다.
    2. .tar 파일에서 apigee-service를 설치하려면 다음 안내를 따르세요.
      1. 로컬 저장소가 있는 노드에서 다음 명령어를 사용하여 로컬 저장소를 /opt/apigee/data/apigee-mirror/apigee-4.17.05.tar.gz라는 단일 .tar 파일로 패키징합니다.
        > /opt/apigee/apigee-service/bin/apigee-service apigee-mirror package
      2. Edge를 업데이트하려는 노드에 .tar 파일을 복사합니다. 예를 들어 새 노드의 /tmp 디렉터리에 복사합니다.
      3. 새 노드에서 파일의 tar를 /tmp 디렉터리에 압축 해제합니다.
        > tar -xzf apigee-4.17.05.tar.gz

        이 명령어는 .tar 파일이 포함된 디렉터리에 repos라는 새 디렉터리를 만듭니다. 예를 들면 /tmp/repos입니다.
      4. /tmp/repos에서 Edge apigee-service 유틸리티 및 종속 항목을 설치합니다.
        > sudo bash /tmp/repos/bootstrap_4.17.05.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos

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

        여기서 uName:pWord는 위에서 저장소에 설정한 사용자 이름과 비밀번호이고 remoteRepo는 저장소 노드의 IP 주소 또는 DNS 이름입니다.
      3. 원격 노드에서 Edge apigee-service 유틸리티 및 종속 항목을 설치합니다.
        > sudo bash /tmp/bootstrap_4.17.05.sh apigeerepohost=remoteRepo:3939 apigeeuser=uName apigeepassword=pWord apigeeprotocol=http://

        여기서 uName:pWord는 저장소 사용자 이름과 비밀번호입니다.
  8. apigee-service를 사용하여 apigee-setup 유틸리티를 업데이트합니다.
    > /opt/apigee/apigee-service/bin/apigee-service apigee-setup update
  9. 노드에서 업데이트 유틸리티를 실행하여 Postgres 데이터베이스를 업데이트합니다.
    > /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile

    여기서 configFile은 Postgres 데이터베이스를 설치하는 데 사용한 구성 파일입니다. 구성 파일의 유일한 요구사항은 'apigee' 사용자가 구성 파일에 액세스하거나 읽을 수 있어야 한다는 것입니다.
  10. Postgres를 시작합니다.
    > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql start
  11. 노드에서 업데이트 유틸리티를 실행하여 포털을 업데이트합니다.
    > /opt/apigee/apigee-setup/bin/update.sh -c dp -f configFile

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

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

/opt/apigee/apigee-drupal/wwwroot

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