TAR-basiertes Portal in ein RPM-basiertes Portal umwandeln

Edge for Private Cloud v4.18.05

Mit der Version 4.18.05 des Apigee Developer Services-Portals (oder einfach das Portal) können Sie keine vorherige tar-basierte Version des Portals aktualisieren. Sie können nur eine RPM-basierte Version des Portals direkt auf 4.18.05 aktualisieren.

Sie können jedoch eine tar-basierte Version des Portals in eine RPM-basierte Instanz des Portals mit der Version 4.18.05 konvertieren. Dabei migrieren Sie die MySQL-/MariaDB-Datenbank des vorhandenen Portals zu einer PostgreSQL-Datenbank. Nach der Umwandlung bleibt Ihr Portal ein RPM-basiertes Portal.

Sie können viele frühere Versionen des tar-basierten Portals zu einem RPM-basierten Portal migrieren, einschließlich der Versionen 4.16.09 und 4.17.01, nicht nur Version 4.17.05. Die einzige Voraussetzung ist, dass auf dem Portal Drupal 7 oder höher ausgeführt wird. Wenn Sie Ihre Drupal-Version prüfen möchten, wählen Sie im Drupal-Menü Berichte > Statusberichte aus. Die Drupal-Version wird in der ersten Zeile der Ausgabe angezeigt.

Die allgemeinen Schritte für die Migration von einem tar-basierten Portal zu einem RPM-basierten Portal sind:

  • Installieren Sie die RPM-basierte Version 4.18.05 des Portals auf einem neuen Knoten.
  • Erstellen Sie eine neue Postgres-Datenbank im RPM-basierten Portal.
  • Migrieren Sie die Portaldatenbank aus dem tar-basierten Portal.
  • Kopieren Sie alle Zubehördateien aus dem tar-basierten Portal in das RPM-basierte Portal.
  • Aktualisieren Sie die DNS-Einträge so, dass sie auf das neue RPM-basierte Portal verweisen.

    Hinweis: Für die RPM-basierte Version des Portals wird standardmäßig Port 8079 verwendet, während für die tar-basierte Version Port 80 verwendet wird. Achten Sie darauf, dass Sie in Ihrem DNS-Eintrag die richtige Portnummer verwenden. Informationen zur Verwendung eines anderen Ports finden Sie unter HTTP-Port festlegen, der vom Portal verwendet wird.

Neues Standardinstallationsverzeichnis nach der Umstellung

Nach der Aktualisierung einer Installation, die jetzt Nginx/Postgres verwendet, hat sich das Stammverzeichnis von folgendem Pfad in diesen geändert:

/opt/apigee/apigee-drupal

in

/opt/apigee/apigee-drupal/wwwroot

Verfahren zur Portalumwandlung

