Convertire un portale basato su tar in un portale basato sull'RPM

Edge per Private Cloud v4.18.01

La release 4.18.01 del portale Servizi per gli sviluppatori non consente di aggiornare una versione precedente basata su tar del portale. Puoi aggiornare direttamente una versione del portale basata su RPM solo alla versione 4.18.01.

Tuttavia, puoi convertire una versione basata su tar del portale in un'istanza del portale basata su RPM 4.18.01. Nell'ambito di questo processo, eseguirai la migrazione di MySQL/MariaDB del portale esistente a un database Postgres. Una volta convertito, il tuo portale rimane come quello basato su RPM.

Puoi eseguire la migrazione di molte versioni precedenti del portale basato su tar a un portale basato su RPM, incluse le versioni 4.16.09 e 4.17.01, non solo la versione 4.17.05. Gli unici requisiti sono che il portale esegua Drupal 7 o versioni successive. Per verificare la tua versione di Drupal, seleziona Report > Report di stato nel menu Drupal. La versione di Drupal viene visualizzata nella prima riga dell'output.

I passaggi generali che utilizzi per eseguire la migrazione da un portale basato su tar a un portale basato su RPM sono:

  • Installa la versione 4.18.01 basata su RPM del portale per gli sviluppatori su un nuovo nodo.
  • Crea un nuovo database Postgres sul portale basato su RPM.
  • Esegui la migrazione del database del portale dal portale basato su tar.
  • Copia tutti i file degli accessori dal portale basato su tar al portale basato su RPM.
  • Aggiorna le voci DNS in modo che rimandino al nuovo portale basato su RPM.

    Nota che la versione basata su RPM del portale utilizza la porta 8079 per impostazione predefinita, mentre la versione basata su tar utilizza la porta 80. Assicurati di utilizzare il numero di porta corretto nella voce DNS. Vedi Impostare la porta HTTP utilizzata dal portale per informazioni sull'utilizzo di una porta diversa.

Nuova directory di installazione predefinita dopo la conversione

Dopo aver aggiornato un'installazione che ora utilizza Nginx/Postgres, la directory root è stata modificata da:

/opt/apigee/apigee-drupal

a:

/opt/apigee/apigee-drupal/wwwroot

Procedura di conversione del portale

