Przekształcanie portalu tarowego w portal oparty na RPM

Edge for Private Cloud w wersji 4.18.05

Wersja 4.18.05 portalu Usług dla deweloperów Apigee (lub po prostu portal) nie umożliwia aktualizacji poprzedniej wersji portalu opartej na pliku tar. Wersję portalu na RPM możesz zaktualizować bezpośrednio tylko do wersji 4.18.05.

Możesz jednak przekonwertować wersję portalu opartą na pliku tar na instancję portalu 4.18.05 opartą na pliku RPM. W ramach tego procesu musisz przenieść bazę danych MySQL/MariaDB z dotychczasowego portalu do bazy danych Postgres. Po przekonwertowaniu portal pozostaje w wersji o partycji RPM.

Wiele wcześniejszych wersji portalu opartego na tar można przenieść do portalu opartego na RPM, w tym wersje 4.16.09 i 4.17.01, a nie tylko wersję 4.17.05. Wymagania: portal musi działać w wersji Drupal 7 lub nowszej. Aby sprawdzić wersję Drupala, w menu Drupala kliknij Raporty > Raporty stanu. Wersja Drupala jest widoczna w pierwszym wierszu danych wyjściowych.

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

  • Zainstaluj wersję 4.18.05 portalu opartą na RPM na nowym węźle.
  • Utwórz nową bazę danych Postgres na portalu opartym na RPM.
  • Przejdź do bazy danych portalu z portalu opartego na pliku tar.
  • Skopiuj wszystkie pliki akcesoriów z portalu opartego na tar do portalu opartego na RPM.
  • Zaktualizuj wpisy DNS, tak 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 pliku tar używa portu 80. Upewnij się, że w rekordzie DNS używasz prawidłowego numeru portu. Informacje o używaniu innego portu znajdziesz w sekcji Konfigurowanie portu HTTP używanego przez portal.

Nowy domyślny katalog instalacji 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 w portalu

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

  1. Zainstaluj wersję 4.18.05 portalu opartą na RPM na innym węźle niż Twój portal oparty na pliku tar.
  2. Na portalu opartym na RPM utwórz nową bazę danych Postgres. Następnie przenosisz bazę danych z portalu opartego na pliku tar do tej nowej bazy danych:
    1. Zaloguj się w psql:
      psql -h localhost -p 5432 -U apigee

      Wpisz hasło do serwera PostgreSQL zdefiniowane w parametrze PG_PWD w pliku konfiguracyjnym portalu.

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

    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 pliku tar zainstaluj i skonfiguruj moduł Drupal Migrator:
    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 Drupala kliknij Moduły.
    7. Włącz moduł DBTNG Migrator.
    8. Zapisz konfigurację.
  5. W portalu opartym na tar otwórz plik /var/www/html/sites/default/settings.php, aby dodać drugą konfigurację bazy danych, która będzie wskazywać nowo utworzoną bazę danych w portalu opartym na RPM. Bieżąca konfiguracja bazy danych nosi nazwę „domyślna”. Nazwij nową konfigurację „niestandardowa”, 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 portu 5432 do połączeń.

  6. W portalu opartym na pliku tar zainstaluj sterownik Postgres:
    1. Zainstaluj sterownik za pomocą Yum:
      yum install php-pdo_pgsql
    2. W dowolnym miejscu w pliku /etc/php.ini dodaj ten wiersz:
      extension=pgsql.so
    3. Uruchom ponownie Apache:
      service httpd restart
  7. W portalu opartym na pliku tar przenieś bazę danych portalu do portalu opartego na pliku RPM:
    1. Zaloguj się w portalu jako administrator.
    2. W menu Drupala wybierz Struktura > Migrator.
    3. Wybierz bazę danych źródłowej na portalu tar, default, oraz bazę danych docelowej, custom, na podstawie pliku settings.php pokazanego powyżej.
    4. Kliknij Przenieś. Baza danych w formacie tar jest przenoszona do bazy danych w formacie RPM.
  8. Skopiuj katalog sites z serwera opartego na tar na serwer oparty na RPM. Ścieżki podane w następnych krokach są oparte na ścieżkach domyślnych. W razie potrzeby zmień je w sposób odpowiedni dla swojej instalacji.
    1. W portalu opartym na pliku tar zgrupuj katalog /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. Odłącz 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ą dotychczasowego 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ą dotychczasowego katalogu sites:
        tar -cvzf /tmp/sites_old.tar.gz /opt/apigee/apigee-drupal/wwwroot/sites
      4. 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ą prawidłowe uprawnienia:
        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. Przenoszenie prywatnych plików 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 tar (tylko wtedy, gdy ścieżka do katalogu głównego witryny w portalu opartym na tar została zmieniona z domyślnej ścieżki /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. Na portalu opartym na RPM zaktualizuj parametr /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ą przez Ciebie bazę danych, username i password są zdefiniowane w przypadku niestandardowej bazy danych na portalu opartym na pliku tar, a prefix jest pusty.

  11. W przypadku portalu opartego na RPM wersja portalu opartego na RPM zawiera mniej modułów Drupal niż wersja oparta na pliku tar. Po migracji do portalu opartego na RPM musisz sprawdzić, czy nie brakuje jakichś modułów, i w razie potrzeby je zainstalować.
    1. Zainstaluj moduł Drupala missing_module, 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 Raporty > Raporty stanu i sprawdź, czy brakuje jakichś modułów.
    4. Za pomocą tego raportu zainstaluj 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 sprawdź, czy pliki należą do użytkownika apige:
      chown -LR apigee:apigee /opt/apigee/apigee-drupal/wwwroot

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

  12. Na portalu opartym na RPM uruchom w przeglądarce plik update.php, 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, tak 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 pliku tar używa portu 80. Upewnij się, że w rekordzie DNS używasz prawidłowego numeru portu. Informacje o używaniu innego portu znajdziesz w sekcji Konfigurowanie portu HTTP używanego przez portal.

Konwersja została zakończona.