Portalı yükseltme

Bu prosedürde, mevcut bir Apigee Geliştirici Hizmetleri portalı (veya kısaca portal) şirket içi kurulumunun nasıl yükseltileceği açıklanmaktadır.

Doğru güncelleme prosedürünü belirleme

Portalı güncellemek için kullandığınız prosedür, mevcut kurulumunuza bağlıdır:

Mevcut yükleme türünüzü belirleme

Mevcut yükleme türünüzden emin değilseniz belirlemek için aşağıdaki komutu kullanın:

  • ls /opt

    Nginx/Postgres kullanıyorsanız şu dizinleri görürsünüz: /opt/apigee ve /opt/nginx.

    Apache/MySQL veya Apache/MariaDB kullanıyorsanız bu dizinler mevcut olmamalıdır.

  • /opt/apigee/apigee-service/bin/apigee-all status

    Nginx/Postgres kullanıyorsanız aşağıdaki çıkışı görürsünüz:

    + apigee-service
    apigee-drupal-devportal status
    OK: apigee-drupal-devportal is up and running
    + apigee-service apigee-lb status
    apigee-service: apigee-lb: OK
    + apigee-service apigee-postgresql status
    apigee-service: apigee-postgresql: OK
  • apachectl -S

    Apache/MySQL veya Apache/MariaDB kullanıyorsanız bu komut, portalın web kök dizinini şu biçimde döndürmelidir:

    *:80
    192.168.56.102 (/etc/httpd/conf/vhosts/devportal.conf:1)

Varsayılan yükleme dizini

Yükseltme işlemi, portalın şu konumda yüklü olduğunu varsayar:

  • 4.17.05 ve sonraki sürümler: /opt/apigee/apigee-drupal/wwwroot
  • 4.17.05'ten önce: /opt/apigee/apigee-drupal (Nginx) veya /var/www/html (Apache)

Portalı varsayılan dizine yüklemediyseniz aşağıdaki prosedürde yer alan yolları, yükleme dizininizi kullanacak şekilde değiştirin.

Desteklenen yükseltme sürümleri

Bu yükseltme prosedürü, OPDK-17-01.x ve sonraki portal sürümlerinde desteklenir.

Portal sürümünüzü belirlemek için aşağıdaki URL'yi bir tarayıcıda açın:

http://yourportal.com/buildInfo

Güncellemeden önce

Mevcut yüklemelerde, Drupal çekirdeğindeki veya özel olmayan modüllerdeki herhangi bir kodu değiştirdiyseniz değişikliklerinizin üzerine yazılır. Buna, .htaccess üzerinde yapmış olabileceğiniz değişiklikler de dahildir. /sites dizininin dışındaki her şeyin Drupal'a ait olduğunu varsaymalısınız. Bu kuralın istisnası robots.txt dosyasıdır. Bu dosya web kökünde mevcutsa sizin için korunur.

Yükleme işlemine devam etmeden önce Drupal web kök dizininizin tamamını yedekleyin. Aşağıda açıklanan yükleme adımlarını uyguladıktan sonra özelleştirmelerinizi yedekten geri yükleyebilirsiniz.

RPM'leri kullanarak portalı yükseltme

