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

Edge для частного облака версии 4.18.05

В этой статье рассказывается, как обновить существующий локальный портал 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

Чтобы узнать версию портала, откройте в браузере следующий 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. На странице Конфигурация в разделе Разработка выберите Режим обслуживания.
    3. Установите флажок Перевести сайт в режим обслуживания.
    4. Введите сообщение, которое будет показываться пользователям во время технического обслуживания.
    5. Нажмите Сохранить конфигурацию.
  6. Отключите SELinux, как описано в разделе Установка утилиты Edge apigee-setup.
  7. Перейдите в каталог /opt:
    cd /opt
  8. Чтобы обновить сервер с подключением к интернету:
    1. Скачайте файл Edge 4.18.05 bootstrap_4.18.05.sh в каталог /tmp/bootstrap_4.18.05.sh:
      curl https://software.apigee.com/bootstrap_4.18.05.sh -o /tmp/bootstrap_4.18.05.sh
    2. Установите утилиту apigee-service версии 4.18.05 и зависимости:
      sudo bash /tmp/bootstrap_4.18.05.sh apigeeuser=uName apigeepassword=pWord

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

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

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

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

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

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

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

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

      3. На удаленном узле установите утилиту Edge apigee-service и зависимости:
        sudo bash /tmp/bootstrap_4.18.05.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. Запустите утилиту обновления на узле Postgre:
    /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 db_upgrade
  13. Запустите утилиту обновления на узле, чтобы обновить портал:
    /opt/apigee/apigee-setup/bin/update.sh -c dp -f configFile

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

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

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

/opt/apigee/apigee-drupal/wwwroot

Обновление завершено.