So konvertieren Sie das Portal in eine RPM-basierte Installation:

  1. Installieren Sie die RPM-basierte Version 4.18.05 des Portals auf einem anderen Knoten als Ihrem tar-basierten Portal.
  2. Erstellen Sie im RPM-basierten Portal eine neue Postgres-Datenbank. Später migrieren Sie die Datenbank aus dem tar-basierten Portal in diese neue Datenbank:
    1. Melden Sie sich in psql an:
      psql -h localhost -p 5432 -U apigee

      Geben Sie Ihr Postgres-Passwort ein, wie es in der Portalkonfigurationsdatei in der PG_PWD-Eigenschaft definiert ist.

    2. Neue Postgres-Datenbank erstellen:
      CREATE DATABASE newportaldb;
    3. Beenden Sie psql:
      \q
  3. Entfernen Sie im tar-basierten Portal alte Module, die nicht mehr verwendet werden:

    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. Im tar-basierten Portal das Drupal-Modul „Migrator“ installieren und konfigurieren:
    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. Melden Sie sich als Administrator im Portal an.
    6. Wählen Sie im Drupal-Menü Module aus.
    7. Aktivieren Sie das Modul DBTNG Migrator.
    8. Speichern Sie die Konfiguration.
  5. Bearbeiten Sie im tar-basierten Portal /var/www/html/sites/default/settings.php, um eine zweite Datenbankkonfiguration hinzuzufügen, die auf die neu erstellte Datenbank im RPM-basierten Portal verweist. Die aktuelle Datenbankkonfiguration heißt „default“. Benennen Sie die neue Konfiguration wie im folgenden Beispiel zu sehen als „benutzerdefiniert“:
    $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' => '',
        )
      )
    );

    Dabei geben host und port die IP-Adresse und den Port des Postgres-Servers an. Postgres verwendet Port 5432 für Verbindungen.

  6. Installieren Sie den Postgres-Treiber im tar-basierten Portal:
    1. Installieren Sie den Treiber mit Yum:
      yum install php-pdo_pgsql
    2. Bearbeiten Sie /etc/php.ini und fügen Sie die folgende Zeile an einer beliebigen Stelle in die Datei ein:
      extension=pgsql.so
    3. Starten Sie Apache neu:
      service httpd restart
  7. Migrieren Sie im tar-basierten Portal die Portaldatenbank zum RPM-basierten Portal:
    1. Melden Sie sich als Administrator im Portal an.
    2. Wählen Sie im Drupal-Menü Struktur -> Migrator aus.
    3. Wählen Sie im tar-basierten Portal die Quelldatenbank default und die Zieldatenbank custom anhand der oben gezeigten Datei settings.php aus.
    4. Klicken Sie auf Migrieren. Die tar-basierte Datenbank wird in die RPM-basierte Datenbank migriert.
  8. Kopieren Sie das Verzeichnis sites vom tar-basierten Server auf den RPM-basierten Server. Die in den folgenden Schritten gezeigten Pfade basieren auf Standardpfaden. Passen Sie sie nach Bedarf an Ihre Installation an.
    1. Bündeln Sie das Verzeichnis /var/www/html/sites im tar-basierten Portal:
      cd /var/www/html/sites
      tar -cvzf /tmp/sites.tar.gz .
    2. Kopieren Sie /tmp/sites.tar.gz auf den RPM-basierten Server./opt/apigee/apigee-drupal/wwwroot/sites
    3. Entfernen Sie das Sites-Verzeichnis aus dem Bündel, überschreiben Sie aber keine wichtigen Dateien.
      1. Sichern Sie die Datei settings.php:
        sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
          /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php
      2. Sichern Sie das vorhandene Verzeichnis files:
        sudo mv /opt/apigee/apigee-drupal/wwwroot/sites/default/files
          /opt/apigee/apigee-drupal/wwwroot/sites/default/files_old
      3. Sichern Sie das vorhandene Verzeichnis sites:
        tar -cvzf /tmp/sites_old.tar.gz /opt/apigee/apigee-drupal/wwwroot/sites
      4. Entpacken Sie das Verzeichnis sites vom tar-basierten Server und enttarnen Sie es:
        gunzip /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar.gz
        tar -xvf /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar
      5. Achten Sie darauf, dass die kopierten Dateien die richtige Eigentümerschaft haben:
        chown -R apigee:apigee /opt/apigee/apigee-drupal/wwwroot/sites/
      6. Stellen Sie die Datei settings.php wieder her:
        sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php
          /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
      7. Private Dateien an einen neuen Speicherort verschieben:
        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. Im tar-basierten Portal nur, wenn Sie den Pfad zum Web-Stammverzeichnis im tar-basierten Portal vom Standardpfad /var/www/html geändert haben: Führen Sie drush status aus und sehen Sie sich den Pfad files und den Pfad private files an:
    cd /var/www/html
    drush status

    Wenn sich Dateien/private Dateien nicht im Verzeichnis sites befinden, kopieren Sie sie wie oben beschrieben auf den RPM-basierten Server.

  10. Aktualisieren Sie im RPM-basierten Portal /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php, um die Eigenschaften der Standarddatenbank festzulegen:
    vi /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php

    Legen Sie die Standarddatenbankbeschreibung in settings.php fest:

    $databases = array (
      'default' =>
      array (
        'default' =>
        array (
          'database' => 'newportaldb',
          'username' => 'apigee',
          'password' => 'postgres',
          'host' => 'localhost', 'port' => '5432',
          'driver' => 'pgsql',
          'prefix' => '',
        )
      )
    );

    Dabei gibt database die von Ihnen erstellte neue Datenbank an, username und password sind wie für die benutzerdefinierte Datenbank im tar-basierten Portal definiert und prefix ist leer.

  11. Im RPM-basierten Portal enthält die RPM-basierte Version des Portals weniger Drupal-Module als die tar-basierte Version. Nach der Migration zum RPM-basierten Portal müssen Sie nach fehlenden Modulen suchen und sie gegebenenfalls installieren.
    1. Installieren Sie die Drupal-missing_module, mit der fehlende Module erkannt wurden:
      cd /opt/apigee/apigee-drupal/wwwroot
      drush dl missing_module
      drush en missing_module
    2. Melden Sie sich als Administrator im RPM-basierten Portal an.
    3. Wählen Sie im Drupal-Menü Berichte > Statusberichte aus und prüfen Sie, ob Module fehlen.
    4. Verwenden Sie diesen Bericht, um fehlende Module zu installieren, oder verwenden Sie die folgenden Befehle:
      cd /opt/apigee/apigee-drupal/wwwroot
      drush dl <moduleA> <moduleB> ...
      drush en <moduleA> <moduleB> ...
    5. Nachdem Sie alle Module aktiviert haben, prüfen Sie, ob der apigee-Nutzer Inhaber der Dateien ist:
      chown -LR apigee:apigee /opt/apigee/apigee-drupal/wwwroot

      Weitere Informationen zu Dateiberechtigungen finden Sie unter https://www.drupal.org/node/244924.

  12. Führen Sie im RPM-basierten Portal update.php in einem Browser aus, um Fehler zu fehlenden Modulen zu beheben:
    1. Melden Sie sich als Administrator im RPM-basierten Portal an.
    2. Rufen Sie im Browser die folgende URL auf:
      http://portal_IP_or_DNS:8079/update.php

      Dabei ist portal_IP_or_DNS die IP-Adresse oder der Domainname des RPM-basierten Portals.

    3. Folgen Sie der Anleitung auf dem Bildschirm.
  13. Aktualisieren Sie die DNS-Einträge so, dass sie auf Ihr neues RPM-basiertes Portal verweisen.

    Hinweis: Für die RPM-basierte Version des Portals wird standardmäßig Port 8079 verwendet, während für die tar-basierte Version Port 80 verwendet wird. Achten Sie darauf, dass Sie in Ihrem DNS-Eintrag die richtige Portnummer verwenden. Informationen zur Verwendung eines anderen Ports finden Sie unter HTTP-Port festlegen, der vom Portal verwendet wird.

Die Umwandlung ist abgeschlossen.