Convertir un portal basado en tar en un portal basado en RPM

Edge para la nube privada v4.18.01

La versión 4.18.01 del portal de servicios para desarrolladores no te permite actualizar una versión anterior del portal basada en el tar. Solo puedes actualizar directamente una versión del portal basada en RPM a la versión 4.18.01.

Sin embargo, puedes convertir una versión basada en tar del portal en una instancia del portal basada en RPM 4.18.01. Como parte de este proceso, migras MySQL/MariaDB del portal existente a una base de datos de Postgres. Una vez convertido, tu portal permanecerá como un portal basado en RPM.

Puedes migrar muchas versiones anteriores del portal basado en tar a un portal basado en RPM, incluidas las versiones 4.16.09 y 4.17.01, no solo la 4.17.05. El único requisito es que el portal ejecute Drupal 7 o una versión posterior. Para verificar tu versión de Drupal, selecciona Reports > Status Reports en el menú Drupal. La versión de Drupal aparecerá en la primera fila del resultado.

Los pasos de alto nivel que debes seguir para migrar de un portal basado en tar a uno basado en RPM son los siguientes:

  • Instala la versión 4.18.01 basada en RPM del portal de Developer Service en un nodo nuevo.
  • Crea una nueva base de datos de Postgres en el portal basado en RPM.
  • Migra la base de datos del portal desde el portal basado en tar.
  • Copia todo el archivo de accesorio del portal basado en tar al portal basado en RPM.
  • Actualiza las entradas de DNS para que apunten al portal nuevo basado en RPM.

    Ten en cuenta que la versión del portal basada en RPM usa el puerto 8079 de forma predeterminada, mientras que la versión basada en tar usa el puerto 80. Asegúrate de usar el número de puerto correcto en tu entrada de DNS. Consulta Configura el puerto HTTP que usa el portal para obtener información sobre cómo usar un puerto diferente.

Nuevo directorio de instalación predeterminado después de la conversión

Después de actualizar una instalación que ahora usa Nginx/Postgres, el directorio raíz cambió de:

/opt/apigee/apigee-drupal

siguiente:

/opt/apigee/apigee-drupal/wwwroot

Procedimiento de conversión del portal