Bir düğümdeki portal RPM'sini güncellemek için:

  1. Drupal dizinine geçin (varsayılan olarak /opt/apigee/apigee-drupal):
    cd /opt/apigee/apigee-drupal
  2. Drupal veritabanı örneğinizi yedekleyin. pg_dump komutu, veritabanının bir kopyasını oluşturur:
    pg_dump --dbname=devportal --host=host_IP_address --username=drupaladmin
      --password --format=c > /tmp/portal.dmp

    Burada:

    • devportal, portal yükleme yapılandırma dosyasındaki PG_NAME özelliği tarafından belirtilen veritabanı adıdır.
    • host_IP_address, portal düğümünün IP adresidir.
    • drupaladmin, portal yükleme yapılandırma dosyasındaki DRUPAL_PG_USER özelliği tarafından belirtildiği şekilde, portalın veritabanına erişmek için kullandığı Postgres kullanıcı adıdır.

    Portal yükleme yapılandırma dosyasındaki DRUPAL_PG_PASS özelliği tarafından tanımlanan Postgres kullanıcı şifresi istenir.

    Daha sonra yedekten geri yükleme yapmak isterseniz aşağıdaki komutu kullanın:

    pg_restore --clean --dbname=devportal --host=localhost  --username=apigee < /tmp/portal.dmp
  3. Drupal web kök dizininizin tamamının yedeğini alın. Varsayılan yükleme konumu /opt/apigee/apigee-drupal olsa da bunu değiştirmiş olabilirsiniz.

    Bu dizinin konumundan emin değilseniz genel dosya sisteminin ve özel dosya sistemi yolunun konumunu belirlemek için (sonraki adımda) drush status komutunu veya Drupal menüsündeki Configuration > Media > File (Yapılandırma > Medya > Dosya) girişini kullanın.

  4. /opt/apigee/data/apigee-drupal-devportal/private klasöründeki dosyaların yedeğini oluşturun.
  5. Drupal'ı bakım moduna ayarlama:
    1. Drupal menüsünde Configuration'ı (Yapılandırma) seçin.
    2. Configuration (Yapılandırma) sayfasında, Development (Geliştirme) bölümünde Maintenance mode'u (Bakım modu) seçin.
    3. Siteyi bakım moduna al kutusunu işaretleyin.
    4. Kullanıcıların bakım sırasında göreceği bir mesaj girin.
    5. Save configuration'ı (Yapılandırmayı kaydet) seçin.
  6. Edge apigee-setup yardımcı programını yükleme bölümünde açıklandığı şekilde SELinux'u devre dışı bırakın.
  7. /opt dizinine geçin:
    cd /opt
  8. İnternet bağlantısı olan bir sunucuda yükseltme yapmak için:
    1. Edge 4.19.06 bootstrap_4.19.06.sh dosyasını /tmp/bootstrap_4.19.06.sh dizinine indirin:
      curl https://software.apigee.com/bootstrap_4.19.06.sh -o /tmp/bootstrap_4.19.06.sh
    2. Edge 4.19.06 apigee-service yardımcı programını ve bağımlılıklarını yükleyin:
      sudo bash /tmp/bootstrap_4.19.06.sh apigeeuser=uName apigeepassword=pWord

      uName ve pWord, Apigee'den aldığınız kullanıcı adı ve şifredir. pWord parametresini atlarsanız bu parametreyi girmeniz istenir.

      Yükleyici, varsayılan olarak Java 1.8'in yüklü olup olmadığını kontrol eder. Java'yı yüklemeden devam etmek için "C" seçeneğini kullanabilirsiniz.

  9. İnternet bağlantısı olmayan bir sunucuda yükseltme yapmak için:
    1. Yerel Apigee deposu oluşturma bölümünde açıklandığı gibi yerel bir 4.19.06 deposu oluşturun.
    2. apigee-service'i bir .tar dosyasından yüklemek için:
      1. Yerel depoya sahip düğümde, yerel depoyu /opt/apigee/data/apigee-mirror/apigee-4.19.06.tar.gz adlı tek bir .tar dosyası halinde paketlemek için aşağıdaki komutu kullanın:
        /opt/apigee/apigee-service/bin/apigee-service apigee-mirror package
      2. .tar dosyasını Edge'i güncellemek istediğiniz düğüme kopyalayın. Örneğin, yeni düğümdeki /tmp dizinine kopyalayın.
      3. Yeni düğümde, dosyayı /tmp dizinine açın:
        tar -xzf apigee-4.19.06.tar.gz

        Bu komut, .tar dosyasını içeren dizinde repos adlı yeni bir dizin oluşturur. Örneğin, /tmp/repos.

      4. Edge apigee-service yardımcı programını ve bağımlılıklarını /tmp/repos adresinden yükleyin:
        sudo bash /tmp/repos/bootstrap_4.19.06.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos

        Bu komutta, depolar dizininin yolunu eklediğinize dikkat edin.

    3. Nginx web sunucusunu kullanarak apigee-service'i yüklemek için:
      1. Nginx web sunucusunu, Edge apigee-setup yardımcı programını yükleme bölümündeki "Nginx web sunucusunu kullanarak depodan yükleme" bölümünde açıklandığı şekilde yapılandırın.
      2. Uzak düğümde, Edge bootstrap_4.19.06.sh dosyasını /tmp/bootstrap_4.19.06.sh dizinine indirin:
        /usr/bin/curl http://uName:pWord@remoteRepo:3939/bootstrap_4.19.06.sh
          -o /tmp/bootstrap_4.19.06.sh

        Burada uName ve pWord, depo için yukarıda belirlediğiniz kullanıcı adı ve şifre, remoteRepo ise depo düğümünün IP adresi veya DNS adıdır.

      3. Uzak düğümde Edge apigee-service yardımcı programını ve bağımlılıkları yükleyin:
        sudo bash /tmp/bootstrap_4.19.06.sh apigeerepohost=remoteRepo:3939
          apigeeuser=uName apigeepassword=pWord apigeeprotocol=http://

        uName ve pWord, depo kullanıcı adı ve şifresidir.

  10. apigee-setup yardımcı programını güncellemek için apigee-service komutunu kullanın:
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup update
  11. Postgres düğümünüzde update yardımcı programını çalıştırın:
    /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile

    configFile, Postgres veritabanını yüklemek için kullandığınız yapılandırma dosyasıdır. Yapılandırma dosyasıyla ilgili tek şart, yapılandırma dosyasının "apigee" kullanıcısı tarafından erişilebilir veya okunabilir olmasıdır.

  12. Aşağıdaki komutu çalıştırarak PHP RPM'leri kaldırın ancak Apigee Drupal Devportal RPM bağımlılıklarını kaldırmayın:
    rpm -ev --nodeps $(rpm -qa | grep php | awk '{printf "%s ", $1}')

    Bu komut şunları yapar:

    • rpm -ev --nodeps, RPM'leri kaldırır ancak bağımlılıklarını kaldırmaz.
    • rpm -qa, kaldırılacak RPM'lerin listesini oluşturur.
    • grep php, tüm PHP RPM'lerini arar.
    • awk '{printf "%s ", $1}', RPM adlarını yazdırır.
  13. Portalı güncellemek için düğümünüzde update yardımcı programını çalıştırın:
    /opt/apigee/apigee-setup/bin/update.sh -c dp -f configFile

    Burada configFile, portalı yüklemek için kullandığınız yapılandırma dosyasıdır. Yapılandırma dosyasıyla ilgili tek şart, yapılandırma dosyasının "apigee" kullanıcısı tarafından erişilebilir veya okunabilir olmasıdır.

  14. Bir tarayıcı penceresinde aşağıdaki URL'yi açarak Drupal'ın update.php komut dosyasını çalıştırın:
    http://portal_IP_DNS:8079/update.php
  15. Bakım modunu devre dışı bırakma:
    1. Drupal menüsünde Configuration'ı (Yapılandırma) seçin.
    2. Configuration (Yapılandırma) sayfasında, Development (Geliştirme) bölümünde Maintenance mode'u (Bakım modu) seçin.
    3. Siteyi bakım moduna al kutusunun işaretini kaldırın.
    4. Save configuration'ı (Yapılandırmayı kaydet) seçin.

