Peran Node Manager terhadap WebLogic domain sangat penting. Beberapa fungsinya telah saya sampaikan juga pada artikel saya sebelumnya mengenai WebLogic Whole Server Migration. Setelah beberapa kali melakukan konfigurasi WebLogic domain secara lengkap dan terinspirasi dari 2 artikel dari Middleware Magic (di sini dan di sini), saya mengompilasi cara yang sederhana dan dinamis untuk mempersiapkan Node Manager. Dengan menjalankan prosedur berikut, kita dapat menjalankan proses AdminServer tanpa menggunakan perintah nohup. ;) Prosedurnya dapat dibagi menjadi 2 prosedur utama, yaitu persiapan Node Manager dan asosiasikan Node Manager dengan WebLogic Domain.
Persiapan Node Manager
Node Manager secara default letaknya menyatu dengan letak instalasi WebLogic. Untuk menyederhanakan administrasi dan operasional, kita akan memisahkan letak Node Manager home. Selain itu kita juga akan mempersiapkan file-file tambahan yang dibutuhkan Node Manager. Berikut adalah langkah-langkahnya:
- Buat Node Manager home (NODEMGR_HOME) baru di luar instalasi WebLogic (MW_HOME).
- Copy 2 Shell script setWLSEnv.sh dan startNodeManager.sh dari lokasi instalasi WebLogic Server (MW_HOME/wlserver_10.3/server/bin) ke Node Manager home.
- Edit script startNodeManager.sh, sesuaikan variabel NODEMGR_HOME dengan lokasi Node Manager home yang baru pada langkah 1. Saya biasanya menggunakan lokasi /u02/app/oracle/admin/nodemanager sebagai NODEMGR_HOME.
... NODEMGR_HOME="/u02/app/oracle/admin/nodemanager" ...
- Buat file nodemanager.domains di dalam NODEMGR_HOME yang berisi pasangan nama WebLogic domain dengan lokasi domain-nya di filesystem, contohnya seperti berikut ini:
# DOMAIN_NAME=DOMAIN_HOME Access_Domain=/u01/app/oracle/admin/Access_Domain/aserver/Access_Domain
- Buat file nodemanager.properties di dalam NODEMGR_HOME yang berisi property-property yang diperlukan untuk menjalankan Node Manager. File property tersebut bisa juga di-copy dari lokasi default-nya jika sudah tersedia. Bagian terakhir dari file properties diberi tanda comment (#), kecuali jika kita perlu mengkonfigurasi fitur WebLogic Server Migration.
# Minimal Node Manager properties DomainsFile=/u02/app/oracle/admin/nodemanager/nodemanager.domains LogLimit=0 PropertiesVersion=10.3 DomainsDirRemoteSharingEnabled=false javaHome=/u01/app/oracle/product/fmw/jrockit-jdk1.6.0 AuthenticationEnabled=true NodeManagerHome=/u02/app/oracle/admin/nodemanager JavaHome=/u01/app/oracle/product/fmw/jrockit-jdk1.6.0/jre LogLevel=INFO DomainsFileEnabled=true StartScriptName=startWebLogic.sh ListenAddress= NativeVersionEnabled=true ListenPort=5556 LogToStderr=true SecureListener=true LogCount=1 DomainRegistrationEnabled=true StopScriptEnabled=false QuitEnabled=false LogAppend=true StateCheckInterval=500 CrashRecoveryEnabled=false StartScriptEnabled=true LogFile=/u02/app/oracle/admin/nodemanager/nodemanager.log LogFormatter=weblogic.nodemanager.server.LogFormatter ListenBacklog=50 # WebLogic Server Migration #Interface=eth0 #NetMask=255.255.255.0 #UseMACBroadcast=true
- Buat script Python NodeManager.py di dalam NODEMGR_HOME yang isinya adalah script WSLT untuk menjalankan proses Node Manager.
# Start Node Manager startNodeManager()
- Buat script Python AdminServer.py di dalam NODEMGR_HOME yang isinya adalah script WLST untuk connect dengan proses Node Manager dan menjalankan proses WebLogic AdminServer.
# Import necessary libraries from java.io import FileInputStream import java.lang import os import string # Load WebLogic Domain properties file propInputStream = FileInputStream("AdminServer.properties") configProps = Properties() configProps.load(propInputStream) # Connect to Node Manager userConfigFile = configProps.get("nm.config") userKeyFile = configProps.get("nm.key") host = configProps.get("nm.host") port = configProps.get("nm.port") nmType = configProps.get("nm.type") domainName = configProps.get("domain.name") domainDir = configProps.get("domain.dir") nmConnect(userConfigFile=userConfigFile, userKeyFile=userKeyFile, host=host, port=port, domainName=domainName, domainDir=domainDir, nmType=nmType) # Start WebLogic Server instance serverName = configProps.get("server.name") nmStart(serverName)
- Persiapkan file properties AdminServer.properties yang akan dibaca oleh script AdminServer.py untuk menjalankan AdminServer.
# Node Manager connection info nm.config=/u02/app/oracle/admin/nodemanager/security/NodeManagerConfig.properties nm.key=/u02/app/oracle/admin/nodemanager/security/NodeManagerKey.secure nm.host=localhost nm.port=5556 nm.type=ssl # WebLogic Domain info domain.name= Access_Domain domain.dir=/u01/app/oracle/admin/Access_Domain/aserver/Access_Domain # WebLogic instance name server.name=AdminServer
- Jalankan proses Node Manager dan pastikan tidak ada error yang terjadi di log output-nya.
oracle@dev.nostratech.com:~ $ cd /u02/app/oracle/admin/nodemanager oracle@dev.nostratech.com:/u02/app/oracle/admin/nodemanager $ . ./setWLSEnvh.sh oracle@dev.nostratech.com:/u02/app/oracle/admin/nodemanager $ java weblogic.WLST NodeManager.py
Asosiasi Node Manager dengan WebLogic Domain
Ketika melakukan konfigurasi sebuah WebLogic Domain, Node Manager juga akan terkonfigurasi secara otomatis. Namun karena pada bagian sebelumnya konfigurasi Node Manager dipisahkan dari WebLogic Domain, maka kita harus mengkonfigurasi username dan password Node Manager untuk terhubung ke WebLogic Domain. Lakukan langkah-langkah berikut:
- Login ke Oracle WebLogic Administration Console.
- Pilih $NAMA_DOMAIN -> Security -> Advanced. Ubah Node Manager username dan password pada halaman tersebut. Simpan perubahan dengan memilih Save.
Setup Node Manager Credential - Login ke AdminServer melalui WLST, kemudian asosiasikan dengan Node Manager.
wls:/offline> connect('weblogic', 'secret', 't3://accessadminvhn.nostratech.com:7001') wls:/Access_Domain/serverConfig> nmEnroll('/u01/app/oracle/admin/Access_Domain/aserver/Access_Domain')
- Buat sebuah Machine yang merupakan representasi dari Node Manager tersebut.
Konfigurasi Machine OAMHOST1 - Test status Node Manager melalui WebLogic Administration Console dengan memilih Environment -> Machines -> $MACHINENAME -> Monitoring -> Node Manager Setup.
Reachable Node Manager - Generate Node Manager credential dalam bentuk yang terenkripsi melalui WLST, sesuaikan lokasi direktori dengan yang tertera pada file AdminServer.properties.
wls:/offline> nmConnect('nodemanager', 'secret', 'localhost', '5556', 'Access_Domain', '/u01/app/oracle/admin/Access_Domain/aserver/Access_Domain', 'ssl') wls:/nm/Access_Domain> storeUserConfig('/u02/app/oracle/admin/nodemanager/security/NodeManagerConfig.properties', '/u02/app/oracle/admin/nodemanager/security/NodeManagerKey.secure', 'true')
Menjalankan AdminServer melalui Node Manager
- Setup environment variable yang diperlukan.
oracle@dev.nostratech.com:~ $ export JAVA_OPTIONS="-DDomainRegistrationEnabled=true"
- Jalankan Node Manager sebagai daemon.
oracle@dev.nostratech.com:~ $ cd /u02/app/oracle/admin/nodemanager oracle@dev.nostratech.com:/u02/app/oracle/admin/nodemanager $ java weblogic.WLST NodeManager.py
- Jalankan AdminServer via Node Manager.
oracle@dev.nostratech.com:/u02/app/oracle/admin/nodemanager $ java weblogic.WLST AdminServer.py
Biarkan perintah tersebut berjalan, dan jika tidak ada error seharusnya AdminServer sudah berjalan secara daemon. Sekian pembahasan untuk kali ini, jika ada isu dalam menjalankan langkah-langkah tersebut, silahkan tinggalkan komentar Anda.
Semoga bermanfaat! :)
No comments:
Post a Comment