Overview
Administrative Directory Structure and Content
The implementation of the deployment process consists of build and configuration files
located in what I refer to as an Admin directory.
(wsadmin owner)
/websvcs-deploy/
/admin/
createWebappDirs.sh
/scripts/
appendLib.py
regenplugin.jacl
restoreShrlib.jacl
saveShrlib.jacl
setClassLoaderScope.py
SyncAllNode.py
SyncNode.py
/build/
MasterBuild.properties
MailLogger.properties
.deploy.system.properties
controller.xml
build.xml
inputProp.xml
deploy-profile.xml
inputEAR.xml
inputXML.xml
inputLIB.xml
inputJSP.xml
inputWAR.xml
inputDeployPackage.xml
utility.xml
deploymentRequest.dtd
/build/xsl/
SharedXML.xsl
SharedLibrary.xsl
Property.xsl
NotifyList.xsl
DeployRequestTransForm.xsl
phaseIVInstance.xsl
2
Application.xsl
2004, 2005, 2006 Bronze Drum Consulting, Inc. All Rights Reserved. Bronze Drum, DeployAgility and the Bronze Drum and
©
4. deployPackage.sh
/backup
/admin
/outputEAR
/artifact
/docs
/assembleEAR
/log
/inputEAR
/inputDeployRequest
/inputDeployStrategy
/inputXML
/inputProp
/inputLIB
/inputJSP
/inputDeployPackage
/outputDeployPackage
/outputPlugin
packagePhaseIV.sh
processRequest.sh
promoteApplication.sh
deployPackage.sh
Implementation
1. Jar files: NetComponents.jar needs to be in
/opt/WebSphere51/DeploymentManager/lib. It should be owned by root. Note
that this jar file needs to have read and execute privileges available to all in order
to be used by the build process.
2. In the test environment (wsdmt1) Create a tar file of the directory
/webapps/wbsvcsDeploy and name it deployadmin.tar. This tars up the master
files associated with the deployment process into one tar.
3. Create a tar file of the directory /webapps/wbsvcswebapp and name it deploy
instance.tar
4. Copy these two tar files to the target deployment manager server to the
/home/wasadmin directory. For example we will need to deploy the tar files to
the Stress Test, QA, and Production deployment manager servers.
5. On the target deployment manager server, if it does not already exist, create a
directory called /webapps
6. Copy the DeployAdmin.tar and tar files into the /webapps directory
7. tar –xvf DeployAdmin.tar
8. tar –xvf DeployInstance.tar
9. Now there should be two subdirectories in the /webapps directory
/webapps/wbsvcsDeploy
/webapps/wbsvcswebapp
2004, 2005, 2006 Bronze Drum Consulting, Inc. All Rights Reserved. Bronze Drum, DeployAgility and the Bronze Drum and
©
10. For the directory /webapps/wbsvcswebapp change the ownership so that the SSA
team and wasadmin user will have read/write access to the subdirectories:
inputEAR, inputDeployPackage, backup, inputDeployRequest, inputXML,
inputProp, inputLIB
11. Change the name of the ./wbsvcswebapp to upm or to the specific application
instance needed by performing a mv wbsvcswebapp upm. The directory name
should correspond to a specific application instance and should be all lowercase
letters. Examples might include pdfapp, bpsamon, bpsconnect.
12. Repeat steps 8 – 11 until you have created all the application instance directories
that you need for the time being.
This file uses the display name of the application to uniquely identify the application.
And this display name is used by the deployment process to lookup the target servers
and nodes for each environment (sandbox, test, qa, production) to which the
application needs to be deployed. Below please find an example. This file is located
in the Admin directory in the build subdirectory and is named deploy-profile.xml.
2004, 2005, 2006 Bronze Drum Consulting, Inc. All Rights Reserved. Bronze Drum, DeployAgility and the Bronze Drum and
©
Prerequisites
WebSphere Environment Objects Created
2004, 2005, 2006 Bronze Drum Consulting, Inc. All Rights Reserved. Bronze Drum, DeployAgility and the Bronze Drum and
©
Name
Specifies the name of the installed (or deployed) application. Application names
must be unique within a cell and cannot contain characters that are not allowed in
object names.
Privileges
1. Group Privilege
2. Shell script privileges for processRequest.sh and promoteApplication.sh
Uses Cases
1. Shared library, xml, properties with url provider, ear file
2. Install and rollback of all, and install and rollback of a specific declared
component
QA
1. Run deployProcess.sh with the name of the zip package to deploy.
2. Clean all directories.
3. Unzip deployPackage.zip
4. Run deploy script and confirm all QA environment specific behavior
5. Problem determination procedures
6. Can the script me made friendly in terms of calling attention to specific issues?
Production
1. Unzip deployPackage.zip
2004, 2005, 2006 Bronze Drum Consulting, Inc. All Rights Reserved. Bronze Drum, DeployAgility and the Bronze Drum and
©
Process Overview
Application Deployment Profile
Each application needs to be listed in the deploy-profile.xml document in the admin
directory in the wsdmt1 environment. The deployment process looks up all the target
servers for each environment using this profile and it matches the name provided in the
deploymentRequest.xml with the name listed in the deploy-profile. Without a correct
match the process will not know how or where to deploy an application.
Once this information has been compiled the build process creates the deploy.xml file
generated from the data in the deploy-profile.xml and the deployRequest.xml by using
the xsl style sheets referred to in the build.xml build file.
A deploy.xml build file contains calls for completion of all the tasks required to complete
the build.
2004, 2005, 2006 Bronze Drum Consulting, Inc. All Rights Reserved. Bronze Drum, DeployAgility and the Bronze Drum and
©
Implementation Plan
1. Move current version into QA Stress Test environment and test deployment
process in QA.
2. Create info record for deploying the code to Stress Test Environment, QA
Environment
(owner wsadmin)
Shell Script
packageAppFromTemplate.sh
This script takes an ear file name, minus the ear file extension, an xml data file, and an
xslt stylesheet and g enerates an ant script which calls tasks required to create each of the
ear files and deploymentStrategy.xml files.
processRequest.sh
This script takes the name of a deployment request xml file as its only argument. The file
needs to be located in the inputDeployRequest directory or the file will not be found. The
script needs to be run from the /webapps/${appname}/ directory or it will not be able to
find the resources it requires to run.
promoteApplication.sh
This script looks in the local inputDeployPackage directory, zips all the files together, and
then sends out an email indicating the package name and stating that it is ready for
deployment to the next environment, such as QA or Production. The script needs to be
run from its home directory or it will not be able to find the resources it requires to run.
2004, 2005, 2006 Bronze Drum Consulting, Inc. All Rights Reserved. Bronze Drum, DeployAgility and the Bronze Drum and
©
Property Files
Symbolic link: /webapp/property-package
Physical Location:
/opt/WebSphere51/DeploymentManager/config/cells/upmt1Network/property-package
Differentiated By: ${package.name}
Shared Library
Symbolic link: /webapp-resource/shared-library
Physical Location:
/opt/WebSphere51/DeploymentManager/config/cells/upmt1Network/shared-library
Differentiated By: ${app.name}/${package.name}
2. /opt/WebSphere51/DeploymentManager/config/cells/upmt1Network/property-
bundle/SystemAppShrlib
XML Files—Shared
Symbolic link: /webapp-resource/xml-package
Physical Location:
/opt/WebSphere51/DeploymentManager/config/cells/upmt1Network/xml-package
Differentiated By:${app.name}/${package.name}
JSP Files
Symbolic link: /webapp-resource/jsp-package
Physical Location:
/opt/WebSphere51/DeploymentManager/config/cells/upmt1Network/jsp-package
Differentiated By: ${package.name}
Log Files
Symbolic link: none
Physical Location:/weblogs
Differentiated By: ${app.name}
2. /weblogs/${appname2}
3. /weblogs/${appname3}
4. /weblogs/${appname4}
Deployment Manager
2004, 2005, 2006 Bronze Drum Consulting, Inc. All Rights Reserved. Bronze Drum, DeployAgility and the Bronze Drum and
©