Para convertir el portal en una instalación basada en RPM, haz lo siguiente:

  1. Instala la versión 4.18.01 basada en RPM del portal de Developer Service en un nodo diferente del portal basado en tar.
  2. En el portal basado en RPM, crea una nueva base de datos de Postgres. Luego, migrarás la base de datos del portal basado en tar a esta nueva base de datos:
    1. Accede a psql:
      >psql -h localhost -p 5432 -U apigee

      Ingresa tu contraseña de Postgres como lo define la propiedad PG_PWD en el archivo de configuración del portal.
    2. Crea una nueva base de datos de Postgred:
      # CREATE DATABASE newportaldb;
    3. Sal de psql:
      # \q
  3. En el portal basado en tar, quita los módulos antiguos que ya no se usan:
    > cd /var/www/html
    > drush sql-query --db-prefix "DELETE from {system} Where name = 'apigee_account' AND type = 'module';"
    > drush sql-query --db-prefix name ;" DELETE' type

  4. En el portal basado en tar, instala y configura el módulo 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. Accede al portal como administrador.
    6. Selecciona Modules en el menú de Drupal.
    7. Habilita el módulo DBTNG Migrator.
    8. Guarde la configuración.
  5. En el portal basado en tar, edita /var/www/html/sites/default/settings.php para agregar una segunda configuración de la base de datos que dirija a la base de datos recién creada en el portal basado en RPM. La configuración actual de la base de datos se denomina predeterminada. Asigna un nombre personalizado a la nueva configuración:
    $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' => '',
            )
          )
        );

    en el que host y port especifican la dirección IP y el puerto del servidor de Postgres. Postgres usa el puerto 5432 para las conexiones.
  6. En el portal basado en tar, instala el controlador de Postgres:
    1. Usa Yum para instalar el controlador:
      > yum install php-pdo_pgsql
    2. Edita /etc/php.ini para agregar la siguiente línea en cualquier parte del archivo:
      extension=pgsql.so
    3. Reinicia Apache:
      > service httpd restart
  7. En el portal basado en tar, migra la base de datos del portal al portal basado en RPM:
    1. Accede al portal como administrador.
    2. Selecciona Structure->Migrator (Structure->Migrator) en el menú de Drupal.
    3. Elige la base de datos de origen en el portal basado en tar, default, y la base de datos de destino, custom, en función del archivo settings.php que se muestra arriba.
    4. Haz clic en Migrar. La base de datos basada en tar se migra a la base de datos basada en RPM.
  8. Copia el directorio sites del servidor basado en tar al servidor basado en RPM.
    Las rutas que se muestran en los siguientes pasos se basan en rutas de acceso predeterminadas. Modifícalos según sea necesario para la instalación.
    1. En el portal basado en tar, agrupa el directorio /var/www/html/sites:
      > cd /var/www/html/sites
      > tar -cvzf /tmp/sites.tar.gz .
    2. Copia /tmp/sites.tar.gz en /opt/apigee/apigee-drupal/wwwroot/sites en el servidor basado en RPM.
    3. Desagrupa el directorio de sitios, pero no reemplaces archivos importantes.
      1. Crea una copia de seguridad del archivo settings.php:
        > sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php
      2. Crea una copia de seguridad del directorio files existente:
        > sudo mv /opt/apigee/apigee-drupal/wwwroot/sites/default/files /opt/apigee/apigee-drupal/wwwroot/sites/default/files_old
      3. Crea una copia de seguridad del directorio sites existente:
        > tar -cvzf /tmp/sites_old.tar.gz /opt/apigee/apigee-drupal/wwwroot/sites
      4. Descomprime y descomprime el directorio sites desde el servidor basado en tar:
        > gunzip/opt/apigee/apigee-drupal/wwwroot/sites/sites.tar.gz

        > tar -xvf /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar
      5. Asegúrate de que los archivos copiados tengan la propiedad adecuada:
        > chown -R apigee:apigee /opt/apigee/apigee-drupal/wwwroot/sites/
      6. Restablece el archivo settings.php:
        > sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
      7. Mueve los archivos privados a una ubicación nueva:
        > 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/apigee-apigee-portaldev apigeepportal

  9. En el portal basado en tar, solo si cambiaste la ruta de acceso al directorio raíz web en el portal basado en tar desde la ruta predeterminada de /var/www/html: ejecuta el estado de drush y observa la ruta de acceso de files y archivos privados:
    > cd /var/www/html
    > drush status


    Si los archivos/archivos privados no están en el directorio de RPM, como files.
  10. En el portal basado en RPM, actualiza /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php para establecer las propiedades de la base de datos predeterminada:
    > vi /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php

    Configura la descripción de base de datos predeterminada en settings.php:
    $databases = array (
          'default' =>
          array (
            'default' =>
            array (
              'database' => 'newportaldb',
              'username' => 'apigee',
              'password' => 'postgres',
              'host' => 'localhost', 'port' => '5432',
              'driver' => 'pgsql',
              'prefix' => '',
            )
          )
        );

  11. En el portal basado en RPM, la versión del portal basada en RPM contiene menos módulos de Drupal que la versión basada en tar. Después de migrar al portal basado en RPM, deberás verificar si faltan módulos y, luego, instalarlos según sea necesario.
    1. Instala el missing_module de Drupal que se usa para detectar módulos faltantes:
      > cd /opt/apigee/apigee-drupal/wwwroot
      > drush dl missing_module
      > drush en missing_module
    2. Accede al portal basado en RPM como administrador.
    3. Selecciona Reports > Status reports en el menú Drupal y comprueba si faltan módulos.
    4. Usa ese informe para instalar los módulos que faltan o usa los siguientes comandos:
      > cd /opt/apigee/apigee-drupal/wwwroot
      > drush dl <moduleA> <moduleB> ...
      > drush en <moduleA> <moduleB> ...
    5. Después de habilitar todos los módulos, asegúrate de que los archivos sean propiedad del usuario de Apigee:
      > chown -LR apigee:apigee:apigee: /opt/apigee/apigee-drupal/wwwroot

      Para obtener más información sobre los permisos de archivos, consulta https://www.drupal.org/node/244924.
  12. En el portal basado en RPM, ejecuta update.php en un navegador para quitar los errores de los módulos faltantes:
    1. Accede al portal basado en RPM como administrador.
    2. En el navegador, navega a la siguiente URL:
      http://{portal_IP_or_DNS}:8079/update.php

      en la que portal_IP_or_DNS es la dirección IP o el nombre de dominio del portal basado en RPM.
    3. Sigue las indicaciones en pantalla.
  13. Actualiza las entradas de DNS para que apunten a tu nuevo portal basado en RPM.

    Ten en cuenta que la versión del portal basada en RPM usa el puerto 8079 de forma predeterminada, mientras que la versión basada en tar usa el puerto 80. Asegúrate de usar el número de puerto correcto en tu entrada de DNS. Consulta Configura el puerto HTTP que usa el portal para obtener información sobre cómo usar un puerto diferente.

Se completó la conversión.