Как преобразовать портал на основе tar в портал на основе RPM

Edge for Private Cloud v4.18.01

Версия 4.18.01 портала Developer Services не позволяет обновить предыдущую версию портала на основе tar. Вы можете напрямую обновить только версию портала на основе RPM до 4.18.01.

Однако вы можете преобразовать версию портала на основе tar в экземпляр портала на основе RPM 4.18.01. В рамках этого процесса вы переносите MySQL/MariaDB существующего портала в базу данных Postgres. После преобразования портал останется порталом на основе RPM.

Вы можете перенести многие предыдущие версии портала на основе tar на портал на основе RPM, включая версии 4.16.09 и 4.17.01, а не только версию 4.17.05. Единственное требование – на портале должна быть установлена версия Drupal 7 или более поздняя. Чтобы узнать версию Drupal, в меню выберите Reports (Отчеты) > Status Reports (Отчеты о статусе). Версия Drupal будет указана в первой строке выходных данных.

Ниже приведены основные этапы перехода с портала на основе tar-архива на портал на основе RPM.

  • Установите версию 4.18.01 на основе RPM портала Developer Services на новом узле.
  • Создайте новую базу данных Postgres на портале на основе RPM.
  • Перенесите базу данных портала из портала на основе tar.
  • Скопируйте все дополнительные файлы из портала на основе tar в портал на основе RPM.
  • Обновите записи DNS, чтобы они указывали на новый портал на основе RPM.

    Обратите внимание, что версия портала на основе RPM по умолчанию использует порт 8079, а версия на основе tar – порт 80. Убедитесь, что в записи DNS указан правильный номер порта. Информацию о том, как использовать другой порт, можно найти в разделе Как настроить HTTP-порт, используемый порталом.

Новый каталог установки по умолчанию после преобразования

После обновления установки, которая теперь использует Nginx/Postgres, корневой каталог изменился с:

/opt/apigee/apigee-drupal

кому:

/opt/apigee/apigee-drupal/wwwroot

Процедура преобразования портала

