Everytime I work on new project there is a need of creation of the clustered domain. From my past experiences collected all basic requirements together list them over here.
- AdminServer configuration includes Name, Listen Address, ListenPort
- User credentials username, password
- After writing basic domain going for create machine which include Name, type of machine
- Nodemaager includes NMTypes such as plain, ssl, hosted node, nodemanager port
- Managed servers have Name, ListenAddress, ListenPort, set machine
- Cluster includes name, ClusterAddress, Servers part of the cluster interesting part here
Assumptions for this task:
In the script as per my convenience some of them are hardcoded, My hardcoded values:
WLST Configuring WebLogic Cluster Domain |
In the script as per my convenience some of them are hardcoded, My hardcoded values:
- Managed Server list
- Cluster list
In this script lots of Python sequence functions are used.
Lets begin the fun of WLST HERE...
- List index,
- Dictionary keys
- String startwith
Lets begin the fun of WLST HERE...
# purpose: Create the domian with the one Admin Server along with the # two managed servers in each cluster. app_cluster, web_cluster # Assumption here all managed servers runs on the same machine # Modified date: 07-April-2017 # File name : create_clusterdomain.py # Dependencies : cluster_domain.properties # Note this names of managed servers, cluster, hostname all hard coded # def printline(s): print "-"*10 + s loadProperties('/u01/app/software/scripts/pybin/cluster_domain.properties') # Created a Cluster and assaign the servers to that cluster # Create a domain from the weblogic domain template WLHOME=os.environ["WL_HOME"] readTemplate(WLHOME+'/common/templates/wls/wls.jar') printline("reading template completed") # Configure the Administration Servers with out using SSL Port cd('Servers/AdminServer') set('ListenAddress',WLSAdminIP) set('ListenPort', int(AdminPort)) printline("AdminServer ListenAddress, port set") cd('/') cd('Security/base_domain/User/weblogic') cmo.setPassword(AdminPasswd) printline("User credentials set") setOption('OverwriteDomain', 'true') writeDomain(DomainPath+'/'+DomainName) printline("Domain creation done.") closeTemplate() readDomain(DomainPath+'/'+DomainName) machines={'myM100':'192.168.33.100', 'myM110':'192.168.33.110'} for m in machines.keys(): cd('/') create(m, 'UnixMachine') cd('Machine/' + m) create(m, 'NodeManager') cd('NodeManager/' + m) set('ListenAddress', machines[m]) set('NMType','ssl') # Create the Managed Servers and configuration them ManagedServerList=['app01','app02','web01','web02'] app_ca="" web_ca="" for s in ManagedServerList: cd('/') create(s,'Server') cd('Server/'+s) i=ManagedServerList.index(s) lp=8101+i set('ListenPort', int(lp)) j=int(s[-1]) m=machines.keys()[j-1] set('ListenAddress', machines[m]) set('Machine', m) if s.startswith('app') : if j%2==0: app_ca+=',' app_ca+=machines[m]+':'+str(lp) elif s.startswith('web'): if j%2==0: web_ca+=',' web_ca+=machines[m]+':'+str(lp) printline("Managed server :"+s+" created") printline("configured managed servers done.") printline("app cluster address:"+app_ca) printline("Web cluster address:"+web_ca) # Create and Configure a Cluster and assian the Managed Servers to that cluster clusters={'app_clustr1':'app01,app02', 'web_clustr1':'web01,web02'} clstrs=clusters.keys() for c in clstrs: cd('/') create(c,'Cluster') assign('Server', clusters[c],'Cluster', c) cd('Clusters/'+c) set('ClusterMessagingMode','multicast') if c.startswith('app'): set('ClusterAddress',app_ca) elif c.startswith('web'): set('ClusterAddress',web_ca) set('MulticastAddress','237.0.0.101') set('MulticastPort',7200+clstrs.index(c)) printline("cluster "+c+" created") printline("Configured clusters and assigned managed servers done.") #Write the domain and Close the domain template updateDomain() closeDomain() printline("Task completed successfully, exiting!!!") exit()Now the properties file which you can enhance with your limitations
WLSAdminIP=192.168.33.100 AdminPort=8001 AdminPasswd=welcome1 DomainPath=/u01/app/oracle/domains DomainName=uat_domain
Lets have the execution screen for you:
Sir,
ReplyDeleteYour technical articles are always fantastic and this is on of them..
Thanks for keep Sharing the useful scripts and articles..
Hey Chandu, Thanks for nice comment it boosted me up!
Deletethank for information , excellent blog in weblogica important senories
ReplyDeleteweblogic best online training in hyderabad,weblogic training in usa , weblogic online training in usa
This comment has been removed by the author.
ReplyDeleteHello sir
ReplyDeleteThank you so much for your contribution towards WLST SCRIPTS .......
Great Article… I love to read your articles because your writing style is too good, its is very very helpful for all of us and I never get bored while reading your article because, they are becomes a more and more interesting from the starting lines until the end. weblogic administrator training
ReplyDeleteCongratulations! That article is so good and help me a lot.
ReplyDelete