-
How to create Application Server?
wsadmin> createApplicationServer(‘Node01’, ‘MyServer’)
‘MyServer(cells/Cell01/nodes/Node01/servers/MyServer|server.xml#Server_1402570244015)’
wsadmin> AdminConfig.save()
”
wsadmin> removeServer(‘Node01’, ‘MyServer’)
def createApplicationServer (nodeName, serverName, templateName = None):
if templateName == None:
templateName = 'default'
options = '[-name %s -templateName %s -genUniquePorts true]' % (serverName, templateName)
return AdminTask.createApplicationServer(nodeName, options)
def removeServer (nodeName, serverName):
AdminTask.deleteServer('[-serverName %s -nodeName %s]' % (serverName, nodeName))
-
How to retrieve all Ports used by a Server?
def getServerPorts (nodeName, serverName):
ports = {}
serverIndex = AdminConfig.list("ServerIndex", AdminConfig.getid("/Node:" + nodeName + "/"))
for serverEntry in AdminConfig.list("ServerEntry", serverIndex).splitlines():
if AdminConfig.showAttribute(serverEntry, "serverName") == serverName:
for nep in AdminConfig.list("NamedEndPoint", serverEntry).splitlines():
ports[AdminConfig.showAttribute(nep, "endPointName")] = AdminConfig.showAttribute(AdminConfig.showAttribute(nep, "endPoint"), "port")
return ports
def printServerPorts(nodeName, serverName):
for (name, port) in getServerPorts(nodeName, serverName).items():
print "%40s - %s" %(name, port)
-
How to set Server JVM Classpath
wsadmin> setClasspath(‘server1’, [‘/app/lib/slf4j.jar’,’/app/lib/logback.jar’])
def printClasspath(serverName):
jpd = AdminConfig.list("JavaProcessDef", AdminConfig.getid('/Server:' + serverName))
jvm = toList(AdminConfig.showAttribute(jpd, "jvmEntries"))[0]
print "%s" % AdminConfig.showAttribute(jvm, "classpath")
def setClasspath (serverName, classPaths):
jpd = AdminConfig.list("JavaProcessDef", AdminConfig.getid('/Server:' + serverName))
jvm = toList(AdminConfig.showAttribute(jpd, "jvmEntries"))[0]
for cp in classPaths:
setObjectProperty(jvm, "classpath", cp)
def setObjectProperty (objectId, propertyName, propertyValue):
AdminConfig.modify(objectId, [[propertyName, propertyValue]])
def removeClasspath (serverName):
jpd = AdminConfig.list("JavaProcessDef", AdminConfig.getid('/Server:' + serverName))
jvm = toList(AdminConfig.showAttribute(jpd, "jvmEntries"))[0]
AdminConfig.unsetAttributes(jvm, "classpath")
-
How to install Application?
wsadmin> installApp(‘C:\Sample.war’, ‘node01’, ‘server1’, ‘sample_app’, ‘/sample’, ‘mydomain_vh’)
wsadmin> installApp(‘C:\Sample.ear’, ‘node01’, ‘server1’, ‘sample_app’, vhName=’mydomain_vh’)
def installApp(location, nodeName, serverName, appName, ctxRoot=None, vhName=None):
cellName = AdminConfig.list('Cell')
options = [
'-nopreCompileJSPs',
'-distributeApp',
'-nouseMetaDataFromBinary',
'-deployejb',
'-createMBeansForResources',
'-noreloadEnabled',
'-deployws',
'-validateinstall warn',
'-noprocessEmbeddedConfig',
'-filepermission .*\.dll=755#.*\.so=755#.*\.a=755#.*\.sl=755',
'-noallowDispatchRemoteInclude',
'-noallowServiceRemoteInclude',
'-appname', appInfo["appName"],
'-MapModulesToServers', [
['.*', '.*', 'WebSphere:cell='+cellName+',node='+nodeName+',server='+serverName]
]
]
if vhName != None:
options.append('-MapWebModToVH')
options.append([['.*', '.*', vhName]])
if ctxRoot != None:
options.append('-contextroot')
options.append(ctxRoot)
AdminApp.install(location, options)
-
How to update JVM logs location?
wsadmin> configureJVMLogs(‘server1’, ‘/logs/Websphere/server1/’)
def configureJVMLogs (serverName, logDir):
logDir = logDir.strip()
if (logDir[len(logDir) - 1] != '/'):
logDir = logDir + "/"
server = AdminConfig.getid('/Server:' + serverName)
setFile(AdminConfig.showAttribute(server, 'errorStreamRedirect'), logDir, 'SystemErr.log')
setFile(AdminConfig.showAttribute(server, 'outputStreamRedirect'), logDir, 'SystemOut.log')
def setFile(streamId, logDir, fileName):
AdminConfig.modify(streamId, [['fileName', logDir + fileName]])
-
How to Start/Stop Server
wsadmin> stopServer(‘Node01’, ‘MyServer’)
def startServer(nodeName, serverName):
AdminControl.startServer(serverName, nodeName)
def stopServer(nodeName, serverName):
server = AdminControl.completeObjectName('WebSphere:type=Server,name=%s,*' % serverName)
if len(server) > 0:
AdminControl.stopServer(serverName, nodeName)
else:
print 'Server %s already stopped!' % serverName
def restartServer(nodeName, serverName):
stopServer(nodeName, serverName)
startServer(nodeName, serverName)
-
How to synchronize the Node?
wsadmin> syncNodes(‘node01’)
def syncNodes(nodeName):
nodeSync = AdminControl.completeObjectName('type=NodeSync,node=' + nodeName + ',*')
AdminControl.invoke(nodeSync, 'sync')
def syncAllNodes():
for node in AdminConfig.list('Node').splitlines():
syncNodes(AdminConfig.showAttribute(node, 'name'))
-
How to get the Server State?
wsadmin> showServerStatus(‘server1’)
def showServerStatus(serverName):
serverObj = AdminControl.completeObjectName('WebSphere:type=Server,name=' + serverName + ',*')
if len(serverObj) > 0:
serverStatus = AdminControl.getAttribute(serverObj, 'state')
else:
serverStatus = 'STOPPED'
print "%15s %s" %(serverName, serverStatus)
def showAllServerStatus():
for server in AdminConfig.list('Server').splitlines():
showServerStatus(AdminConfig.showAttribute(server, 'name'))
-
Managing VirtualHost Configuration
wsadmin> createVirtualHostWithAliases(‘myhost’, [[‘host1.com’, 80], [‘secure.host.com’, 443]])
wsadmin> AdminConfig.save()
wsadmin> addVirtualHostAlias(‘myhost’, [[‘host2.com’, 80], [‘secure.host2.com’, 443]])
wsadmin> AdminConfig.save()
wsadmin> printVirtualHostAliases(‘myhost’)
host1.com:80
secure.host.com:443
host2.com:80
secure.host2.com:443
wsadmin> removeVirtualHostAlias(‘myhost’, ‘host1.com’)
wsadmin> AdminConfig.save()
wsadmin> removeVirtualHost(‘myhost’)
wsadmin> AdminConfig.save()
def printAllVirtualHosts():
for vh in toList(AdminConfig.list("VirtualHost")):
print "%s" %(AdminConfig.showAttribute(vh, "name"))
def printAllVirtualHostWithAliases():
for vh in toList(AdminConfig.list("VirtualHost")):
print "%s" %(AdminConfig.showAttribute(vh, "name"))
for al in toList(AdminConfig.showAttribute(vh, 'aliases')):
print "\t%s:%s" %(AdminConfig.showAttribute(al, 'hostname'), AdminConfig.showAttribute(al, 'port'))
def printVirtualHostAliases(virtualHost):
vh = AdminConfig.getid("/VirtualHost:" + virtualHost)
if len(vh) > 0:
for al in toList(AdminConfig.showAttribute(vh, 'aliases')):
print "%s:%s" % (AdminConfig.showAttribute(al, 'hostname'), AdminConfig.showAttribute(al, 'port'))
else:
print "VirtualHost '%s' not found" % (virtualHost)
def createVirtualHost (virtualHostName):
AdminConfig.create("VirtualHost", AdminConfig.list("Cell"), [["name", virtualHostName]])
def createVirtualHostWithAliases (virtualHostName, aliases):
virtualHost = AdminConfig.create("VirtualHost", AdminConfig.list("Cell"), [["name", virtualHostName]])
for alias in aliases:
AdminConfig.create("HostAlias", virtualHost, [["hostname", alias[0]], ["port", alias[1]]])
def addVirtualHostAlias(virtualHostName, aliases):
virtualHost = AdminConfig.getid("/VirtualHost:" + virtualHostName)
for alias in aliases:
AdminConfig.create("HostAlias", virtualHost, [["hostname", alias[0]], ["port", alias[1]]])
def removeVirtualHostAlias(virtualHostName, hostName):
virtualHost = AdminConfig.getid("/VirtualHost:" + virtualHostName)
for alias in toList(AdminConfig.showAttribute(vh, 'aliases')):
if AdminConfig.showAttribute(alias, 'hostname') == hostName:
AdminConfig.remove(alias)
def removeVirtualHost(virtualHostName):
virtualHost = AdminConfig.getid("/VirtualHost:" + virtualHostName)
if len(virtualHost) > 0:
AdminConfig.remove(virtualHost)
else:
print "VirtualHost '%s' not found" % (virtualHost)