Przekształcanie portalu tarowego w portal oparty na RPM

Edge dla chmury prywatnej w wersji 4.18.05

Wersja 4.18.05 portalu usług dla programistów Apigee (lub po prostu portalu) nie pozwala na aktualizację poprzedniej wersji portalu opartej na tar. Bezpośrednio do wersji 4.18.05 można zaktualizować tylko wersję portalu opartą na RPM.

Możesz jednak przekonwertować wersję portalu opartą na tar na instancję portalu opartą na RPM w wersji 4.18.05. W ramach tego procesu przenosisz bazę danych MySQL/MariaDB istniejącego portalu do bazy danych Postgres. Po przekonwertowaniu portal pozostanie portalem opartym na RPM.

Możesz przenieść wiele poprzednich wersji portalu opartego na tar do portalu opartego na RPM, w tym wersje 4.16.09 i 4.17.01, a nie tylko wersję 4.17.05. Jedynym wymaganiem jest to, aby portal działał na Drupalu 7 lub nowszym. Aby sprawdzić wersję systemu Drupal, w menu Drupal wybierz Reports > Status Reports (Raporty > Raporty o stanie). Wersja oprogramowania Drupal pojawi się w pierwszym wierszu danych wyjściowych.

Ogólne czynności, które należy wykonać, aby przeprowadzić migrację z portalu opartego na tar do portalu opartego na RPM:

  • Zainstaluj wersję 4.18.05 portalu opartą na RPM w nowym węźle.
  • Utwórz nową bazę danych Postgres na portalu opartym na RPM.
  • Przenieś bazę danych portalu z portalu opartego na plikach tar.
  • Skopiuj wszystkie pliki akcesoriów z portalu opartego na tar do portalu opartego na RPM.
  • Zaktualizuj wpisy DNS, aby wskazywały nowy portal oparty na RPM.

    Pamiętaj, że wersja portalu oparta na RPM domyślnie używa portu 8079, a wersja oparta na tar używa portu 80. Upewnij się, że we wpisie DNS używasz prawidłowego numeru portu. Informacje o używaniu innego portu znajdziesz w artykule Ustawianie portu HTTP używanego przez portal.

Nowy domyślny katalog instalacyjny po konwersji

Po zaktualizowaniu instalacji, która teraz używa Nginx/Postgres, katalog główny zmienił się z:

/opt/apigee/apigee-drupal

do:

/opt/apigee/apigee-drupal/wwwroot

Procedura konwersji portalu

