HELP ME to firstly setup a framework/system to deploy WebSphere applications

88 views
Skip to first unread message

maito

unread,
Aug 27, 2012, 1:19:50 AM8/27/12
to puppet...@googlegroups.com
Hi guys.

I'm new to this but have been going throught the Puppet Learning exercises but haven't worked out a framework/system to deploy WebSphere applications. Rather than downloading a Puppet Module (there's none for WebSphere) or whatever I'm trying to do anyway (well I couldn't find it) so I tried to write myself but finding it challenging to set it up so appreciate all the help I can get but first just to set it up and have the POC showcased by this Friday. We can build on it later on.

I started writing a module that calls a Unix script (which invokes Jython) but now I really need your help to FIRST OF ALL set it all up to utilise the master/agent configuration to manage the differences between environments and applications. That is:
* what classes to write
* what parameterised classes to use (which parameters to pass)
* use inheritances
* our environments are different (eg. multiple location of wsadmin.sh to invoke Jython, with different cellnames and sometimes different values for -MapModulesToServers/-MapResRefToEJB/-MapRolesToUsers) so probably need to use some sort of config file (but something with CSV format or maybe other type of delimiter so I can control/populate new apps from there to deploy so it must be self manage rather than having to write new code and that's easy to summarise and later compare to different environment - see below). I may be wrong here in that we may not need this but at least a way to tell Puppet that this application is different especially in certain environments
* use various templates (or use 1 template with variables in there)

#autodeploy.cfg
#type, app, appname, EAR destination, deployWS, ...
ear, Claims, ClaimsEAR, \$(APP_INSTALL_ROOT)/Cell01,,
ear, ClaimsReporting, ClaimsReportingEAR, \$(APP_INSTALL_ROOT)/\$(WAS_CELL_NAME),,
ear, DMOrchestra, dm-orchestra-service-ear, \$(APP_INSTALL_ROOT)/\$(WAS_CELL_NAME), -deployws
jar,
xml,

An example deployment tree structure of a typical WebSphere application where the logic below must iterate through (if it exists):
/mnt/autodeploy/SIT/Claims/claims-admin-ear-5.1.15.ear
/mnt/autodeploy/SIT/ClaimsReporting/ClaimsReporting-claims_reporting_ITPC-107.ear
/mnt/autodeploy/UAT/Claims/claims-admin-ear-5.1.15.ear
/mnt/autodeploy/UAT/ClaimsReporting/ClaimsReporting-claims_reporting_ITPC-107.ear
/mnt/autodeploy/UAT/ContentUploadService
/mnt/autodeploy/UAT/Unknown   [Unknown app not listed in config file so display message]

If you know Jython (WebSphere's scripting language) then great as currently we don't even detect for the cellname. Later on I want to transfer the Unix logic (if/for loop statements) to Puppet/Ruby language, see below for a draft plan.

 
Step



Initial Tool Proposed Tool Additional info
display date


Unix Puppet









for each directory in /mnt/autodeploy
Unix Puppet Values to pass (parameter or defined class)?

for any *.ear/.jar/.xml file
Unix Puppet Need? Array or Puppet template or config file (see below - use cut/awk/sed?)…


if ear file

Unix Puppet



display msg 'Which ear file's backup'





backup old ear file
Jython




identify cell
Jython




update app
Jython




rename/delete new ear file Unix Puppet











else jar file

Unix Puppet





























else xml file

Unix Puppet




















else








display msg 'Nothing found at that directory'

Reply all
Reply to author
Forward
0 new messages