© Bronze Drum Consulting, Inc., 2006. All rights reserved.
DeployAgility Deployment Process Installation and
Setup
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)
/wbsvcs-deploy/
/admin/
[Link]
/scripts/
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
/build/
[Link]
[Link]
.[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
/build/xsl/
[Link]
[Link]
[Link]
[Link]
1
© Bronze Drum Consulting, Inc., 2006. All rights reserved.
[Link]
[Link]
Administrative Directory Security
This directory needs to be readable to the users of the deployment process, but no client
information or developer information should be written into these directories.
• The SSA team will not need any more than read-only access to these directories.
• The “admin” directories should be read-only to everyone other than the
WebSphere team.
• The WebSphere team will only require write or change access to these files in
order to make updates to the files if a new version of the process needs to be
deployed.
Deploy Process Execution Security
[Link] execution authority
To invoke a [Link] script without encountering security issues, the deployment
process passes a file name as an argument. The file name is .[Link].
This file name contains the following:
[Link]=file:/websvcs/properties/[Link]
Passing this file masks the true location of the [Link] file to the casual user
reviewing the build logs. It also enables [Link] to lookup the authentication
information encrypted in the [Link] file and thereby run privileges scripts
(basically all the [Link] scripts executed by [Link]).
wsadmin properties that needs to be set for each user
By default [Link] tries to write files to /temp. However, if root, or another user has
written a file of the same name, then the next user to try to invoke [Link] will fail
because the process won’t be able to write required temporary files. The solution is to
setup each user with his/her own [Link] file. This functionality exists in the
shell scripts provided but I’m not completely happy with how it is currently working. It’s
easy to resolve the issue, it just needs a little attention. Please see the appendix for
listings of the shell scripts and details as to how they setup the [Link]
environment.
Client Instance Directory Structure and Content
The second kind of directory structure I refer to as the “client” or “client instance”
directory. This includes the shell scripts that invoke the deployment process.
1. [Link]
2. [Link]
2
© Bronze Drum Consulting, Inc., 2006. All rights reserved.
3. [Link]
4. [Link]
/backup
/admin
/outputEAR
/artifact
/docs
/assembleEAR
/log
/inputEAR
/inputDeployRequest
/inputDeployStrategy
/inputXML
/inputProp
/inputLIB
/inputJSP
/inputDeployPackage
/outputDeployPackage
/outputPlugin
[Link]
[Link]
[Link]
[Link]
Implementation
1. Jar files: [Link] 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 [Link]. 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
[Link]
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 [Link] and tar files into the /webapps directory
7. tar –xvf [Link]
8. tar –xvf [Link]
9. Now there should be two subdirectories in the /webapps directory
/webapps/wbsvcsDeploy
3
© Bronze Drum Consulting, Inc., 2006. All rights reserved.
/webapps/wbsvcswebapp
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.
Application Instance Configuration
Each application to be deployed needs to be registered in a file named deploy-
[Link]
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 [Link].
<application dp-app-name="bronzeapp096" class-loader-policy="SINGLE">
<app-node sandbox="sand01" test="test01" stress-test="wsqa2" quality-
assurance="wsqa4" production="wsp3" />
<smtp-server sandbox="[Link]" test="[Link].x" stress-
test="[Link]" quality-assurance="[Link]" production="[Link]" />
<web-server sandbox="" test="[Link]" stress-test=" [Link] "
quality-assurance=" [Link] " production=" [Link] " />
<web-server sandbox="" test="" stress-test="" quality-assurance=""
production=" [Link] " />
</application>
<!—additional application profiles listed
Prerequisites
WebSphere Environment Objects Created
Additional Deployment Setup for Specific Applications
1. Symbolic links to shared library created on all servers
2. Symbolic links to shared xml created on all servers
4
© Bronze Drum Consulting, Inc., 2006. All rights reserved.
3. Symbolic links to properties files create on all servers
4. All MQ Connection factories and Queues created
5. All required datasource, jndi names created
6. [Link] created for a specific application deployment profile
7. deploy-profile document updated with the application environment specific
deployment targets.
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.
Deployment Process Installation Procedure
1. Zip file
New Customer Setup
Privileges
1. Group Privilege
2. Shell script privileges for [Link] and [Link]
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 [Link] with the name of the zip package to deploy.
2. Clean all directories.
3. Unzip [Link]
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 [Link]
5
© Bronze Drum Consulting, Inc., 2006. All rights reserved.
Process Overview
Application Deployment Profile
Each application needs to be listed in the [Link] 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
[Link] 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 [Link] file
generated from the data in the [Link] and the [Link] by using
the xsl style sheets referred to in the [Link] build file.
A [Link] build file contains calls for completion of all the tasks required to complete
the build.
6
© Bronze Drum Consulting, Inc., 2006. All rights reserved.
Procedure to Create Individual application instances
1. For each node confirm the following symbolic links exist. To initially setup a
node please run the following scripts in the following order.
2. Run the [Link] scrip [appname] [user] [group]
3. [Please note this is a one time process]
This will create the application home deployment directory and then
untar or unzip the necessary files create the application deploy home directory.
Shell Script
[Link]
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 [Link] files.
[Link]
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.
[Link]
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.
7
© Bronze Drum Consulting, Inc., 2006. All rights reserved.
Automated Deployment Process Standard Directories
Deployment Process Application
Symbolic Link: none
Physical Location: /websvcs-deploy
Differentiated by: not applicable—only one instance per Deployment Manager
Example: /websvcs-deploy
Client Instance Deployment Artifacts
Symbolic Link: none
Physical Location: /webapp-deploy
Differentiated by: ${[Link]}
Example: /webapp-deploy/xxx-trust, /webapp-deploy/xxx-iv
Property Files
Symbolic link: /webapp/property-package
Physical Location:
/opt/WebSphere51/DeploymentManager/config/cells/testNetwork/property-package
Differentiated By: ${[Link]}
Example <target-location> entry in [Link]:
1. /webapp/property-package/ xxx-iv
2. /webapp/property-package/ xxx-trust
Example physical directories: xxx-iv and xxxtrust, respectively
1. /opt/WebSphere51/DeploymentManager/config/cells/testNetwork property-
package / xxx-iv
2. /opt/WebSphere51/DeploymentManager/config/cells/testNetwork/ property-
package/xxx-trust
Shared Library
Symbolic link: /webapp-resource/shared-library
Physical Location:
/opt/WebSphere51/DeploymentManager/config/cells/testNetwork/shared-library
Differentiated By: ${[Link]}/${[Link]}
Example <target-location> entry in [Link]:
1. /webapp/shared-library/xxx-iv /common
2. /webapp/shared-library/SystemAppShrlib
Example physical directories: xxx-iv and xxxtrust, respectively
1. /opt/WebSphere51/DeploymentManager/config/cells/testNetwork/shared-
library/xxx-iv/common
8
© Bronze Drum Consulting, Inc., 2006. All rights reserved.
2. /opt/WebSphere51/DeploymentManager/config/cells/testNetwork/property-
bundle/SystemAppShrlib
XML Files—Shared
Symbolic link: /webapp-resource/xml-package
Physical Location:
/opt/WebSphere51/DeploymentManager/config/cells/testNetwork/xml-package
Differentiated By:${[Link]}/${[Link]}
Example <target-location> entry in [Link]:
1. /webapp/xml-package/xxx-iv/service
2. /webapp/xml-packagexxx-iv/layout
Example physical directories
1. /opt/WebSphere51/DeploymentManager/config/cells/testNetwork/xml-
package/xxx-iv/service
2. /opt/WebSphere51/DeploymentManager/config/cells/testNetwork/xml-
package/xxx-iv/layout
JSP Files
Symbolic link: /webapp-resource/jsp-package
Physical Location:
/opt/WebSphere51/DeploymentManager/config/cells/testNetwork/jsp-package
Differentiated By: ${[Link]}
Example <target-location> entry in [Link]:
3. /webapp/jsp-package/tle-package
4. /webapp/jsp-package/yearend-package
Example physical directories
3. /opt/WebSphere51/DeploymentManager/config/cells/testNetwork/jsp-package/tle-
package
4. /opt/WebSphere51/DeploymentManager/config/cells/testNetwork/xml-
package/yearend-package
Log Files
Symbolic link: none
Physical Location:/weblogs
Differentiated By: ${[Link]}
Example physical directories
1. /weblogs/${appname1}
9
© Bronze Drum Consulting, Inc., 2006. All rights reserved.
2. /weblogs/${appname2}
3. /weblogs/${appname3}
4. /weblogs/${appname4}
10