Чтобы преобразовать портал в установку на основе RPM:

  1. Установите версию 4.18.01 портала Developer Services на основе RPM на узел, отличный от узла портала на основе tar.
  2. Создайте новую базу данных Postgres на портале на основе RPM. Позже вы перенесете базу данных с портала на основе tar в эту новую базу данных:
    1. Войдите в psql:
      >psql -h localhost -p 5432 -U apigee

      Введите пароль Postgres, заданный свойством PG_PWD в файле конфигурации портала.
    2. Создайте базу данных PostgreSQL:
      # CREATE DATABASE newportaldb;
    3. Выйдите из psql:
      # \q
  3. На портале на основе tar-файла удалите старые модули, которые больше не используются:
    > cd /var/www/html
    > drush sql-query --db-prefix "DELETE from {system} where name = 'apigee_account' AND type = 'module';"
    > drush sql-query --db-prefix "DELETE from {system} where name = 'apigee_checklist' AND type = 'module';"
    > drush sql-query --db-prefix "DELETE from {system} where name = 'apigee_sso_ui' AND type = 'module';"

  4. На портале на основе tar-файла установите и настройте модуль Migrator Drupal:

    1. cd /tmp
    2. wget https://ftp.drupal.org/files/projects/dbtng_migrator-7.x-1.4.tar.gz
    3. gunzip /tmp/dbtng_migrator-7.x-1.4.tar.gz
    4. tar -xvf /tmp/dbtng_migrator-7.x-1.4.tar --directory /var/www/html/sites/all/modules
    5. Войдите на портал как администратор.
    6. В меню Drupal выберите Modules (Модули).
    7. Включите модуль DBTNG Migrator.
    8. Сохраните конфигурацию.
  5. На портале, созданном на основе tar-файла, измените файл /var/www/html/sites/default/settings.php, добавив вторую конфигурацию базы данных, указывающую на новую базу данных на портале, созданном на основе RPM-файла. Текущая конфигурация базы данных называется default. Укажите название новой конфигурации:
    .
    $databases = array (
          'default' =>
          array (
            'default' =>
            array (
              'database' => 'devportal',
              'username' => 'devportal',
              'password' => 'devportal',
              'host' => 'localhost',
              'port' => '',
              'driver' => 'mysql',
              'prefix' => '',
            ),
          ),
          'custom' =>
          array (
            'default' =>
            array (
              'database' => 'newportaldb',
              'username' => 'apigee',
              'password' => 'postgres',
              'host' => '192.168.168.100',
              'port' => '5432',
              'driver' => 'pgsql',
              'prefix' => '',
            )
          )
        );

    где host и port – IP-адрес и порт сервера Postgres. Postgres использует для подключений порт 5432.
  6. На портале на основе tar-файла установите драйвер Postgres:
    1. Установите драйвер с помощью Yum:
      > yum install php-pdo_pgsql
    2. Отредактируйте файл /etc/php.ini, добавив в него следующую строку:
      extension=pgsql.so
    3. Перезапустите Apache:
      > service httpd restart
  7. На портале, установленном из tar-архива, перенесите базу данных портала на портал, установленный из RPM-пакета:
    1. Войдите на портал как администратор.
    2. В меню Drupal выберите Structure (Структура) > Migrator (Инструмент переноса).
    3. Выберите исходную базу данных на портале tar-based, default, и целевую базу данных, custom, на основе файла settings.php, показанного выше.
    4. Нажмите Перенести. База данных на основе tar переносится в базу данных на основе RPM.
  8. Скопируйте каталог sites с сервера на основе tar на сервер на основе RPM.
    Пути, указанные в следующих шагах, основаны на путях по умолчанию. При необходимости измените их.
    1. На портале, основанном на tar, упакуйте каталог /var/www/html/sites:
      > cd /var/www/html/sites
      > tar -cvzf /tmp/sites.tar.gz .
    2. Скопируйте /tmp/sites.tar.gz в /opt/apigee/apigee-drupal/wwwroot/sites на сервере на основе RPM.
    3. Распакуйте каталог сайтов, но не перезаписывайте важные файлы.
      1. Создайте резервную копию файла settings.php:
        > sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php
      2. Создайте резервную копию существующего каталога files:
        > sudo mv /opt/apigee/apigee-drupal/wwwroot/sites/default/files /opt/apigee/apigee-drupal/wwwroot/sites/default/files_old
      3. Создайте резервную копию существующего каталога sites:
        > tar -cvzf /tmp/sites_old.tar.gz /opt/apigee/apigee-drupal/wwwroot/sites
      4. Распакуйте каталог sites из tar-архива на сервере:
        > gunzip /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar.gz

        > tar -xvf /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar
      5. Убедитесь, что у скопированных файлов правильный владелец:
        > chown -R apigee:apigee /opt/apigee/apigee-drupal/wwwroot/sites/
      6. Восстановите файл settings.php:
        > sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
      7. Переместите личные файлы в новое место:
        > cp -r /opt/apigee/apigee-drupal/wwwroot/sites/default/files/private/* /opt/apigee/data/apigee-drupal-devportal/private

        > rm -rf /opt/apigee/apigee-drupal/wwwroot/sites/default/files/private

        > chown -R apigee:apigee /opt/apigee/data/apigee-sap-drupal-devportal/private
  9. На портале на основе tar-файла. Если вы изменили путь к корневому веб-каталогу на портале на основе tar-файла, заданный по умолчанию (/var/www/html), выполните команду drush status и посмотрите путь к файлам и личным файлам:
    > cd /var/www/html
    > drush status


    Если файлы/личные файлы не находятся в каталоге sites, скопируйте их на сервер на основе RPM, как показано выше.
  10. На портале на основе RPM обновите файл /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php, чтобы задать свойства базы данных по умолчанию:
    > vi /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php

    Задайте описание базы данных по умолчанию в файле settings.php:
    $databases = array (
          'default' =>
          array (
            'default' =>
            array (
              'database' => 'newportaldb',
              'username' => 'apigee',
              'password' => 'postgres',
              'host' => 'localhost', 'port' => '5432',
              'driver' => 'pgsql',
              'prefix' => '',
            )
          )
        );

    где database – это новая база данных, которую вы создали, username и password – это имя пользователя и пароль, заданные для пользовательской базы данных на портале на основе tar, а prefix – пустое поле.
  11. На портале на основе RPM содержится меньше модулей Drupal, чем в версии на основе tar. После перехода на портал на основе RPM необходимо проверить, все ли модули установлены, и при необходимости установить недостающие.
    1. Установите модуль Drupal missing_module, который используется для обнаружения отсутствующих модулей:
      > cd /opt/apigee/apigee-drupal/wwwroot
      > drush dl missing_module
      > drush en missing_module
    2. Войдите на портал RPM-based как администратор.
    3. В меню Drupal выберите Reports (Отчеты) > Status reports (Отчеты о статусе) и проверьте, все ли модули на месте.
    4. Установите отсутствующие модули, указанные в отчете, или используйте следующие команды:
      > cd /opt/apigee/apigee-drupal/wwwroot
      > drush dl <moduleA> <moduleB> ...
      > drush en <moduleA> <moduleB> ...
    5. После включения всех модулей убедитесь, что владельцем файлов является пользователь apigee:
      > chown -LR apigee:apigee /opt/apigee/apigee-drupal/wwwroot

      Дополнительную информацию о разрешениях файлов можно найти на странице https://www.drupal.org/node/244924.
  12. На портале на основе RPM запустите update.php в браузере, чтобы устранить ошибки, связанные с отсутствующими модулями:
    1. Войдите на портал RPM-based как администратор.
    2. В браузере перейдите по следующему URL:
      http://{portal_IP_or_DNS}:8079/update.php

      где portal_IP_or_DNS – IP-адрес или доменное имя портала на основе RPM.
    3. Следуйте инструкциям на экране.
  13. Обновите записи DNS, чтобы они указывали на новый портал на основе RPM.

    Обратите внимание, что версия портала на основе RPM по умолчанию использует порт 8079, а версия на основе tar – порт 80. Убедитесь, что в записи DNS указан правильный номер порта. Информацию о том, как использовать другой порт, можно найти в разделе Как настроить HTTP-порт, используемый порталом.

Преобразование завершено.