Aby przekonwertować portal na instalację opartą na RPM:

  1. Zainstaluj wersję 4.18.05 portalu opartą na RPM na innym węźle niż portal oparty na tar.
  2. W portalu opartym na RPM utwórz nową bazę danych Postgres. Później przeniesiesz bazę danych z portalu opartego na plikach tar do tej nowej bazy danych:
    1. Zaloguj się w psql:
      psql -h localhost -p 5432 -U apigee

      Wpisz hasło Postgres zdefiniowane przez właściwość PG_PWD w pliku konfiguracji portalu.

    2. Utwórz nową bazę danych Postgres:
      CREATE DATABASE newportaldb;
    3. Zamknij psql:
      \q
  3. W portalu opartym na plikach tar usuń stare moduły, które nie są już używane:

    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. W portalu opartym na tar zainstaluj i skonfiguruj moduł 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. Zaloguj się w portalu jako administrator.
    6. W menu Drupal wybierz Modules (Moduły).
    7. Włącz moduł DBTNG Migrator.
    8. Zapisz konfigurację.
  5. W portalu opartym na tar zmodyfikuj plik /var/www/html/sites/default/settings.php, aby dodać drugą konfigurację bazy danych wskazującą nowo utworzoną bazę danych w portalu opartym na RPM. Bieżąca konfiguracja bazy danych nosi nazwę „default”. Nazwij nową konfigurację „custom”, jak w tym przykładzie:
    $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' => '',
        )
      )
    );

    Gdzie host i port określają adres IP i port serwera Postgres. Postgres używa do połączeń portu 5432.

  6. W portalu opartym na pliku tar zainstaluj sterownik Postgres:
    1. Zainstaluj sterownik za pomocą Yum:
      yum install php-pdo_pgsql
    2. Zmodyfikuj plik /etc/php.ini, aby dodać w dowolnym miejscu ten wiersz:
      extension=pgsql.so
    3. Uruchom ponownie Apache:
      service httpd restart
  7. W portalu opartym na tar przenieś bazę danych portalu do portalu opartego na RPM:
    1. Zaloguj się w portalu jako administrator.
    2. W menu Drupal wybierz Structure->Migrator (Struktura > Migrator).
    3. Wybierz źródłową bazę danych w portalu opartym na tar, default, i docelową bazę danych, custom, na podstawie pliku settings.php pokazanego powyżej.
    4. Kliknij Przenieś. Baza danych oparta na plikach tar jest przenoszona do bazy danych opartej na RPM.
  8. Skopiuj katalog sites z serwera opartego na tar na serwer oparty na RPM. Ścieżki pokazane w poniższych krokach są oparte na ścieżkach domyślnych. W razie potrzeby zmodyfikuj je pod kątem swojej instalacji.
    1. W portalu opartym na pliku tar utwórz pakiet z katalogu /var/www/html/sites:
      cd /var/www/html/sites
      tar -cvzf /tmp/sites.tar.gz .
    2. Skopiuj /tmp/sites.tar.gz do /opt/apigee/apigee-drupal/wwwroot/sites na serwerze opartym na RPM.
    3. Rozpakuj katalog witryn, ale nie zastępuj ważnych plików.
      1. Utwórz kopię zapasową pliku settings.php:
        sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
          /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php
      2. Utwórz kopię zapasową istniejącego katalogu files:
        sudo mv /opt/apigee/apigee-drupal/wwwroot/sites/default/files
          /opt/apigee/apigee-drupal/wwwroot/sites/default/files_old
      3. Utwórz kopię zapasową istniejącego katalogu sites:
        tar -cvzf /tmp/sites_old.tar.gz /opt/apigee/apigee-drupal/wwwroot/sites
      4. Rozpakuj i rozpakuj katalog sites z serwera opartego na tar:
        gunzip /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar.gz
        tar -xvf /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar
      5. Upewnij się, że skopiowane pliki mają odpowiednie uprawnienia własności:
        chown -R apigee:apigee /opt/apigee/apigee-drupal/wwwroot/sites/
      6. Przywróć plik settings.php:
        sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php
          /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
      7. Przenieś pliki prywatne do nowej lokalizacji:
        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. W portalu opartym na pliku tar, tylko jeśli ścieżka do katalogu głównego sieci Web w portalu opartym na pliku tar została zmieniona ze ścieżki domyślnej /var/www/html: uruchom drush status i sprawdź ścieżkę files oraz ścieżkę private files:
    cd /var/www/html
    drush status

    Jeśli pliki lub pliki prywatne nie znajdują się w katalogu sites, skopiuj je na serwer oparty na RPM, jak pokazano powyżej.

  10. W portalu opartym na RPM zaktualizuj /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php, aby ustawić właściwości domyślnej bazy danych:
    vi /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php

    Ustaw domyślny opis bazy danych w pliku settings.php:

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

    Gdzie database określa nową utworzoną bazę danych, username i password są zdefiniowane dla niestandardowej bazy danych w portalu opartym na tar, a prefix jest puste.

  11. W portalu opartym na RPM wersja portalu oparta na RPM zawiera mniej modułów Drupal niż wersja oparta na tar. Po migracji do portalu opartego na RPM musisz sprawdzić, czy nie brakuje żadnych modułów, i w razie potrzeby je zainstalować.
    1. Zainstaluj moduł missing_module Drupala, który służy do wykrywania brakujących modułów:
      cd /opt/apigee/apigee-drupal/wwwroot
      drush dl missing_module
      drush en missing_module
    2. Zaloguj się w portalu opartym na RPM jako administrator.
    3. W menu Drupal wybierz Reports > Status reports (Raporty > Raporty o stanie) i sprawdź, czy nie brakuje żadnych modułów.
    4. Użyj tego raportu, aby zainstalować brakujące moduły, lub użyj tych poleceń:
      cd /opt/apigee/apigee-drupal/wwwroot
      drush dl <moduleA> <moduleB> ...
      drush en <moduleA> <moduleB> ...
    5. Po włączeniu wszystkich modułów upewnij się, że pliki należą do użytkownika apigee:
      chown -LR apigee:apigee /opt/apigee/apigee-drupal/wwwroot

      Więcej informacji o uprawnieniach do plików znajdziesz na stronie https://www.drupal.org/node/244924.

  12. W portalu opartym na RPM uruchom plik update.php w przeglądarce, aby usunąć błędy dotyczące brakujących modułów:
    1. Zaloguj się w portalu opartym na RPM jako administrator.
    2. W przeglądarce otwórz ten adres URL:
      http://portal_IP_or_DNS:8079/update.php

      Gdzie portal_IP_or_DNS to adres IP lub nazwa domeny portalu opartego na RPM.

    3. Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie.
  13. Zaktualizuj wpisy DNS, aby wskazywały nowy portal oparty na RPM.

    Pamiętaj, że wersja portalu oparta na RPM domyślnie używa portu 8079, a wersja oparta na tar używa portu 80. Upewnij się, że we wpisie DNS używasz prawidłowego numeru portu. Informacje o używaniu innego portu znajdziesz w artykule Ustawianie portu HTTP używanego przez portal.

Konwersja została zakończona.