WebLogic 11g: WebLogic Scripting Tool (WLST)

Overview

* A command line scripting tools for WebLogic domain management:
– create
– manage
– monitor
* Based on Jython

WSLT Online

* Is a JMX client
* Equivalent to Admin Console
– needs running Admin Server and active WebLogic domain
* Can
– view performance data
– manage security data
* Can NOT
– modify config data for managed servers

WSLT Offline

* Provides read/write access to config data
* Should NOT be used on active WebLogic domain (ignored/overwritten otherwise)
* Can
– create domain templates
– create a new domain based on existing templates
– extend an existing, inactive domain
* Can NOT
– view performance data
– modify security data

Command Modes

Interactice Mode

Script Mode

* Script needs .py file extension
* Can
– automate server config and application deployment
– apply same config setings across multiple nodes of a topology
– script scheduling
– automate complex procedures
– config an application in a hands free data center

Embedded Mode

* WLST interpreter is instantiated in Java code.
* WLST commands and scripts are then run from within Java code.

Secure WLST Connection

Admin Port

* WLST connects to a server instance via admin port.
* Default to 9002
* SSL enabled

Secure Access from WLST Online

* Use user name and password as defined in the active WebLogic security realm.
– From command line

connect('weblogic', 'welcome1', 'localhost:7001')

– From password file

# Prepare password files
connect('weblogic', 'welcome1', 'localhost:7001')
storeUserConfig('c:/myFiles/myuserconfigfile.secure',
                          'c:/myFiles/myuserkeyfile.secure') 
 
# Use password files
connect(userConfigFile='c:/myfiles/myuserconfigfile.secure',
userKeyFile='c:/myfiles/myuserkeyfile.secure')

– Use boot.properties file

# boot.properties file in current directory
connect()

Main Steps for Using WLST in Interactive or Script Mode

Invoking WLST

* Execute the appropriate shell script for your environment.
– UNIX

cd WL_HOME/common/bin
./wlst.sh

– Windows

cd WL_HOME\common\bin
wlst.cmd

* Execute the java weblogic.WLST command.

java 
   [ -Dweblogic.security.SSL.ignoreHostnameVerification=true
   -Dweblogic.security.TrustKeyStore=DemoTrust ]
   [ -Dweblogic.security.JavaStandardTrustKeyStorePassPhrase=password]
    [ -Dweblogic.security.CustomTrustKeyStoreFileName=filename
     -Dweblogic.security.TrustKeystoreType=jks
    [ -Dweblogic.security.CustomTrustKeyStorePassPhrase=password]]
    [ -Dweblogic.security.SSL.hostnameVerifier=classname]
   weblogic.WLST 
   [ -loadProperties propertyFilename ]
   [ -skipWLSModuleScanning ]
   [ [-i] filePath.py ]

– Example:

jjava weblogic.WLST c:/Oracle/Middleware/wlserver/templates/scripts/wlst/distributeQueues.py
 
java -Dweblogic.security.SSL.ignoreHostnameVerification=true
-Dweblogic.security.TrustKeyStore=DemoTrust weblogic.WLST
 c:/Oracle/Middleware/wlserver/templates/scripts/wlst/distributeQueues.py

* Run a WLST script.
– Use Java command line:

java weblogic.WLST c:/Oracle/Middleware/wlserver/templates/scripts/wlst/distributedQueues.py

– From WLST interactive mode:

wls:offline> execfile('c:/Oracle/Middleware/wlserver/templates/scripts/wlst/distributedQueues.py')

* Execute the WebLogic Scripting Tool command from the Start menu (Windows only).

* Running WLST from Ant.
– Set env:
WL_HOME\server\bin\setWLSEnv.cmd (or setWLSEnv.sh on UNIX)
– Import task:

<taskdef name="wlst" 
   classname="weblogic.ant.taskdefs.management.WLSTTask" />

– Examples

<target name="configServer"> 
   <wlst debug="false" failOnError="false" executeScriptBeforeFile="true"  
    fileName="./myscript.py"> 
       <classpath>
         <pathelement location="${my.classpath.dir}"/>
       </classpath>
       <script>
         connect('weblogic','welcome1','t3://localhost:7001') 
     </script> 
   </wlst> 
</target>
<path id="my.classpath">
    <pathelement location="${my.classpath.dir}"/>
</path>
 
<target name="loop"> 
  <wlst debug="true" executeScriptBeforeFile="false" 
    fileName="./myscript.py" failOnError="true"> 
    <classpath>
        <pathelement location="${my.classpath.dir}"/>
    </classpath>
    <script replaceProperties="true">
       print 'In the target loop' 
       connect('${admin.user}','${admin.password}','t3://localhost:7001') 
       svrs = cmo.getServers() 
       print 'Servers in the domain are' 
       for x in svrs: print x.getName()
    </script>
  </wlst> 
</target>
<target name="error"> 
   <wlst debug="true" failOnError="false"> 
      <script>print thisWillCauseNameError</script> 
   </wlst> 
</target>

Exiting WLST

wls:/mydomain/serverConfig> exit() 
Exiting WebLogic Scripting Tool ...

Syntax for WLST Commands

* Case sensitive.
* Enclose arguments in single or double quotes.
* Escape character: \
* String as is: r
– Example: readTemplate(r’c:\userdomains\mytemplates\mytemplate.jar’)
* If you need to cd to a management object whose name includes a forward slash (/), surround the object name in parentheses.
– For example:cd(‘JMSQueue/(jms/REGISTRATION_MDB_QUEUE)’)

Redirecting Error and Debug Output to a File

* To redirect stdout, stderr to a file:

redirect(outputFile,[toStdOutAsWell])

* Stop redirect:

stopRedirect()

* Example:

wls:/mydomain/serverConfig> redirect('./logs/wlst.log') 

Getting Help

help
help('online')
help('offline')
help('get*')

Importing WLST as a Jython Module

* Invoke WLST:

c:\>java weblogic.WLST
wls:/(offline)>

* Use the writeIniFile command to convert WLST definitions and method declarations to a .py file:

wls:/(offline)> writeIniFile(“wl.py”)
The Ini file is successfully written to wl.py

* Open a new command shell and invoke Jython directly by entering the following command:

c:\>java org.python.util.jython

* Import the WLST module into your Jython module using the Jython import command.

>>>import wl

*Now you can use WLST methods in the module. For example, to connect WLST to a server instance:

wl.connect(‘username’,’password’)
….

Customizing WLST

*

Adding Integrated Help for Custom Commands

* Define help text entries:

_ShortDescription
_Description
_Example
_Syntax

* Example:

navigate_ShortDescription=\
     Lists commands for navigating the hierarchy of beans.
navigate_Description=\
     \n Navigates the hierarchy of beans and controls the prompt display. \n

*

*

*

References

* Oracle® Fusion Middleware Oracle WebLogic Scripting Tool 11g Release 1 (10.3.4)
* Oracle® Fusion Middleware WebLogic Scripting Tool Command Reference 11g Release 1 (10.3.4)

This entry was posted in weblogic11g. Bookmark the permalink.

One Response to WebLogic 11g: WebLogic Scripting Tool (WLST)

Leave a Reply

Your email address will not be published. Required fields are marked *


*

This site uses Akismet to reduce spam. Learn how your comment data is processed.