Per convertire il portale in un'installazione basata su RPM:

  1. Installa la versione 4.18.01 basata su RPM del portale per gli sviluppatori su un nodo diverso dal portale basato su tar.
  2. Sul portale basato su RPM, crea un nuovo database Postgres. In seguito, eseguirai la migrazione del database dal portale basato su tar a questo nuovo database:
    1. Accedi a psql:
      >psql -h localhost -p 5432 -U apigee

      Inserisci la password Postgres definita dalla proprietà PG_PWD nel file di configurazione del portale.
    2. Crea un nuovo database Postgred:
      # CREATE DATABASE newportaldb;
    3. Esci da psql:
      # \q
  3. Nel portale basato su tar, rimuovi i moduli precedenti che non vengono più utilizzati:
    > cd /var/www/html
    > drush sql-query --db-prefix "DELETE from {system} where name = 'apigee_account' AND type = 'module';"
    > drush sql-query "DELETE from {system'apigee_query;" rimappagcc.

  4. Sul portale basato su tar, installa e configura il modulo 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. Accedi al portale come amministratore.
    6. Seleziona Moduli nel menu Drupal.
    7. Attiva il modulo DBTNG Migrator.
    8. Salva la configurazione.
  5. Nel portale basato su tar, modifica /var/www/html/sites/default/settings.php per aggiungere una seconda configurazione del database che rimandi al database appena creato sul portale basato su RPM. L'attuale configurazione del database è denominata predefinita. Assegna alla nuova configurazione il nome personalizzato:
    $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' => '',
            )
          )
        );

    dove host e port specificano l'indirizzo IP e la porta del server Postgres. Postgres utilizza la porta 5432 per le connessioni.
  6. Sul portale basato su tar, installa il driver Postgres:
    1. Utilizza Yum per installare il driver:
      > yum install php-pdo_pgsql
    2. Modifica /etc/php.ini per aggiungere la seguente riga in qualsiasi punto del file:
      extension=pgsql.so
    3. Riavvia Apache:
      > riavvio httpd del servizio
  7. Sul portale basato su tar, esegui la migrazione del database del portale al portale basato su RPM:
    1. Accedi al portale come amministratore.
    2. Seleziona Struttura->Migrator nel menu Drupal.
    3. Scegli il tuo database di origine sul portale basato su tar, default e il database di destinazione, personalizzato, in base al file settings.php mostrato sopra.
    4. Fai clic su Esegui la migrazione. Viene eseguita la migrazione del database basato su tar al database basato su RPM.
  8. Copia la directory sites dal server basato su tar al server basato su RPM.
    I percorsi mostrati nei seguenti passaggi si basano su percorsi predefiniti. Modificale in base alle esigenze dell'installazione.
    1. Nel portale basato su tar, raggruppa la directory /var/www/html/sites:
      > cd /var/www/html/sites
      > tar -cvzf /tmp/sites.tar.gz .
    2. Copia /tmp/sites.tar.gz in /opt/apigee/apigee-drupal/wwwroot/sites sul server basato su RPM.
    3. Separa la directory dei siti, ma non sovrascrivere i file importanti.
      1. Esegui il backup del file settings.php:
        > sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php
      2. Esegui il backup della directory files esistente:
        > sudo mv /opt/apigee/apigee-drupal/wwwroot/sites/default/files /opt/apigee/apigee-drupal/wwwroot/sites/default/files_old
      3. Esegui il backup della directory sites esistente:
        > tar -cvzf /tmp/sites_old.tar.gz /opt/apigee/apigee-drupal/wwwroot/sites
      4. Decomprimi e decomprimi la directory sites dal server basato su tar:
        > gunzip /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar.gz

        > tar -xvf /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar
      5. Assicurati che i file copiati abbiano la proprietà corretta:
        > chown -R apigee:apigee /opt/apigee/apigee-drupal/wwwroot/sites/
      6. Ripristina il file settings.php:
        > sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
      7. Sposta i file privati nella nuova posizione:
        > 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/apigee/files/apigeer>

  9. Nel portale basato su tar, solo se hai modificato il percorso della directory principale web sul portale basato su tar dal percorso predefinito di /var/www/html: esegui drush status e controlla il percorso files e il percorso dei file privati:
    > cd /var/www/html
    > stato drush


    Se i file/file basati su RPM non vengono mostrati nella directory RPM sopra,
  10. Sul portale basato su RPM, aggiorna /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php per impostare le proprietà del database predefinito:
    > vi /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php

    Imposta la descrizione del database predefinito in impostazioni.php, username-based

    $databases = array (
          'default' =>
          array (
            'default' =>
            array (
              'database' => 'newportaldb',
              'username' => 'apigee',
              'password' => 'postgres',
              'host' => 'localhost', 'port' => '5432',
              'driver' => 'pgsql',
              'prefix' => '',
            )
          )
        );
  11. Sul portale basato su RPM, la versione basata su RPM contiene meno moduli Drupal rispetto alla versione basata su tar. Dopo aver eseguito la migrazione al portale basato su RPM, devi verificare la presenza di eventuali moduli mancanti e installarli, se necessario.
    1. Installa il modulo missing_module Drupal utilizzato per rilevare i moduli mancanti:
      > cd /opt/apigee/apigee-drupal/wwwroot
      > drush dl missing_module
      > drush en missing_module
    2. Accedi al portale basato su RPM come amministratore.
    3. Seleziona Report > Report di stato nel menu Drupal e verifica se sono presenti moduli mancanti.
    4. Utilizza questo report per installare eventuali moduli mancanti o utilizza i seguenti comandi:
      > cd /opt/apigee/apigee-drupal/wwwroot
      > drush dl <moduleA> <moduleB> ...
      > drush en <moduleA> <moduleB> ...
    5. Dopo aver abilitato tutti i moduli, assicurati che i file siano di proprietà dell'utente apigee:
      > chown -LR apigee:apigee /opt/apigee/apigee-drupal/wwwroot

      Per ulteriori informazioni sulle autorizzazioni dei file, consulta https://www.drupal.org/node/244924.
  12. Sul portale basato su RPM, esegui update.php in un browser per rimuovere eventuali errori sui moduli mancanti:
    1. Accedi al portale basato su RPM come amministratore.
    2. Nel browser, vai al seguente URL:
      http://{portal_IP_or_DNS}:8079/update.php

      dove portal_IP_or_DNS è l'indirizzo IP o il nome di dominio del portale basato su RPM.
    3. Segui le istruzioni sullo schermo.
  13. Aggiorna le voci DNS in modo che rimandino al nuovo portale basato su RPM.

    Nota che la versione basata su RPM del portale utilizza la porta 8079 per impostazione predefinita, mentre la versione basata su tar utilizza la porta 80. Assicurati di utilizzare il numero di porta corretto nella voce DNS. Vedi Impostare la porta HTTP utilizzata dal portale per informazioni sull'utilizzo di una porta diversa.

La conversione è stata completata.