Saturday, March 15, 2014

Moving OHS Instance with Movement Scripts


Menurut Oracle Enterprise Deployment Guide, sebaiknya Oracle HTTP Server (OHS) di-deploy di web tier yang terpisah dengan application tier. Konfigurasi demikian memiliki keuntungan terutama dari sisi keamanan. Jika mesin OHS terkompromi, backend application dan backend database masih aman karena berada pada tier yang berbeda (subnet isolation, firewall, dsb.) Namun tidak jarang pada masa development mesin yang tersedia terbatas, sehingga OHS 'terpaksa' di-deploy di mesin yang sama dengan backend application. Lalu bagaimana ketika pindah ke production environment?

Oracle Enterprise Deployment Topology

Oracle menyediakan movement scripts untuk memfasilitasi tipe kebutuhan seperti ini. Sebelum menjalankan script tersebut, pastikan file dan script berikut ini tersedia:
  • $ORACLE_COMMON/jlib/cloningclient.jar
  • $ORACLE_COMMON/bin/copyBinary.sh
  • $ORACLE_COMMON/bin/pasteBinary.sh
  • $ORACLE_COMMON/bin/copyConfig.sh
  • $ORACLE_COMMON/bin/extractMovePlan.sh
  • $ORACLE_COMMON/bin/pasteConfig.sh
  • $ORACLE_COMMON/bin/obfuscatePassword.sh

Dengan mengasumsikan $JAVA_HOME$MW_HOME dan $ORACLE_HOME untuk komponen OHS telah tersedia pada masing-masing mesin, berikut adalah langkah-langkahnya.
  1. Topologi yang akan menjadi bahan percobaan kita adalah sebuah domain yang bernama  Blog_Domain terdiri dari AdminServer, WLS_App1, dan ohs1.
    Farm_Blog_Domain
  2. Pada saat semua komponen sedang berjalan, buat archive web1.jar yang berisi konfigurasi dari OHS_Instance1 dengan script copyConfig.sh.
    [oracle@machine1 ~] $ cd /u01/app/oracle/product/fmw/oracle/common/bin
    [oracle@machine1 bin] $ ./copyConfig.sh -javaHome /u01/app/oracle/product/fmw/jrockit-jdk1.6.0 -archiveLoc ~/web1.jar -sourceInstanceHomeLoc /u02/app/oracle/admin/OHS_Instance1 -logDirLoc ~/copyConfigLogs
  3. Extract movement plan dari archive web1.jar pada machine1.
    [oracle@machine1 ~] $ cd /u01/app/oracle/product/fmw/oracle/common/bin
    [oracle@machine1 bin] $ ./extractMovePlan.sh -javaHome /u01/app/oracle/product/fmw/jrockit-jdk1.6.0 -archiveLoc ~/web1.jar -planDirLoc ~/web_plans -logDirLoc ~/extractMovementPlanLogs
  4. Script tersebut akan menghasilkan moveplan.xml di dalam direktori ~/web_plans yang berisi konfigurasi dari OHS instance yang telah kita copy sebelumnya. Kita dapat melakukan perubahan seperti property ServerName, WebLogicHost, WebLogicPort, dsb yang mungkin perlu kita sesuaikan ketika OHS instance kita pindahkan ke mesin lain. Apapun yang perlu diubah, pastikan hanya mengubah bagian yang ditandai dengen READ_WRITE. Pada artikel ini saya tidak akan melakukan perubahan selain mengubah ServerName dari machine1.nostratech.com menjadi machine2.nostratech.com
    ...
    <configProperty>
      <name>ServerName</name>
      <value>machine2.nostratech.com</value>
      <itemMetadata>
        <dataType>STRING</dataType>
        <scope>READ_WRITE</scope>
      </itemMetadata>
    </configProperty>
    ...
  5. Copy web1.jar dan direktori yang berisi moveplan.xml ke machine2. Clone konfigurasi OHS_Instance1 pada machine1 ke WT_Instance1 pada machine2 dengan menggunakan script pasteConfig.sh.
    [oracle@machine2 ~] $ cd /u01/app/oracle/product/fmw/oracle/common/bin
    [oracle@machine2 bin] $ ./pasteConfig.sh -javaHome /u01/app/oracle/product/fmw/jrockit-jdk1.6.0 -archiveLoc ~/web1.jar -movePlanLoc ~/web_plans/moveplan.xml -targetOracleHomeLoc /u01/app/oracle/product/fmw/web -targetInstanceHomeLoc /u02/app/oracle/admin/WT_Instance1 -targetInstanceName webtier1 -logDirLoc ~/pasteConfigLogs
  6. Daftarkan webtier1 ke Blog_Domain dengan menggunakan script opmnctl pada machine2.
    [oracle@machine2 ~] $ cd /u02/app/oracle/admin/WT_Instance1/bin
    [oracle@machine2 bin] $ ./opmnctl registerinstance -adminHost blogadminvhn.nostratech.com -adminPort 7001
  7. Topologi sekarang menjadi seperti berikut:
    Farm_Blog_Domain setelah webtier1 didaftarkan 
  8. Hapus web1 pada Blog_Domain dengan menggunakan script opmnctl pada machine1.
    [oracle@machine1 ~] $ cd /u02/app/oracle/admin/OHS_Instance1/bin
    [oracle@machine1 bin] $ ./opmnctl unregisterinstance
  9. Status topologi final adalah sebagai berikut:
    Farm_Blog_Domain setelah web1 dihapus
Selesai! Jika tidak menggunakan movement script, efeknya akan lebih terasa jika jumlah OHS yang ingin dipindahkan cukup banyak. Movement script tidak hanya dapat memindahkan Oracle instance, namun juga dapat digunakan untuk memindahkan Middleware binaries dan konfigurasi WebLogic domain. Selamat mencoba ya!

No comments:

Post a Comment