Как обновить портал

Edge for Private Cloud 4.19.01

В этой процедуре описывается, как обновить существующий локальный портал 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
  • OPDK-17-05.x
  • OPDK-17-09.x
  • OPDK-18-01.x
  • OPDK-18-05.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 – имя пользователя Postgres, которое портал использует для доступа к базе данных, как указано в свойстве DRUPAL_PG_USER в файле конфигурации установки портала.

    Вам будет предложено ввести пароль пользователя Postgres, определенный свойством DRUPAL_PG_PASS в файле конфигурации установки портала.

    Если позже вы захотите восстановить данные из резервной копии, используйте следующую команду:

    pg_restore --clean --dbname=devportal --host=localhost  --username=apigee < /tmp/portal.dmp
  3. Создайте резервную копию всего корневого каталога Drupal. По умолчанию это /opt/apigee/apigee-drupal, но вы могли изменить путь.

    Если вы не знаете, где находится этот каталог, используйте команду drush status или выберите в меню Drupal Configuration (Конфигурация) > Media (Медиа) > File (Файл), чтобы определить местоположение общедоступной файловой системы и путь к частной файловой системе (для следующего шага).

  4. Создайте резервную копию файлов в /opt/apigee/data/apigee-drupal-devportal/private.
  5. Переведите Drupal в режим обслуживания:
    1. В меню Drupal выберите Configuration (Конфигурация).
    2. На странице Configuration (Конфигурация) в разделе Development (Разработка) выберите Maintenance mode (Режим обслуживания).
    3. Установите флажок Перевести сайт в режим обслуживания.
    4. Введите сообщение, которое пользователи будут видеть во время обслуживания.
    5. Нажмите Сохранить конфигурацию.
  6. Отключите SELinux, как описано в разделе Установка утилиты apigee-setup для Edge.
  7. Перейдите в каталог /opt:
    cd /opt
  8. Чтобы обновить сервер, подключенный к интернету:
    1. Скачайте файл Edge 4.19.01 bootstrap_4.19.01.sh в каталог /tmp/bootstrap_4.19.01.sh:
      curl https://software.apigee.com/bootstrap_4.19.01.sh -o /tmp/bootstrap_4.19.01.sh
    2. Установите утилиту Edge 4.19.01 apigee-service и зависимости:
      sudo bash /tmp/bootstrap_4.19.01.sh apigeeuser=uName apigeepassword=pWord

      где uName и pWord – имя пользователя и пароль, полученные от Apigee. Если вы не укажете pWord, вам будет предложено ввести его.

      По умолчанию установщик проверяет, установлена ли у вас Java 1.8. Вы можете выбрать вариант C, чтобы продолжить без установки Java.

  9. Для обновления на сервере без подключения к интернету:
    1. Создайте локальное хранилище версии 4.19.01, как описано в разделе Создание локального хранилища Apigee.
    2. Чтобы установить apigee-service из TAR-файла:
      1. На узле с локальным репозиторием используйте следующую команду, чтобы упаковать локальный репозиторий в один файл .tar с именем /opt/apigee/data/apigee-mirror/apigee-4.19.01.tar.gz:
        /opt/apigee/apigee-service/bin/apigee-service apigee-mirror package
      2. Скопируйте TAR-файл на узел, на котором вы хотите обновить Edge. Например, скопируйте его в каталог /tmp на новом узле.
      3. На новом узле распакуйте файл в каталог /tmp:
        tar -xzf apigee-4.19.01.tar.gz

        Эта команда создает новый каталог с названием repos в каталоге, содержащем файл TAR. Например, /tmp/repos.

      4. Установите утилиту Edge apigee-service и зависимости из /tmp/repos:
        sudo bash /tmp/repos/bootstrap_4.19.01.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos

        Обратите внимание, что в этой команде вы указываете путь к каталогу repos.

    3. Чтобы установить apigee-service с помощью веб-сервера Nginx:
      1. Настройте веб-сервер Nginx, как описано в разделе "Установка из репозитория с помощью веб-сервера Nginx" в статье Как установить утилиту apigee-setup для Edge.
      2. На удаленном узле скачайте файл Edge bootstrap_4.19.01.sh в каталог /tmp/bootstrap_4.19.01.sh:
        /usr/bin/curl http://uName:pWord@remoteRepo:3939/bootstrap_4.19.01.sh
          -o /tmp/bootstrap_4.19.01.sh

        где uName и pWord – имя пользователя и пароль, заданные выше для хранилища, а remoteRepo – IP-адрес или DNS-имя узла хранилища.

      3. На удаленном узле установите утилиту Edge apigee-service и зависимости:
        sudo bash /tmp/bootstrap_4.19.01.sh apigeerepohost=remoteRepo:3939
          apigeeuser=uName apigeepassword=pWord apigeeprotocol=http://

        где uName и pWord – имя пользователя и пароль для доступа к репозиторию.

  10. Чтобы обновить утилиту apigee-setup, используйте apigee-service:
    /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. Чтобы обновить портал, запустите утилиту обновления на узле:
    /opt/apigee/apigee-setup/bin/update.sh -c dp -f configFile

    где configFile – файл конфигурации, который вы использовали для установки портала. Единственное требование к файлу конфигурации – он должен быть доступен или доступен для чтения пользователю apigee.

  13. Запустите скрипт Drupal update.php, открыв в браузере следующий URL:
    http://portal_IP_DNS:8079/update.php
  14. Отключите режим обслуживания:
    1. В меню Drupal выберите Configuration (Конфигурация).
    2. На странице Configuration (Конфигурация) в разделе Development (Разработка) выберите Maintenance mode (Режим обслуживания).
    3. Снимите флажок Перевести сайт в режим обслуживания.
    4. Нажмите Сохранить конфигурацию.

Обратите внимание, что после обновления корневой каталог будет следующим:

/opt/apigee/apigee-drupal/wwwroot

Обновление завершено. Если утилита обновления Apigee понизила версию Drupal, возможно, вам потребуется повторно запустить утилиту обновления Drupal. Подробнее о том, как повторно запустить обновление Drupal…

Повторно запустите обновление Drupal.

Если при запуске утилиты обновления Apigee для обновления Edge для частного облака фактически происходит понижение версии Drupal, переустановите обновление Drupal. Это может произойти, если вы обновили только Drupal между обновлениями Private Cloud.

Пример:

  1. Вы использовали версию 4.18.05 Edge для частного облака, которая включала Drupal 7.59.
  2. Вы обновили Drupal до версии 7.64, чтобы установить обязательное обновление системы безопасности.
  3. Вы обновляете Private Cloud до версии 4.19.01, которая включает Drupal 7.61.

Как показывает этот пример, версия Drupal, используемая утилитой обновления Apigee, может не ссылаться на последнее обновление Drupal. В результате вам придется заново выполнить обновление Drupal, чтобы вернуть установленную версию Drupal к более поздней.