Güncellemeden sonra kök dizinin şu şekilde olduğunu unutmayın:

/opt/apigee/apigee-drupal/wwwroot

Yükseltme işlemi tamamlandı. Apigee update yardımcı programı Drupal sürümünüzü düşürdüyse Drupal yükseltme yardımcı programını yeniden çalıştırmanız gerekebilir. Daha fazla bilgi için Drupal yükseltmesini yeniden çalıştırma başlıklı makaleyi inceleyin.

Drupal yükseltmesini yeniden çalıştırma

Edge for Private Cloud'u yükseltmek için Apigee update yardımcı programını çalıştırmak Drupal sürümünüzün eski sürüme geçmesine neden olursa Drupal yükseltmesini yeniden yükleyin. Private Cloud güncellemeleri arasında yalnızca Drupal'ı yükselttiyseniz bu durumla karşılaşabilirsiniz.

Örneğin:

  1. Drupal 7.59'u içeren Edge for Private Cloud'un 4.18.05 sürümünü kullanıyordunuz.
  2. Gerekli bir güvenlik güncellemesi nedeniyle Drupal'ı 7.64 sürümüne yükselttiniz.
  3. Şu anda Private Cloud'u Drupal 7.61'i içeren 4.19.01 sürümüne yükseltiyorsunuz.

Bu örnekte de görüldüğü gibi, Apigee update yardımcı programı tarafından kullanılan Drupal sürümü, en son Drupal yükseltmesine referans vermeyebilir. Bu nedenle, Drupal yüklemenizi daha sonraki sürüme döndürmek için Drupal yükseltmenizi yeniden çalıştırmanız gerekir.