Download as pdf or txt
Download as pdf or txt
You are on page 1of 93

IBM Software

Rational

IBM UrbanCode Deploy


Lab Workbook
Lab Exercises
An IBM Rational Lab Workbook
Version 6.0 October 20th 2013

Copyright IBM Corporation, 2013


US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
IBM Software

Contents

OVERVIEW ............................................................................................................................................. 2
LAB 1 CREATE THE VIRTUAL MACHINE TO BE USED IN THE DEPLOY LABS ..................................................... 4
1.1 CREATE THE INITIAL VIRTUAL MACHINE ....................................................................................................... 4
1.2 DOWNLOAD THE REQUIRED SOFTWARE ...................................................................................................... 7
1.3 TOMCAT INSTALL AND SETUP ..................................................................................................................... 9
1.4 SUMMARY ............................................................................................................................................. 12
LAB 2 INSTALL IBM URBANCODE DEPLOY SERVER AND AGENTS ................................................................... 13
2.1 IBM URBANCODE DEPLOY SERVER SETUP .............................................................................................. 13
2.2 OPTIONAL SHUTDOWN AND BACKUP ......................................................................................................... 22
2.3 SUMMARY ............................................................................................................................................. 22
LAB 3 IMPORT APPLICATION AND COMPONENTS................................................................................................ 23
3.1 START THE DEPLOY SERVER IF IT IS NOT RUNNING ..................................................................................... 23
3.2 CREATE AND IMPORT THE JPETSTORE APP COMPONENT ......................................................................... 24
3.3 CREATE AND IMPORT THE JPETSTORE WEB AND DB COMPONENTS ........................................................... 26
3.4 CREATE AND DEFINE THE JPETSTORE APPLICATION .................................................................................. 27
3.5 DEFINE ENVIRONMENTS FOR THE JPETSTORE APPLICATION....................................................................... 28
3.6 SUMMARY ............................................................................................................................................. 30
LAB 4 DEPLOY INITIAL VERSION OF JPETSTORE TO SIT .................................................................................... 31
4.1 LOG INTO THE DEPLOYMENT SERVER DASHBOARD VIA A WEB BROWSER ....................................................... 31
4.2 CREATE THE DEPLOYMENT ENVIRONMENT ................................................................................................ 32
4.3 CREATE RESOURCES FOR EACH ENVIRONMENT ......................................................................................... 36
4.4 DEFINE THE DEPLOYMENT PROCESS FOR JPETSTORE-WEB COMPONENT .................................................. 39
4.5 DEFINE DEPLOYMENT PROCESS FOR JPETSTORE-APP COMPONENT .......................................................... 45
4.6 DEFINE DEPLOYMENT PROPERTIES .......................................................................................................... 52
4.7 DEFINE APPLICATION DEPLOYMENT PROCESS .......................................................................................... 54
4.8 TEST THE APPLICATION DEPLOYMENT PROCESS IN SIT ............................................................................. 56
4.9 DEFINE THE DEPLOYMENT PROCESS FOR JPETSTORE-DB COMPONENT...................................................... 60
4.10 UPDATE THE APPLICATION DEPLOYMENT PROCESS .................................................................................. 62
4.11 DEPLOY, RUN AND TEST JPETSTORE ....................................................................................................... 63
4.12 SUMMARY ............................................................................................................................................. 64
LAB 5 UPGRADE THE SIT AND PROMOTE TO THE UAT ENVIRONMENT ............................................................ 65
5.1 VERIFY YOUR DEPLOY ENVIRONMENT ...................................................................................................... 65
5.2 IMPORT V1.1 OF THE COMPONENTS ......................................................................................................... 65
5.3 DEPLOY VERSION 1.1 OF THE JPETSTORE-WEB AND JPETSTORE-DB IN SIT ............................................ 67
5.4 CONFIGURE THE UAT ENVIRONMENT ...................................................................................................... 70
5.5 CREATE A SNAPSHOT AND PROMOTE IT TO THE UAT ENVIRONMENT ............................................................ 73
5.6 PROMOTE THE SNAPSHOT TO THE UAT ENVIRONMENT............................................................................... 74
5.7 SUMMARY ............................................................................................................................................. 77
LAB 6 USING TEAMS FOR ACCESS CONTROL ...................................................................................................... 78
6.1 CREATE A NEW USER IN THE INTERNAL SECURITY REALM........................................................................... 78
6.2 CREATE A DEVELOPER ROLE................................................................................................................... 79
6.3 CREATE THE JPETSTORE TEAM. ............................................................................................................. 79
6.4 APPLY THE TEAM TO THE EXISTING JPETSTORE APPLICATION. ................................................................... 80
6.5 LOGIN AS A JPETSTORE DEVELOPER....................................................................................................... 82
LAB 7 OPTIONAL RATIONAL TEAM CONCERT INTEGRATION TECHNIQUE ....................................................... 83
7.1 LINK A COMPONENT VERSION TO AN RTC BUILD RESULT RECORD ............................................................... 83
7.2 SUMMARY ............................................................................................................................................. 83
APPENDIX A. NOTICES .......................................................................................................................................................... 84
APPENDIX B. TRADEMARKS AND COPYRIGHTS ............................................................................................................... 86

Contents Page 3
IBM Software

THIS PAGE INTENTIONALLY LEFT BLANK

Lab Page 1
IBM Software

Overview
The overall objective of this Lab Workbook is to introduce you to the basic concepts and tool usage of
IBM UrbanCode Deploy. This version of the workbook is based on version 6.0 of uDeploy, which is now
IBM UrbanCode Deploy.

Introduction
The modules in this workbook will guide you through the steps in understanding how to use IBM
UrbanCode Deploy. In the labs, you will be working with a sample application called JPetStore. It
consists of three components: web content, database and J2EE application. You will gain an
understanding of how to install the IBM UrbanCode Deploy tool, configure and deploy the JPetStore
application to two sample environments, Systems Integration Test (SIT) and User Acceptance Test
(UAT). There are six lab modules in this workbook and each are described below:

Lab1: This is the preparation lab for users starting with a local machine or a VMWare image. In this lab
you will download all the necessary software and create the three (logical) serversrequired to perform the
Deploy Labs 2through 6. If using your own local environment these application servers may be installed
on one or more physical locations. If you are using the Smart Cloud Enterprise Cloud image, this lab can
be skipped.

Lab 2: This labs focus is the role of the Deploy Administrator. In this lab you will install the IBM
UrbanCode Deploy server and agents, verify the communications between the server and agents, and
finally create the sample applications (JPetStore) databases. If you are using the Smart Cloud
Enterprise Cloud image, this lab can be skipped.

Lab 3: This labs focus is the role of the Deploy Automation Configurator. In this lab you will create the
JPetStore application, a sample enterprise Java application that you will deploy in following module(s).
In this module you import the components of the JPetStore application into the Deploy server. You will
then define a Deploy Application for JPetStore, which defines which components go into a named
application. Finally, you will define a set of named Environments for the application, such as UAT and
SIT.

Lab 4: This labs focus is the role of the Deploy Automation Configurator. In this lab you will create the
two levels of automation. The first part of the lab will focus on designing the component automation for
each of the components. The second part of the lab will focus on the Application Process, which
orchestrates the deployment of the components. It is this automation that manages the relationship
between the components and the order in which the components are deployed.

Lab 5: This labs focus is the role of the Deployer. In this lab you will deploy additional versions of the
components configured in Lab 3 and create a snapshot. You will then apply that snapshot by promoting
the snapshot from the sample SIT environment to the UAT environment.

Lab 6: This labs focus is the role of the Deploy Automation Configurator. In this lab you will establish a
security role and team and apply them to the JPetStore application.

Lab 7: This optional lab demonstrates how to link a component version to a Rational Team Concert Build
result record.

Page 2 IBM UrbanCode Deploy Lab Workbook


IBM Software

Lab Page 3
IBM Software

Lab 1 Create the virtual machine to be used in the Deploy Labs


Skip this lab if you are using the Smart Cloud Enterprise Cloud or a prepared VMWare Image for your lab
environment.

When you have completed this exercise, you will have a completed virtual machine running Red Hat
Enterprise Linux Server 6.4 that is ready for the IBM UrbanCode Deploy server and client software
installation. The IBM UrbanCode Deploy software installation is described in Lab 2 of this workbook.

The exercise has been validated using VMware, a commercial virtualization product
(http://www.vmware.com/products/workstation). Other virtualization solutions, such as KVM (Kernel-
based Virtual Machine, http://www.linux-kvm.org), a full virtualization solution for Linux on x86 hardware
included with many Linux distributions, should work as well. In addition to Red Hat Enterprise Linux
Server, other distributions should work as well but some installation steps may differ slightly.

The labs were built using Linux and the instructions are based on Linux. However, a Windows server
and agent environment can also be used. The IBM UrbanCode Deploy installation package reference
below can be used for Linux or Windows. The one difference in the installation is that on an agent
Windows machine, it is recommended that you install the agent as a Windows service. For more
information regarding a Windows installation, see the IBM UrbanCode Deploy InfoCenter at
http://pic.dhe.ibm.com/infocenter/ucdeploy/v6r0/index.jsp.

1.1 Create the initial virtual machine


Using your virtualization software, create a single virtual machine with the following recommended
configuration.

1.1.1 Red Hat virtual machine requirements

The following settings and packages were used in the prepared virtual machine environment for this
workbook. This is the general minimum configuration which is assumed has been prepared before
continuing with the setup of the IBM UrbanCode Deploy environment contained in this workbook.

Resource Notes

Red Hat Enterprise Other versions should work but this version was used for all
Linux 6.4 64-bit screenshots and specific commands contained in the
included instructions

2 CPUs Can be reduced at runtime if you dont have enough


physical resources

4 GB RAM Can be reduced at runtime if you dont have enough


physical resources

Page 4 IBM UrbanCode Deploy Lab Workbook


IBM Software

10 GB disk storage Can be reduced during initial image creation depending


upon usage scenario. Creating the disk image as a single
file can help improve performance. If this same image will
be used to also install IBM UrbanCode Release it is
recommended to start with 15 GB disk storage unless a
separate USB storage device is used to hold the installation
media.

UID: rational All work in this lab was done under the context of an OS
UID that was previously created and added to the sudo
users group. If another UID or root is used you will need to
make the appropriate changes when referring to the home
directories in specific steps.

MySql This must be installed and available in the system. If you


are not sure, as root run the following command: yum
install mysql-server mysql

You can then make sure it is started by the following


command as root: /etc/init.d/mysqld start

OpenJDK Java This or an equivalent Java environment must be installed


and available in the system. If you are not sure, as root run
the following command: yum install java-1.7.0-openjdk

1.1.2 Update hosts file

The installation will be slightly customized to enable access to the server applications through a specific
alias.

__1. Update hosts file to allow alias to the server

__a. Open a terminal window

__b. sudo gedit /etc/hosts

__c. Add the following line to the file

127.0.0.1 udeploy.release-and-deploy-learning-circle.com

Lab Page 5
IBM Software

__d. Save and close the editor

Page 6 IBM UrbanCode Deploy Lab Workbook


IBM Software

1.2 Download the required software


The following software distributions are required and must be downloaded separately.

IBM Rational Authorized Resellers obtain installation files from IBM Software Access Catalog. If you are
a Reseller, please review the supplemental document named Software Access Catalog UrbanCode
Download Instructions for details.

IBM Rational Sellers can obtain installation files through the normal process using the Software Sellers
Workplace Software Download site.

Package Release Location

Apache Tomcat 7.0.42 http://tomcat.apache.org

Download 7.0.42 tar.gz

IBM UrbanCode 6.0 https://www-


Deploy v6.0 304.ibm.com/partnerworld/wps/servlet/ContentHandler/isv/sac
Multiplatform English
eAssembly(CIPX9EN)

IBM UrbanCode 6.0 https://www-


Deploy Plug-Ins V6.0 304.ibm.com/partnerworld/wps/servlet/ContentHandler/isv/sac
Multiplatform English
(CIPY0EN)

JPetStore Application 1.0,1.1 https://www.ibm.com/developerworks/community/groups/service/html/c


ommunityview?communityUuid=860ff390-6cab-4f95-ab37-
66d2ca7521b4#fullpageWidgetId=Wfd5260395f07_47f9_aa1a_6eec1f
65a7e0&file=2f4ca265-480e-4efd-ae63-57f815c87b95

(OPTIONAL)IBM This is an optional download and only required if an existing


UrbanCode Deploy Java environment is not already installed. This package
Java Runtime contains separate platform installers which can be chosen based
Environments V6.0 on the target environment.
Multiplatform English
(CIQ2UEN) https://www-
304.ibm.com/partnerworld/wps/servlet/ContentHandler/isv/sac

1.2.1 Copy software distribution files to the virtual machine

All of the software distribution files needed to install and configure our IBM UrbanCode Deploy server
and agents will be copied to this virtual machine. It is assumed at this point in the lab that you have

Lab Page 7
IBM Software

already downloaded the required components as listed in the above table, and they are available on you
host machine.

The downloaded package file IBM_URBANCODE_DEPLOY_PLUG-INS.zip contains several plug-in


files. For the purpose of this lab exercise we will only be using 2 of these. To minimize the amount of
space used on our virtual machine environment we will only copy over the 2 required packages.

__1. Navigate to your download folder on the host machine where you saved the installation
packages from the previous step.

__2. Open the package file IBM_URBANCODE_DEPLOY_PLUG-INS.zip.

__3. Extract to your download location the files DBUpgrader-1.423703.zip and Tomcat-3.423647.zip.

__4. At a minimum your folder with the packages should look like the following

__5. Start the virtual machine that you created in the previous section.

__6. Log in as the root user.


Note that throughout the instructions logging in as root has
been specified. All work can be done through the UID
rational or other ID that was previously setup for you OS
as long as it has been added to the sudo users group. In
that case opening a terminal session and issuing sudo
bash before any sequence of steps will work as well.

__7. From a terminal window create a new directory to contain the distribution files:

__a. mkdir /home/rational/Distrib

__8. Copy each of the following files to /home/rational/Distrib.

__a. apache-tomcat-7.0.42.tar.gz

__b. artifacts.zip

__c. DBUpgrader-1.423703.zip

__d. Tomcat-3.423647.zip

__e. URBANCODE_DEPLOY_V6.0_MP_EN.zip

Page 8 IBM UrbanCode Deploy Lab Workbook


IBM Software

Note that depending upon the specific versions you have


downloaded the version numbers which are part of the file
naming may vary.
Also note that to save some space on the target virtual
machine we did not copy over the file
IBM_URBANCODE_DEPLOY_PLUG-INS.zip, only the 2
files we extracted from it.

1.3 Tomcat install and setup

1.3.1 Install Tomcat for SIT environment

__1. Log in as the root user.

__2. Start a Terminal and execute the following commands to expand the Tomcat distribution file.

__a. cd /opt

__b. mkdir webservers

__c. cd webservers

__d. gunzip /home/rational/Distrib/apache-tomcat-7.0.42.tar.gz

__e. tar xf /home/rational/Distrib/apache-tomcat-7.0.42.tar

__f. mv apache-tomcat-7.0.42 sit-apache-tomcat-7.0.42

__3. Add user and role entries to the Tomcat users file:

__a. gedit /opt/webservers/sit-apache-tomcat-7.0.42/conf/tomcat-


users.xml

__b. Uncomment the user and role entries at the bottom of the file.

__c. Add the following lines to the block you just uncommented.

<role rolename="manager"/>

<role rolename="manager-gui"/>

<role rolename="manager-script"/>

<role rolename="manager-jmx"/>

<role rolename="manager-status"/>

<user username="demo" password="demo" roles="manager,manager-


gui,manager-script,manager-jmx,manager-status"/>

Lab Page 9
IBM Software

__d. Save the file and close the editor

__4. Configure the correct ports for the SIT Tomcat server to prevent conflicts

__a. gedit /opt/webservers/sit-apache-tomcat-7.0.42/conf/server.xml

__b. Perform a search and replace of all occurrences based on the following:

__i. Replace 8080 with 8085

__ii. Replace 8443 with 8445

__c. Save the file and close the editor

__5. Verify the SIT Tomcat server

__a. From the same Terminal session as root start the SIT Tomcat server by entering the
following commands

JAVA_HOME must be set to start the Tomcat server.


Depending upon you installation you may need to replace
the java version in the export command to match your
environment.

__i. export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-


1.7.0.25.x86_64/jre

__ii. /opt/webservers/sit-apache-tomcat-7.0.42/bin/startup.sh

__b. Open the Firefox browser and navigate to the URL: http://udeploy.release-and-deploy-
learning-circle.com:8085/

__i. Verify you can get to the default Tomcat web console

Page 10 IBM UrbanCode Deploy Lab Workbook


IBM Software

__ii. It may take a few minutes for the SIT Tomcat server to start

1.3.2 Install Tomcat for UAT environment

__1. From the same Terminal session as root, execute the following commands:

__a. cd /opt/webservers

__b. tar xf /home/rational/Distrib/apache-tomcat-7.0.42.tar

__c. mv apache-tomcat-7.0.42 uat-apache-tomcat-7.0.42

__2. Add user and role entries to the Tomcat users file:

__a. gedit /opt/webservers/uat-apache-tomcat-7.0.42/conf/tomcat-


users.xml

__b. Uncomment the user and role entries at the bottom of the file.

__c. Add the following lines to the block you just uncommented.

<role rolename="manager"/>

<role rolename="manager-gui"/>

<role rolename="manager-script"/>

<role rolename="manager-jmx"/>

<role rolename="manager-status"/>

<user username="demo" password="demo" roles="manager,manager-


gui,manager-script,manager-jmx,manager-status"/>

__d. Save the file and close the editor

__3. Configure the correct ports for the UAT Tomcat server to prevent conflicts

__a. gedit /opt/webservers/uat-apache-tomcat-7.0.42/conf/server.xml

Lab Page 11
IBM Software

__b. Perform a search and replace of all occurrences based on the following:

__i. Replace 8005 with 8006

__ii. Replace 8080 with 8086

__iii. Replace 8443 with 8446

__c. Save the file and close the editor

__4. Verify the UAT Tomcat server

__a. From the same Terminal session as root start the UAT Tomcat server by entering the
following commands

JAVA_HOME must be set to start the Tomcat server.


Depending upon you installation you may need to replace
the java version in the export command to match your
environment.

__i. export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-


1.7.0.25.x86_64/jre

__ii. /opt/webservers/uat-apache-tomcat-7.0.42/bin/startup.sh

__b. Open the Firefox browser and navigate to the URL: http://udeploy.release-and-deploy-
learning-circle.com:8086/

__i. Verify you can get to the default Tomcat web console

__ii. It may take a few minutes for the UAT Tomcat server to start

1.4 Summary
You have now installed and configured the SIT and UAT Tomcat server environments that will be used.
You are ready to continue with the labs.

Page 12 IBM UrbanCode Deploy Lab Workbook


IBM Software

Lab 2 Install IBM UrbanCode Deploy server and agents


Skip this lab if you are using the Smart Cloud Enterprise Cloud or a prepared VMWare Image for your lab
environment.

In this lab we will install and configure the IBM UrbanCode Deploy server and agents. When completed
we will have a single system running with the main UrbanCode Deploy server, agent, SIT and UAT
environments.

2.1 IBM UrbanCode Deploy Server setup

2.1.1 Install IBM UrbanCode Deploy server

__1. If not already logged in, log in to the server as the root user.

__2. Start a Terminal session and execute the following command:

__a. mkdir /opt/ibm-ucd

__3. Prepare to install the IBM UrbanCode Deploy server by executing the following commands. This
will expand the IBM UrbanCode Deploy server distribution in the home directory.

__a. cd /home/rational/Distrib

__b. mkdir udeploy-install

__c. cd udeploy-install

__d. unzip ../ URBANCODE_DEPLOY_V6.0_MP_EN.zip

JAVA_HOME must be set to properly install the IBM


UrbanCode Deploy server. Depending upon you
installation you may need to replace the java version in the
export command to match your environment.

__4. export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.25.x86_64/jre

__5. Start the installation by executing the command ./install-server.sh and responding to
the prompts as follows. Note that it is ok if the installation program reports that it can't find
tools.jar. Also note that the Host name to access the Web UI value is the only non-default value.

__a. Enter F to display the full license agreement

__b. Enter Y to accept the license agreement

__c. IBM UrbanCode Deploy Server installation directory: /opt/ibm-ucd/server (default)

__d. If it prompts that the specified directory doesn't exist, respond: Yes (default)

Lab Page 13
IBM Software

__e. Home directory of JRE/JDK used to run the server: /usr/lib/jvm/java-1.7.0-openjdk-


1.7.0.25.x86_64/jre (default)

__f. Host name to access the Web UI: udeploy.release-and-deploy-learning-circle.com


(NOT default)

__g. Web UI to always use secure connections using SSL: Yes (default)

__h. Port on which Web UI listens for secure HTTPS requests: 8443 (default)

__i. Port on which Web UI redirects unsecured HTTP requests: 8080 (default)

__j. Port for agent communication: 7918 (default)

__k. Require mutual authentication: No (default)

__l. Create database schema: Yes (default)

__m. Database type to use: derby (default)

__n. Database username: ibm_ucd (default)

__o. Database password: password (default)

__6. Press the Enter/Return key when prompted to exit the installation script.

2.1.2 Start the IBM UrbanCode Deploy server

__1. Start a Terminal (or use existing Terminal). Start the IBM UrbanCode Deploy server running by
executing the following commands.

__a. cd /opt/ibm-ucd/server/bin

__b. ./server start

__2. You receive no immediate feedback when you start the server. Use the following command to
see the list of running Java applications, which should include the server.

__a. ps -elf | grep java

Page 14 IBM UrbanCode Deploy Lab Workbook


IBM Software

__b. The system presents a list of Java processes. You should see an entry that includes the
text UDeployServer.

2.1.3 Install IBM UrbanCode Deploy plugins

__1. Open the Firefox browser and navigate to the URL: https://udeploy.release-and-deploy-
learning-circle.com:8443
The browser may present you with This Connection is
Untrusted. This is normal for the initial setup when using
HTTPS as we have not created a signed certificate. In a
production environment your system admins would create
this for you and configure the system to use your specific
certificate.
For this demonstration and lab exercise use the Add
Exception button. In this next pop-up dialog click Confirm
Security Exception.

__2. Log in using admin for both the user name and password.

Lab Page 15
IBM Software

__3. Click the Settings tab on the dashboard.

__4. Click on the Automation Plugins link.

__5. Click the Load Plugin button.

__6. Browse to the appropriate folder based on your OS user id. Example: /home/rational/Distrib

__7. Select DBUpgrader-1.423703.zip

__8. Click Open

__9. Click Submit

Page 16 IBM UrbanCode Deploy Lab Workbook


IBM Software

__10. Repeat the above steps 5 thru 9 to load theTomcat-3.423647.zip.

2.1.4 Install the IBM UrbanCode Deploy agent

__1. Enter the Tools page

__a. Click the IBM UrbanCode Deploy Help menu button

__b. Click Tools

__2. Click the link for IBM UrbanCode Deploy Agent to initiate a file download

The browser by default will download the file into the


current OS users Downloads folder. Note where the file
has been downloaded if this has been changed.

__3. Close the Firefox browser

__4. Start a Terminal session as root user if one is not already running.

Lab Page 17
IBM Software

__5. Prepare to install the IBM UrbanCode Deploy agent by executing the following commands. This
will expand the IBM UrbanCode Deploy agent distribution in the home directory.

__a. cd /home/rational/Downloads

__b. unzip ibm-ucd-agent.zip

__c. cd ibm-ucd-agent-install

JAVA_HOME must be set to properly install the IBM


UrbanCode Deploy server. Depending upon you
installation you may need to replace the java version in the
export command to match your environment.

__6. export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.25.x86_64/jre

__7. Start the installation by executing the command ./install-agent.sh and responding to the
prompts as follows. Note that it is ok if the installation program reports that it can't find tools.jar.
Also note that the hostname of IBM UrbanCode Deploy server and Agent's name values are the
only non-default values.

__a. Agent install directory: /opt/ibm-ucd/agent (default)

__b. If it prompts you to create the installation directory: Yes (default)

__c. Home directory of JRE/JDK used to run the agent: /usr/lib/jvm/java-1.7.0-openjdk-


1.7.0.25.x86_64/jre (default)

__d. Agent connects to relay: No

__e. Hostname of uDeploy server: udeploy.release-and-deploy-learning-circle.com (NOT


default)

__f. Agent communication port for the server: 7918 (default)

__g. Mutual authentication with SSL: No (default)

__h. Agent's name: udeploy.release-and-deploy-learning-circle.com (NOT default)

__8. Press the Enter/Return key when prompted to exit the installation script.

2.1.5 Start the IBM UrbanCode Deploy agent

__1. Start a Terminal session (if not already in one) on the virtual machine.

__2. Start the IBM UrbanCode Deploy agent running by executing the following commands.

__a. cd /opt/ibm-ucd/agent/bin

__b. ./ibm-ucdagent start

Page 18 IBM UrbanCode Deploy Lab Workbook


IBM Software

__3. You receive no immediate feedback when you start the agent. Use the following command to
see the list of running Java applications, which should include the server.

__a. ps -elf | grep java

__b. The system presents a list of Java processes. You should see an entry that includes the
text AgentWorker as illustrated below.

2.1.6 Verify the IBM UrbanCode Deploy agent and server are communicating

__1. Open the Firefox browser and navigate to the URL: https://udeploy.release-and-deploy-
learning-circle.com:8443.

__2. Log in using admin for both the user name and password.

__3. Click the Resources tab on the dashboard.

__4. On the Resources page click the Agents tab.

__5. You should see a resource named udeploy.release-and-deploy-learning-circle.com and the


Status should be Online.

__6. Close the Firefox browser

Lab Page 19
IBM Software

2.1.7 Create the JPetStore application database

The JPetStore application requires a database. Create the empty database and verify that the database
user can access it.

__1. On the virtual machine, open a Terminal session, start the mysql command as the MySQL root
user. No password is required.

__a. mysql -u root

__b. The system will respond with a mysql> prompt. Type the remaining commands at this
prompt.

__2. Create the database.

__a. create database jpetstore_sit;

__b. create database jpetstore_uat;

__c. You will receive a response - Query OK, 1 row affected for each command

__3. Create the database user.

__a. create user 'jpetstore'@'localhost' identified by 'jppwd';

__b. You will receive a response - Query OK, 0 rows affected

__4. Grant privileges to the database user.

__a. grant all privileges on jpetstore_sit.* to


'jpetstore'@'localhost';

__b. grant all privileges on jpetstore_uat.* to


'jpetstore'@'localhost';

__c. You will receive a response - Query OK, 0 rows affected for each command

__5. Type quit to exit the mysql program.

2.1.8 Verify that the jpetstore user can access the database

__1. In a Terminal session, start the mysql command as the jpetstore user.

__a. mysql -u jpetstore -pjppwd

Page 20 IBM UrbanCode Deploy Lab Workbook


IBM Software

__2. Display the databases. The database jpetstore_sit and jpetstore_uat should be visible in the list.

__a. show databases;

__3. Type quit to exit the mysql program.

2.1.9 Prepare the workshop artifacts

__1. In a Terminal session as root execute the following commands

__a. mkdir /home/JPetStore

__b. cd /home/JPetStore

__c. unzip /home/rational/Distrib/artifacts.zip

2.1.10 Remove unneeded files

Optionally, remove the following distribution files in /home/Distrib that are no longer needed:

artifacts.zip

apache-tomcat-7.0.42.tar.gz

DBUpgrader-1.423703.zip

Tomcat-3.423647.zip

Lab Page 21
IBM Software

URBANCODE_DEPLOY_V6.0_MP_EN.zip

Optionally, remove any files and folders left from installing the IBM UrbanCode Agent from
the downloads folder in /home/rational/Downloads as they are no longer needed.

2.2 Optional shutdown and backup


At this point in time, you can create a snapshot of the virtual machine. If you do so, shut down the virtual
machines first.

2.3 Summary
The IBM UrbanCode Deploy server and agents have been deployed to the virtual machine to enable the
remaining IBM UrbanCode Deploy lab exercises. Empty databases for the JPetStore application have
also been created and the web artifacts are ready for deployment by IBM UrbanCode Deploy.

Page 22 IBM UrbanCode Deploy Lab Workbook


IBM Software

Lab 3 Import application and components


JPetStore is a sample enterprise Java application that you will deploy in the following labs. In this lab
you will import the JPetStore application into the Deploy server:

Break down JPetStore into individual components and load each component

Define how the components are assembled to create the deployable application

Define a set of named environments for the application, specifically UAT and SIT

A component is a set of related files that are deployed together one or more deployment processes. IBM
UrbanCode applications consist of a set of one or more components.

In this lab, you will break the JPetStore application into three components.
APP JPetStore Application Component. This component is the JPetStore Java
application that is in a file called JPetStore.war.
DB - Database Component. The initial version of this component contains scripts and
supporting files to create the JPetStore database. Subsequent versions of this
component contain scripts to modify the database schema.
WEB - Web Component. Versions for this component contains the static web content for
JPetStore, such as web page image files.

When you have completed this lab, you will have an application defined with its three components and
ready for the next lab to define the component process to deploy them to the target environments.

3.1 Start the Deploy server if it is not running


Skip this section if you are using the Smart Cloud Enterprise Cloud Image or a prepared VMWare Image
for your lab environment.

If you have stopped the Deploy server or rebooted the virtual machine, then you must start the Deploy
server.

__2. Execute the following commands in a Terminal session.

cd /opt/ibm-ucd/server/bin

./server start

__3. You receive no immediate feedback when you start the server. Use the following command to
see the list of running Java applications, which should include the server.

ps -elf | grep java

The system presents a list of Java processes. You should see an entry that includes the text
'UDeployServer'.

Lab Page 23
IBM Software

__4. Log into the Deploy server dashboard via a web browser. Start the web browser and navigate to
https://udeploy.release-and-deploy-learning-circle.com:8443. Confirm any security exceptions.

Note: To access the Deploy server from your desktop when using the SmartCloud image, you
will need to edit your operating systems host file and map the image IP to the server name
above.

__5. Login in as user admin. The password is admin. You should now see the Deploy dashboard.

3.2 Create and import the JPetStore APP Component


To work with a component, define the component and then import versions of the component over time.

3.2.1 Create the APP Component

__1. Click on the Components tab then on the Create New Component button to define a new
component.

Page 24 IBM UrbanCode Deploy Lab Workbook


IBM Software

__2. Name the new component JPetStore-APP. Set the other options as shown below. In
particular, set Template to None, set Source Config Type to File System (Versioned), set
Base Path to /home/JPetStore/shared/app, and set Default Version Type to Full. Click
the save button at the bottom of the pop-up.

By using the 'File System (Versioned)' setting, you are declaring that each folder under the 'Base
Path' folder is actually a named version of the component. Each of the versioned folders actually
contains the files for that version. When using Deploy, quite often you will integrate the Deploy
server to your build system and/or component repository to transfer versions of components.

3.2.2 Import Version 1.0 of the Component

__1. With the JPetStore-APP component selected, click on the Versions tab. Click on the
Import New Versions button to automatically load any versions that are found in the file
system. For the APP component, the only version defined is 1.0.

Lab Page 25
IBM Software

3.3 Create and import the JPetStore WEB and DB components

3.3.1 Create and import JPetStore-WEB

__1. Repeat the steps that you followed to create and import the JPetStore-APP component to
create and import a component called JPetStore-WEB. Other than the component name, the
only other difference is that the Base Path is /home/JPetStore/shared/web.

__2. When you import the versions, two versions are loaded 1.0 and 1.1. Initially, you only want to
have version 1.0. Later you will add version 1.1 and update the deployment. For now, click on
the Delete text to the right of version 1.1 to delete that version.

3.3.2 Create and import JPetStore-DB

__1. Repeat the steps that you followed to create and import the JPetStore-APP component to
create and import a component called JPetStore-DB. Other than the name, the only other
difference is that the Base Path is /home/JPetStore/shared/db.

__2. As with JPetStore-WEB, delete all the imported versions except for version 1.0.

Page 26 IBM UrbanCode Deploy Lab Workbook


IBM Software

3.4 Create and define the JPetStore application


Now that you have all of the components for JPetStore, you can define an application that includes those
components.

3.4.1 Create the JPetStore application

__1. Click on the Applications tab then click on the Create New Application button

to define a new application.

__2. Enter JPetStore as the name of the application and then press the Save button.

3.4.2 Add the components to JPetStore

__1. Within the Application: JPetStore shown, select the nested Components tab.

__2. Click on the Add Component button, select JPetStore-APP and then click on Save.

__3. Click on the Add Component button, select JPetStore-DB and then click on Save.

__4. Click on the Add Component button, select JPetStore-WEB and then click on Save.

Lab Page 27
IBM Software

__5. Verify that you can see the following three components within the JPetStore application.

3.5 Define Environments for the JPetStore application


Now that you have defined the JPetStore fundamentals, the application next needs to know where to do
a deployment. An IBM UrbanCode Deploy environment is, among other things, where IBM UrbanCode
Deploy resources - target machines having IBM UrbanCode Deploy agents - are mapped to application
components for the deployment of component versions. Environments are generally created for the
stages of a project life cycle, such as DEV, SIT, UAT or PROD. IBM UrbanCode Deploy lets you deploy
designated versions of an application's components to the different environments, which we will do in the
labs following.

For this lab, create a SIT and UAT environment for JPetStore. In this single-server playground, both
environments will use a single agent, with a separate resource defined for each environment.

__1. Click on the Applications tab to see the list of defined applications and then click on
JPetStore to open it.

Page 28 IBM UrbanCode Deploy Lab Workbook


IBM Software

__2. With the Application: JPetStore shown, make sure that the nested Environments tab is
selected. Click on the Create New Environment button.

__3. Name the new environment SIT. You can select a color, otherwise, leave the rest of the options
at their default values. Scroll down to the bottom of the pop-up and press the Save button.

__4. Repeat the previous steps in this section to create another environment called UAT.

__5. Verify this task by clicking on the Applications tab to see the list of defined applications and
then click on JPetStore to open it. You should see the SIT and UAT environments as shown
below.

Lab Page 29
IBM Software

3.6 Summary
You have defined an application in uDeploy called JPetStore and loaded version 1.0 of the applications
three components: APP, WEB and DB. You have defined the target UAT and SIT environments.

Page 30 IBM UrbanCode Deploy Lab Workbook


IBM Software

Lab 4 Deploy initial version of JPetStore to SIT

In this module you deploy the initial version of the JPetStore application to the SIT environment.

In order to deploy an application and its components to a target system (or set of systems), use scripted
Processes for both the Components and Application.

A Component Process describes and automates the steps to deploy one component. An Application
Process orchestrates the deployment of the Component Processes and any additional supporting
activity.

Once you define the Process scripts, you can then easily deploy versions of applications and
components to any desired target.

4.1 Log into the deployment server dashboard via a web browser
__1. Start the web browser and navigate to IBM UrbanCode Deploy URL:

https://udeploy.release-and-deploy-learning-circle.com:8443

__2. Login in as user admin. The password is admin. You should now see the IBM UrbanCode
Deploy dashboard.

Lab Page 31
IBM Software

4.2 Create the deployment environment

4.2.1 Defining the uDeploy Lab environment

The IBM UrbanCode Deploy system uses a server-agent model. The agent is a small execution engine
installed on each server in your environment on which commands must be executed. The agent runs
uDeploy plugin steps which are the scripts needed to perform various actions. In this lab, a single agent
is installed in the lab image.

The deployment of each component is aligned to a resource. The resource is a logical deployment target
that typically resolves to an agent. Resources are managed in a physical or conceptual hierarchy that
allows them to represent an agent, group of agents, component, or an organizational entity that is used
to group other resources.

To understand this, the diagram below represents a theoretical data center with physical servers that
have middleware and application components deployment onto them. The annotations on the left identify
the three SIT environment servers and the annotations on the right represent the QA environment
servers. The server URLs, numbers, etc are merely for demonstration purposes.

To organize the data center hierarchically, use the topology to understand the outline below.

Data Center

- SIT Environment - UAT Environment


- All SIT Web Servers - All UAT Web Servers
- web.sit.server.com - web.uat.server.com
- MyWebComponent - MyWebComponent
- All SIT App Servers - All UAT App Servers
- app.sit.server.com - app.uat.server.com
- MyAPPComponent - MyAPPComponent
- All SIT DB Servers - All UAT DB Servers
- data.sit.server.com - data.uat.server.com
- MyDB component - MyDB component

Page 32 IBM UrbanCode Deploy Lab Workbook


IBM Software

In the following lab section, we will review the uDeploy lab topology and a similar outline organization of
resources and components. Then create a set of resources and map them to the components to support
deployment:

__1. Review the lab environment topology below and note the single image, servers and components.

__2. Now review the lab environment outline organization shown in the table below:

uDeploy Lab environment agent

- SIT Environment
- http://udeploy.release-and-deploy- - UAT Environment
learning-circle.com:8085 - http://udeploy.release-and-deploy-learning-
- JPetStore Web component circle.com:8086
- JPetStore APP component - JPetStore Web component
- jdbc:mysql://localhost:3306/ jpetstore _sit - JPetStore APP component
- JPetStore DB Component - jdbc:mysql://udeploy.release-and-deploy-
learning-circle.com:3306/ jpetstore_uat
- JPetStore DB Component

4.2.2 Make sure the IBM UrbanCode Deploy Agent is running

__1. Verify that the IBM UrbanCode Deploy agent is online. Click the Resources tab then the
Agents tab. You should see that the udeploy.release-and-deploy-learning-
circle.com agent is Online.

Lab Page 33
IBM Software

__2. If you are using the VMWare image and the agent is offline, go to the command line and start the
agent using the following steps:

cd /opt/ibm-ucd/agent/bin

./ibm-ucdagent start

Look for the Agent process to have started by running ps ef|grep AgentWorker

4.2.3 Define a Resource hierarchy for the uDeploy Lab environment

The resource group will represent your lab environment.

__1. Under Resources, go to the Resources tab and click the Create Top-Level Group tab

Name the Resource uDeploy Lab Environment. Click Save.

4.2.4 Define a Resource for each environment

The resource will be your deployment target. In this section we will create a resource for each target
environment and bind the resource to a physical agent.

__2. Under Resources, go to the Resources tab and click the Actions menu to the right of the Lab
Environment resource. Add a group

Name the Resource JPetStore-SIT. Click Save.

Page 34 IBM UrbanCode Deploy Lab Workbook


IBM Software

__3. Click on the Actions drop-down to the right of the new resource and select Add Agent. The
existing agent will appear in the list. Click Save

__4. Repeat steps 1 and 2 above to create the resource JPetStore-UAT

Lab Page 35
IBM Software

4.3 Create resources for each environment


Each environment is bound to a deployment resource on the target server(s). The resource manages
the environment-specific metadata around a deployment -- for example, the database connection string.
In turn, each resource is bound to a physical IBM UrbanCode Deploy agent. The agent isa small
execution engine that is installed on each target machine.

For the single-server playground environment defined for this workbook, putting everything deploy
servers, database, and agent -- on the same box is fine:

By contrast, a real-world infrastructure would typically consist of a standalone deploy server, a database
server and one or more servers for each targeted environment:

Page 36 IBM UrbanCode Deploy Lab Workbook


IBM Software

4.3.1 Assign a Resource for each environment in your Application

__1. Go to the SIT environment created in the last lab for the JPetStore application:

Home> Applications>JPetStore>Environments>SIT

__2. From the Resources Tab, click on the Add Base Resources button and select the JPetStore-
SIT resource group.

__3. Repeat steps 1 and 2 for the UAT environment.

4.3.2 Complete and verify SIT and UAT Environments

The SIT Environment for JPetStore has been defined, and has been associated with a resource. To
complete the setup, bind each component in environment to this resource as well.

__1. Select the Applications tab, click on JPetStore, and then click on the SIT environment.

__2. Click on the Resources tab. Verify that there is an agent associated with this resource and it is
currently online

Lab Page 37
IBM Software

__3. Select the resource and an Actions drop will appear. Select Add Component from the drop-
down list.

__4. A Create New Resource pop-up will appear. Select JPetStore-APP component and save.

__5. Repeat the process to add JPetStore-WEB and JPetStore-DB components. Your resulting
resource map should look like the following:

__6. Complete the steps for the UAT environment

Page 38 IBM UrbanCode Deploy Lab Workbook


IBM Software

4.4 Define the deployment Process for JPetStore-WEB component


A Component Process is a script for deploying or managing the deployment of a component. In this
section, you define the Process for deploying the JPetStore-WEB component to a target computer.

Remember that the JPetStore web component contains the static content for the JPetStore web
application, such as images.

4.4.1 Create the new Process

__1. Within the IBM UrbanCode Deploy web console, select the Components tab and then click on
the JPetStore-WEB component to open it.

__2. Within the JPetStore-WEB component, click on the Processes tab to see and maintain the list
of component processes. Make sure that you select the Processes tab UNDER JPetStore-WEB
and not the Processes tab above the component name.

Lab Page 39
IBM Software

__4. Click on the Create New Process button to create a new Component process.

__5. Name the new process Deploy Web Component. Select Deployment for the Process Type.
The rest of the default values are ok, so then press Save.

Note the Default Working Directory. The pre-populated default is a work directory under the
Agent install on the server the step will execute on. In this environment the default work
directory for the Web component will resolve to:
/opt/ibm-ucd/agent/var/work/JPetStore-WEB

__6. Click on the new process to open its definition. This will open a graphical editor to draw the
process steps. It should be an empty process with a Start and Finish step and nothing else. On
the left-hand side will be the set of plug-ins available from the deployment server. A plug-in
provides a set of application or system-specific step wizards to help implement the process
steps.

Page 40 IBM UrbanCode Deploy Lab Workbook


IBM Software

Lab Page 41
IBM Software

4.4.2 Retrieve the contents of the Component

__1. When this Process is executed, it runs on the target computer, from the working directory
defined by Process configuration. Add a step to the Process to clean up the working directory
by deleting any content that it may already have. To do that, find Scripting > Shell >
Shell in the list of Available Plugins and drag and drop the Shell plugin into the diagram.

Page 42 IBM UrbanCode Deploy Lab Workbook


IBM Software

__2. When you drop the Shell plugin, a dialog opens to enter the plugin instance properties. Enter the
following information leaving the remaining fields with default values. Then Save the form.

Property Value

Name Clean Working Directory

Shell Script rm -rf *

__3. Connect the Start step to the Clean Working Directory step: put the mouse cursor over
the Start step, click on the arrow that appears in the center of the step and then drag the cursor
over the Clean Working Directory step and release. A line is drawn from Start to Clean showing
that the Clean step runs after the Start step.

__4. Now you need to retrieve the contents of the Component from the uDeploy server. Add another
plugin to the diagram. This time select Download Artifacts which can be found in
Repositories > Artifact > IBM UrbanCode Deploy

__5. Use all of the default properties and press the Save button

__6. Connect from the Clean Working Directory step to the Download Artifacts step

Lab Page 43
IBM Software

4.4.3 Deploy the content to the application directory

__1. Define a step to move the files (static web content) to the JPetStore application directory. Use
another shell script for this, so add another instance of the Scripting > Shell > Shell to
the Process.

__2. Define the following properties and then Save.

Property Value

Name Deploy New Content

Shell Script mv images ${p:environment/tomcat.home}/webapps/JPetStore/

Notice the {$p:environment/tomcat.home} in the script. This is a dynamic property. You are
using the Tomcat application server to run the JPetStore application on the target machine. The
files need to be copied to a location relative to the tomcat directory, which may vary by resource
(machine) or environment. In this case, it is an environment variable. Remember that we have
two environments defined SIT and UAT. So each of the environments can define the
'tomcat.home' variable differently. You will define the property later in this lab.

__3. Do NOT connect the previous step (the Download step) to this new one yet. However, go ahead
and connect this step to the Finish step.

__4. Before moving the static web content into the appropriate tomcat application folder, you want to
make sure that any old static content is deleted first. Add another Process step to cleanup the
directory. Use another shell script for this, so add another instance of the Scripting >
Shell > Shell to the Process.

__5. Define the following properties and then Save.

Property Value

Name Remove Old Content

Shell
rm -rf ${p:environment/tomcat.home}/webapps/JPetStore/images
Script

__6. Connect the Download Artifacts step to the Remove Old Content step.

__7. Connect the Remove Old Content step to the Deploy New Content step.

Page 44 IBM UrbanCode Deploy Lab Workbook


IBM Software

There should now be a flow from the Start step of the Process to the Finish step. You have
scripted the process for deploying the Web Component.

Save the process by clicking on the Save icon in the upper left corner of the Process designer as
shown below.

4.5 Define deployment Process for JPetStore-APP component


Remember that the APP component is the actual WAR program for JPetStore. The WAR file contains
information that must be modified to match the computer running the WAR file. So the process will
dynamically modify the WAR file. In addition, you need to send instructions to the Tomcat Server so that
it properly deploys the new version of the WAR file.

4.5.1 Create the new Process

__1. Within the IBM UrbanCode Deploy web console, select the Components tab and the click on the
JPetStore-APP component to open it.

__2. Within the JPetStore-APP component, click on the Processes tab to see and maintain the list of
processes.

__3. Click on the Create New Process button to create a new Component process.

Lab Page 45
IBM Software

__4. Name the new process Deploy App Component. Select Deployment for the Process Type.
The rest of the default values are ok, so then press Save.

__5. Click on the new process to open its definition, which opens a graphical editor to draw the
process steps.

4.5.2 Retrieve the contents of the Component

__1. Add a step to the Process to clean up the working directory by deleting any content that it may
already have. To do that, find Scripting > Shell > Shell in list of Available Plugins and
drag and drop the Shell plugin into the diagram.

__2. Define the following properties and then Save.

Property Value

Name Clean Working Directory

Shell Script rm -rf *

__3. Connect the Start step to the Clean Working Directory step.

__4. Next, you need to retrieve the contents of the Component from the deployment server. Add
another plugin to the diagram. This time select Download Artifacts which can be found in
Repositories > Artifact >IBM UrbanCode Deploy.

__5. Use all of the default properties and press the Save button.

__6. Connect from the Clean Working Directory step to the Download Artifacts step.

4.5.3 Update the WAR file

JPetStore is a Java enterprise application that is deployed as a WAR file (JPetStore.war). In the case of
JPetStore the WAR file contains the database connection informationthe WAR file must be modified for
each target environment. Specifically, the WAR file contains the database connection information that
will be different for SIT and UAT.

A Java WAR file is compressed using ZIP technology. To modify configuration files, expand (unzip) the
WAR file, update the appropriate files, and then compress (re-zip) the WAR file.

Page 46 IBM UrbanCode Deploy Lab Workbook


IBM Software

__1. Add the plugin Utilities > FileUtils > Unzip to the Process.

__2. Define the following properties and then Save.

Property Value

Name Expand WAR

Extract
./JPetStore_expanded
directory

Zip JPetStore.war

__3. Connect from the Download Artifacts step to the Expand WAR step.

__4. One property file from the war file must be updated with database information. There is a plugin
for updating property files. Add the plugin Utilities > FileUtils > Update Property
File to the Process.

__5. Define the following properties and then Save.

Property Value

Name Update Property File

Directory
./JPetStore_expanded/WEB-INF/classes/properties
offset

Property File database.properties

Add/Update
url=${p:environment/db.url}
properties

__6. Connect from the Expand WAR step to the Update Property File step.

__7. Next, you need to re-compress the WAR file. Add the plugin Utilities > FileUtils >
Create Zip Archive to the Process.

Lab Page 47
IBM Software

__8. Define the following properties and then Save.

Property Value

Name Update WAR

Zip Archive
JPetStore.war
Name

Base
./JPetStore_expanded
Directory

Include **/*

Enable the "Update Existing" checkbox

__9. Connect from the Update Property File step to the Update WAR step.

4.5.4 Deploy the WAR to Tomcat

Deploying the WAR to Tomcat is done in the following steps:


Starting Tomcat if it isn't already running.
Stop any previous version of the WAR that may exist.
Deploy the new version of the WAR to Tomcat.

__1. Add a step to the Process to start Tomcat in case it isn't already running. Select the plugin
Application Server > Java > Tomcat > Start Tomcat.

Note that this plugin is not part of the IBM UrbanCode Deploy base installation. This was a
plugin that you added during the initial configuration of the product. However, notice how the
added plugin has the same basic behavior as the built in plugins.

__2. Define the following properties and then Save.

Property Value

Name Start Tomcat

Launcher ${p:environment/tomcat.start}

Startup timout 60

Port ${p:environment/tomcat.port}

The environment variable tomcat.start will contain the path and command to start tomcat.
Since both the SIT and UAT environment are hosted on the same machine, the port will also
differ by environment.

Page 48 IBM UrbanCode Deploy Lab Workbook


IBM Software

__3. Connect from the Update WAR step to the Start Tomcat step.

__4. Add a step to the Process to undeploy any previous versions of the WAR. Select the plugin
Application Server > Java > Tomcat >Undeploy Application.

__5. Define the following properties and then Save.

Property Value

Name Undeploy Application

Tomcat
${p:environment/tomcat.url}/manager/text
Manager URL

Tomcat
Manager demo
Username

Tomcat
Manager demo
Password

Context
/JPetStore
Name

Enable the "Allow Failure" checkbox

If JPetStore is not already running when this Process Step executes, the step will fail. If that is
the case, you want to continue anyway. That's why you turn the Allow Failure checkbox on.

__6. Connect from the Start Tomcat step to the Undeploy Application step.

__7. Add a step to the Process to deploy the new version of the WAR. Select the plugin
Application Server > Java > Tomcat >Deploy Application.

Lab Page 49
IBM Software

__8. Define the following properties and then Save.

Property Value

Name Deploy Application

Tomcat
${p:environment/tomcat.url}/manager/text
Manager URL

Tomcat
Manager demo
Username

Tomcat
Manager demo
Password

Context
/JPetStore
Name

War File Path ./JPetStore.war

Make sure that the "Allow Failure" checkbox is DISABLED

__9. Connect from the Undeploy Application step to the Deploy Application step.

Page 50 IBM UrbanCode Deploy Lab Workbook


IBM Software

__10. Connect from the Deploy Application step to the Finish step.Verify that your process
looks similar to the following diagram.

__11. Save the process by clicking on the Save icon in the upper left corner of the Process designer as
shown below.

Lab Page 51
IBM Software

4.6 Define deployment properties


Several deployment properties have been referenced as shown below. You need to define values for
these properties.

Table 1: Summary of the deployment Properties


Type of Property Property Name Description

The URL for accessing the database. This


environment db.url will be different for different environments,
such as UAT and SIT.

The tomcat directory for the target


environment tomcat.home
environment.

The web URL to access tomcat on the given


environment tomcat.url
environment.

The full directory location of the startup script


environment tomcat.start
(startup.sh) used to start tomcat.

The port used by the application within the


environment tomcat.port
target environment

Environment properties are defined inside of the Environments defined within the application.

__1. Select Applications from the top tabs and then click on JPetStore to open the Application
definition.

Page 52 IBM UrbanCode Deploy Lab Workbook


IBM Software

__2. Click on the SIT Environment to open it.

__3. Click on the Configuration tab then select Environment Properties

__4. For each of the following values, click on the Add Property button and fill in the Name and
value as shown.

__5.
Table 2: Summary of the environment-specific Properties

Name Value

db.url jdbc:mysql://localhost:3306/jpetstore_sit

tomcat.home /opt/webservers/sit-apache-tomcat-7.0.42

tomcat.url http://udeploy.release-and-deploy-learning-circle.com:8085

tomcat.start /opt/webservers/sit-apache-tomcat-7.0.42/bin/startup.sh

tomcat.port 8085

Tip: use Batch Edit to add the variables in one pass. Do change to Table Mode when you are done to
make sure that the syntax is correct and no odd characters or spaces were introduced.

Lab Page 53
IBM Software

4.7 Define Application Deployment Process


At this point, you have only defined a deployment Process for two of the three application Components.
In this section of the lab you define an Application Process to deploy those two components. Later, you
will update the Application Process to include the DB component.

In the Application Process you coordinate the Component Processes that run. In the case of a
deployment script, you coordinate the deployment of the components.

__1. Select the Applications tab and then click on the JPetStore application to open it.

__2. Select the nested Processes tab (and NOT Processes in the top list of tabs).

__3. Click on the Create New Process button to add a new Application Process.

__4. Name the Application Process Deploy JPetStore. Keep defaults for all of the other fields
then click Save to save the process.

__5. In the screen that returns after you save the process, click on the process name, Deploy
JPetStore, to open it in the graphical Process Editor.

__6. Add a step to the Process that deploys the APP component, which is the applications WAR file.
Select the plugin Install Component.

__7. Define the following properties and then Save.

Property Value

Name Deploy APP Component

Component JPetStore-APP

Component
Deploy App Component
Process

__8. Connect from the Start step to the Deploy APP step.

__9. Add a step to the Process that deploys the WEB component, which is the static web contents.
Select the plugin Install Component.

Page 54 IBM UrbanCode Deploy Lab Workbook


IBM Software

__10. Define the following properties and then Save.

Property Value

Name Deploy WEB Component

Component JPetStore-WEB

Component
Deploy WebComponent
Process

__11. Connect from the Deploy APP step to the Deploy WEB step.

__12. Connect from the Deploy WEB step to the Finish step.

__13. Verify that you see a process flow order similar to the following.

__14. Save the Process by clicking on the Save icon in the upper left corner of the editor.

Lab Page 55
IBM Software

4.8 Test the Application Deployment Process in SIT


You are now ready to deploy part of the JPetStore application, the APP and WEB components. Without
the DB component, the application won't run, but this is a good point to verify the work done so far. Test
the deployment of JPetStore APP and WEB components

You are ready to test your initial deployment model using the two components, APP and WEB, of
JPetStore to the SIT Environment. For this workshop, the SIT environment is a SIT-specific Tomcat
server on the workshop server image.

__1. Select the Applications tab and then click on JPetStore. You should see the list of
Environments.

__2. Click on the Request Process button next to SIT to launch an Application Process for the SIT
Environment.

__3. Select the Process named Deploy JPetStore. Select the Latest Version of both
JPetStore-APP and JPetStore-WEB. Then press the Submit button to start the deployment
process.

IBM UrbanCode Deploy remembers what version of a component has been deployed to a
Resource. Normally, if you run an Application Process that is deploying a component and if the
component version is already deployed, IBM UrbanCode Deploy doesn't re-deploy the
component. However, if you turn off the Only Changed Version checkbox, the component is
deployed even if the same version has already been deployed. This is useful when you are
initially testing new Process scripts and want to repeatedly deploy the same application
components to the same resource.

Page 56 IBM UrbanCode Deploy Lab Workbook


IBM Software

There are also various options for selecting which versions of the components are deployed.
Note that the Snapshot option is used in the next labs.

__4. The system displays the current application deployment status. You can see which components
aren't started, are running, were successful, or failed. Expand any of the components to see
additional information.

The diagram above is an execution in process. The diagram below completed successfully and
the Deploy App component process is expanded.

__5. Click on the Details hyperlink in the rightmost column to see even more details. This is
particularly useful if a component failed.

Lab Page 57
IBM Software

__6. This screen (shown below) shows the steps within the process and the Status of each step. The
Action buttons on the right show details for each step including log files for the steps.

Note that, as illustrated above, the first time that you deploy JPetStore, the un-deploy step will
fail, since there is no instance of JPetStore to undeploy. However, the un-deploy step is flagged
as "Allow Failure", so the process continues. If you run the process again after a successful
deployment, the undeploy step should work.

Page 58 IBM UrbanCode Deploy Lab Workbook


IBM Software

__7. If you have drilled into detailed status screens, hit the browser back button until you see the
overall summary showing Deploy APP and Deploy WEB. You should see Success. If you see a
status of Failed, drill into the log details to figure out what failed.

Tip: If you have an error, it might be a simple typo in a variable definition. When debugging a step
failure start by inspecting the Input Properties log the white log file to the right of the step. If the
variable is unexpanded as in the sample log below, it means that corresponding variable (tomcatt.url)
wasnt defined for the specified object (environment)

Lab Page 59
IBM Software

4.9 Define the deployment Process for JPetStore-DB component


The database deployment plugin used in this workshop is not based on providing SQL script files.
Instead an XML file is provided which lets you define explicit apply and roll-back capabilities.

Deploying the DB Component is done in the following steps:


Download the artifacts
Upgrade the database

4.9.1 Create the new Process

__1. Within the IBM UrbanCode Deploy web console, select the Components tab and the click on the
JPetStore-DB component to open it.

__2. Within the JPetStore-DB component, click on the Processes tab and click Create New
Process button to create a new Component process.

__3. Name the new process Deploy DB Component. Select Deployment for the Process Type.
The rest of the default values are ok, so then press Save.

__4. Click on the new process to open its definition, opening a graphical editor to draw the process
steps.

Page 60 IBM UrbanCode Deploy Lab Workbook


IBM Software

4.9.2 Retrieve the contents of the Component

__1. Add a step to the Process to clean up the working directory by deleting any content that it may
already have. To do that, find Scripting > Shell > Shell in list of Available Plugins and
drag and drop the Shell plugin into the diagram.

__2. Define the following properties and then Save.

Property Value

Name Clean Working Directory

Shell Script rm -rf *

__3. Connect the Start step to the Clean Working Directory step.

__4. Next, you need to retrieve the contents of the Component from the deployment server. Add
another plugin to the diagram. This time select Download Artifacts which can be found in
Repositories > Artifact > IBM UrbanCode Deploy.

__5. Use all of the default properties and press the Save button.

__6. Connect from the Clean Working Directory step to the Download Artifacts step.

4.9.3 Update the Database

__1. Add the Upgrade DB plugin which can be found in Database >DBUpgrader >Upgrade DB

__2. Set only the values as shown below and then save.

Property Value

Name Upgrade DB

Driver Classname com.mysql.jdbc.Driver

DB Driver Jar lib/mysql-connector-java-5.1.20-bin.jar

URL ${p:environment/db.url}

User jpetstore

Password jppwd

SQL File path .

SQL File Include *.xml

SELECT VER FROM DB_VERSION WHERE


Current Version SQL
RELEASE_NAME = ?

Lab Page 61
IBM Software

Delete Version SQL DELETE FROM DB_VERSION WHERE RELEASE_NAME = ?

INSERT INTO DB_VERSION (RELEASE_NAME,VER)


Update Version SQL
VALUES(?,?)

__3. Connect from the Download Artifacts step to the Upgrade DB step.

__4. Connect from the Upgrade DB step to the Finish step.

__5. Save the process by clicking on the Save icon in the upper left corner of the Process designer

4.10 Update the Application Deployment Process


Now that the JPetStore-DB component has a deployment Process, you can complete the Application
Deployment Process.

__1. Select the Applications tab at the top of the screen.

__2. Click on JPetStore to open it.

__3. Open the Processes tab within JPetStore.

__4. Click on the Deploy JPetStore process to open it in the Process designer.

__5. Add a new Install Component process step named Deploy DB Component that deploys
the JPetStore-DB component.

__6. Connect the process steps as shown below. Note that the APP deployment has to happen first,
but then WEB and DB can be deployed in any order or even at the same time.

__7. Save the updated process.

Page 62 IBM UrbanCode Deploy Lab Workbook


IBM Software

4.11 Deploy, run and test JPetStore


You are now ready to deploy all of the components of JPetStore v1.0 into the SIT environment and test
the resulting application.

4.11.1 Deploy JPetStore v1.0

__1. Follow the same instructions as earlier to deploy JPetStore. You should select these versions
for each component. Do that by selecting Specific Version for the Component Versions and
verifying the version specified:
Web: 1.0
App: 1.0
DB: 1.0

__2. Make sure that the deployment is successful.

Note that the IBM UrbanCode Deploy tool records each version of a component deploy to a
resource. This maintains a historical record and avoids deploying the same version twice, unless
manually directed. From the test step previously executed, it recognizes that Web 1.0 and App
1.0 have already been deployed to SIT and will not redeploy them. Expand the steps to see the
full status:

Lab Page 63
IBM Software

4.11.2 Run and test JPetStore

__1. Open your browser and go to the site for the SIT version of
JPetStore:http://udeploy.release-and-deploy-learning-circle.com:8085/JPetStore

You should see the JPetStore application and graphics. Navigate around the site.

__2. Drill down to any specific animal and make sure that you can see a picture of the animal. That
will verify that the WEB component successfully deployed.

4.12 Summary
In this module you created reusable deployment scripts for the JPetStore components and application.
You used the scripts to deploy version 1.0 of the application to the SIT environment.

Page 64 IBM UrbanCode Deploy Lab Workbook


IBM Software

Lab 5 Upgrade the SIT and Promote to the UAT environment

In this lab you will deploy additional versions of the components to upgrade the SIT environment to a
newer version of the content and database components. You will then create a snapshot of the SIT
environment and promote the snapshot to the UAT environment. Note that you may set up a component
or component template to automatically import new versions when available.

A snapshot is a collection of specific component versions and processes, usually versions that are
known to work together. Typically, a snapshot is created when a successful deployment has been run in
an uncontrolled environment. Snapshots can be created in controlled environments as well. As the
application moves components through various environments, IBM UrbanCode Deploy ensures that the
exact versions and processes you selected are used in every environment. Snapshots help manage
complex deployments--deployments with multiple environments and development teams.

When you have completed this exercise, you will have promoted the application version from the SIT
environment to the UAT environment using a snapshot.

5.1 Verify your Deploy Environment


If you are running on a VMWare image and have shutdown your image, go back and make sure that the
IBM UrbanCode Server and Agent are still running. Follow the hyperlinks to find instructions earlier in
this workbook.

5.2 Import V1.1 of the components

5.2.1 Import V1.1 of JPetStore-WEB and JPetStore-DB

__1. Click on the Import New Versions button to automatically load any versions that are found
in the file system that have not yet been imported. For the web component, the additional
version 1.1 will be imported.

Lab Page 65
IBM Software

__2. Repeat the above step to import version 1.1 of the component JPetStore-DB.

__3. Click on version 1.1 of JPetStore-DB, then the Configuration tab. Change the type
toIncremental.

The resulting Version listing will look like this:

The JPetStore product that is loaded into the database with version 1.0 has all but the Bichon dog in the
product list. Version 1.1 is an incremental version that only contains one addition, the Bichon dog
product.

While incremental deployments can make sense for manual deployments, tracking incremental versions
can quickly become a nightmare with automated deployments. If you are deploying 100 files, for
example, deploy all of them every time and let IBM UrbanCode Deploy figure out which ones have
actually changed. This way, if a file was unexpectedly changed, the deployment process itself will fix it.

Page 66 IBM UrbanCode Deploy Lab Workbook


IBM Software

5.3 Deploy Version 1.1 of the JPetStore-WEB and JPetStore-DB in SIT


In this section you will update the JPetStore-WEB and JPetStore-DB components to version 1.1 in the
SIT environment.

5.3.1 Verify the current JPetStore environment

__1. On the uDeploy server, verify the current version (1.0) of the JPetStore-WEB and JPetStore-DB
components are in the SIT environment

__2. Openyour browser and go to SIT version of the JPetStore website:

http://udeploy.release-and-deploy-learning-circle.com:8085/JPetStore

Enter the store and navigate to the Dog breed page. Confirm that there are only 6 products on
the list of dogs; (click on the More button to see the last two entries.) V1.0 of the JPetStore-WEB
and JPetStore-DB components do NOT have Bichon in the list.

Lab Page 67
IBM Software

5.3.2 Deploy 1.1 of the JPetStore-WEB and JPetStore-DB components to SIT

__1. On the IBM UrbanCode Deploy server navigate to the JPetStore application and select Request
Process.

__2. Select the ProcessDeploy JPetStore and select specific component version 1.1 for
JPetStore-WEB and JPetStore-DB and press submit.

Page 68 IBM UrbanCode Deploy Lab Workbook


IBM Software

__3. On the deployment server, verify that the components deployed successfully. Note that you can
view the steps of each component process by selecting the Details.

__4. Return to the Application Environment page to see that SIT is compliant with the request to
deploy versions 1.1 of the WEB and DB components to SIT

Lab Page 69
IBM Software

__5. Note that the SIT JPetStore inventory has been updated and now Bichon is in the list.
http://udeploy.release-and-deploy-learning-circle.com:8085/JPetStore

5.4 Configure the UAT Environment


In this lab you will complete the configuration of the UAT environment. In Lab 3, you created the UAT
environment. In this lab you will configure the properties and define the component mappings for the
UAT environment.

5.4.1 Define the UAT deployment properties

Several deployment properties have been referenced as shown below. You need to define values for
these properties. Just as you set these up in Lab 3 for the SIT environment, you need to set them for
the UAT environment.

Page 70 IBM UrbanCode Deploy Lab Workbook


IBM Software

Table 3: Summary of the deployment Properties


Type of Property Property Name Description

environment tomcat.home The Tomcat directory on the target machine.

The URL for accessing the database. This


environment db.url will be different for different environments,
such as UAT and SIT.

The web URL to access tomcat on the given


environment tomcat.url
environment.

The full directory location of the startup script


environment tomcat.start
(startup.sh) used to start tomcat.

The port on which the environment-specific


environment tomcat.port
Tomcat webserver is running

Environment properties are defined inside of the Environments defined within the

__1. Select Applications from the main folders and then click on JPetStore to open it.

__2. Click on the UAT Environment to open it.

Lab Page 71
IBM Software

__3. Within the Environment: UAT for JPetStore, click on the Configurationtab then select
Environment Properties:

__4. For each of the following values, click on the Add Property button and fill in the Name and
value as shown.

Table 4: Summary of the UAT deployment Properties

Name Value

tomcat.home /opt/webservers/uat-apache-tomcat-7.0.42

jdbc:mysql://udeploy.release-and-deploy-learning-
db.url
circle.com:3306/jpetstore_uat

tomcat.url http://udeploy.release-and-deploy-learning-circle.com:8086

tomcat.start /opt/webservers/uat-apache-tomcat-7.0.42/bin/startup.sh

tomcat.port 8086

Page 72 IBM UrbanCode Deploy Lab Workbook


IBM Software

5.5 Create a snapshot and promote it to the UAT Environment


In this lab you will create a snapshot of the SIT environment and then promote that snapshot to the UAT
environment.

5.5.1 Create the snapshot of SIT

__1. Navigate to the JPetStore application and click the camera icon next to the SIT listing to create a
new snapshot

__2. Enter Lab5-Promote as the name of the snapshot and select Save.

Lab Page 73
IBM Software

The snapshot is populated with the content of the current SIT environment. Go to Component Versions
tab and expand each component. Notice that the Database component includes two versions the
Incremental version 1.1 is not sufficient to recreate the environment, so both are automatically included.

Notice that JPetStore-DB contains both the incremental and the previous full version both are needed
to re-create the deployment instance currently in SIT.

5.6 Promote the snapshot to the UAT environment


__1. Before promoting the snapshot, run a preview of the snapshot if applied to the UAT
environment. Note the compliancy of SIT and UAT environments. On the Preview, note the
changes that will be applied to the UAT environment

Preview is available from the snapshot page

Page 74 IBM UrbanCode Deploy Lab Workbook


IBM Software

Lab Page 75
IBM Software

__2. Now that you have verified what will be promoted to the UAT environment, you are now ready to
request the deployment from the snapshot. On the snapshot dashboard, select Request
Process. Then select the process Deploy JPetStore process you defined in Lab 3 and
press submit.

__3. Once the process is complete, you can view the details of the deployment of the snapshot to
UAT.

__4. Now the SIT environment is promoted to UAT environment.

Page 76 IBM UrbanCode Deploy Lab Workbook


IBM Software

__a. You can also verify the promotion on theApplication page.

__b. Finally, verify the promotion succesfully updated the UAT tomcat
instancehttp://udeploy.release-and-deploy-learning-
circle.com:8086/JPetStore

5.7 Summary
In this lab, you learned how to deploy specific component versions, in this case version 1.1 of JPetStore-
WEB and JPetStore-DB to the SIT environment. You also learned how to create a snapshot of the SIT
environment and promote that snapshot to the UAT environment.

Lab Page 77
IBM Software

Lab 6 Using Teams for Access Control

This lab will provide an introduction to the security model in IBM UrbanCode Deploy.

Security is concerned with Authentication and Authorization. Authentication deals with verifying the user
as he or she logs in; Authorization with what rights the user hasonce on the system.

When the IBM UrbanCode Deploy product is first set up, it uses an Internal Security realm for
authentication internal user accounts are created and maintained within the tool. For this workshop we
are using this authentication method. Most active systems will include an LDAP realm as well.

Authorization is based on a set of roles, applied to a set of teams, applied to a set of objects. Each role
defines a set of actions. Each team contains of users, assigned to roles. Objects are things like
applications, environments, and components.

In this lab you will:


Define a user named Ben
Create a Developer role and assign a set of actions to it
Create the JPetStore Team
Assign Ben as a Developer in the JPetStore Team
Associate the JPetStore Team with the Application and its environments
Login as Ben and take a look at the impact of the defined security rules

6.1 Create a new user in the Internal Security Realm


__1. From the top-level Settings tab, click on Security > Authentication (Users)

__2. Click on the Create User button and create a new user:
ID: ben
User Name: Ben Franklin
Password: ben

Page 78 IBM UrbanCode Deploy Lab Workbook


IBM Software

6.2 Create a Developer role.


__1. Still in Security, open the Role Configuration tab. Click on Create New Role and create a
new Role called Developer

__2. Click on the newly created Developer role and add the following actions:

__a. Under Application, grant Run Component Processes and View permissions

__b. Under Component, grant View permission

__c. Under Environment, Create a New Type called QA Environment

__d. Under Environment, grant Execute and View to Standard Environment

__e. Under Environment, grant View only to QA Environment

__f. Under Web UI, grant Access to the first five tabs (through Deployment Calendar)

6.3 Create the JPetStore Team.


__1. Still in Security, open the Teams tab. Create a new Team called JPetStore Team

Lab Page 79
IBM Software

__2. Add Ben to the team as a Developer. Save the new Team definition

6.4 Apply the Team to the existing JPetStore Application.


Now apply the rules that have been defined to the existing application.

__1. From Applications, select JPetStore. Select Configuration > Basic Settings.

Add the JPetStore Team. Click Add and Save.

__2. Update the SIT environment to include JPetStore Team with a Standard Environment Role
From Applications>JPetStore>SIT, select Configuration>Basic Settings. Click Add and Save.

Page 80 IBM UrbanCode Deploy Lab Workbook


IBM Software

__3. Update the UAT environment to include JPetStore Team with a QA Environment Role

From Applications>JPetStore>UAT, select Configuration>Basic Settings. Click Add and Save.

Since the name of each environment is just a tag the IBM UrbanCode Deploy system doesnt
understand the semantics of SIT vs. UAT -- using environment roles provides a way to define different
security rules around the environment type.

Lab Page 81
IBM Software

6.5 Login as a JPetStore Developer


__1. Log out of IBM UrbanCode Deploy as admin by clicking Sign Out from the admin drop-down
menu

__2. Log in with username: ben password: ben

Notice fewer high-level tabs are available. This was done through configuring the Web UI.
Notice also that, although Ben can see UAT, and compare the content against other
environments, he does not have the rights to do a deployment.

Page 82 IBM UrbanCode Deploy Lab Workbook


IBM Software

Lab 7 Optional Rational Team Concert Integration Technique


When deploying IBM UrbanCode Deploy with Rational Team Concert (RTC), one option for integrating
the objects available in each tool is to link the RTC build results with the IBM UrbanCode Deploy
component version. This linking provides a two way navigable integrating between the semantically
similar objectives. This sections explains the features to use in linking those objects, manually. Note, this
may be automated during build.

7.1 Link a component version to an RTC Build result record


__1. Navigate to the Component > Configuration for version 1.0 of the JPetStore APP component. Click
add link to add a new URL link. Enter the link Name and URL to the RTC build result. Click
save.

__2. Locate link at the top of the UI listed under the Created on date/time. You can use this to
navigate directly to the RTC build result. You can also enter the URL of this UI into the RTC build
result as a reference of the specific component delivered by the build process.

7.2 Summary
In these labs you took a first look at the IBM UrbanCode Deploy capabilities. You explored installation,
configuration, integration and deployment automation into two test environments. Please take a moment
to comment on your experiences in the learning circle located where you downloaded this lab:

http://ibm.co/devops-learning-circle

Lab Page 83
NOTES

Appendix A. Notices
This information was developed for products and services offered in the U.S.A.

IBM may not offer the products, services, or features discussed in this document in other countries.
Consult your local IBM representative for information on the products and services currently available in
your area. Any reference to an IBM product, program, or service is not intended to state or imply that
only that IBM product, program, or service may be used. Any functionally equivalent product, program, or
service that does not infringe any IBM intellectual property right may be used instead. However, it is the
user's responsibility to evaluate and verify the operation of any non-IBM product, program, or service.

IBM may have patents or pending patent applications covering subject matter described in this
document. The furnishing of this document does not grant you any license to these patents. You can
send license inquiries, in writing, to:

IBM Director of Licensing


IBM Corporation
North Castle Drive
Armonk, NY 10504-1785
U.S.A.

For license inquiries regarding double-byte (DBCS) information, contact the IBM Intellectual Property
Department in your country or send inquiries, in writing, to:

IBM World Trade Asia Corporation


Licensing
2-31 Roppongi 3-chome, Minato-ku
Tokyo 106-0032, Japan

The following paragraph does not apply to the United Kingdom or any other country where such
provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES
CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND,
EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some
states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this
statement may not apply to you.

This information could include technical inaccuracies or typographical errors. Changes are periodically
made to the information herein; these changes will be incorporated in new editions of the publication.
IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this
publication at any time without notice.

Any references in this information to non-IBM Web sites are provided for convenience only and do not in
any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part
of the materials for this IBM product and use of those Web sites is at your own risk.

IBM may use or distribute any of the information you supply in any way it believes appropriate without
incurring any obligation to you.

Any performance data contained herein was determined in a controlled environment. Therefore, the
results obtained in other operating environments may vary significantly. Some measurements may have
NOTES

been made on development-level systems and there is no guarantee that these measurements will be
the same on generally available systems. Furthermore, some measurements may have been estimated
through extrapolation. Actual results may vary. Users of this document should verify the applicable data
for their specific environment.

Information concerning non-IBM products was obtained from the suppliers of those products, their
published announcements or other publicly available sources. IBM has not tested those products and
cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM
products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of
those products.

All statements regarding IBM's future direction and intent are subject to change or withdrawal without
notice, and represent goals and objectives only.

This information contains examples of data and reports used in daily business operations. To illustrate
them as completely as possible, the examples include the names of individuals, companies, brands, and
products. All of these names are fictitious and any similarity to the names and addresses used by an
actual business enterprise is entirely coincidental. All references to fictitious companies or individuals are
used for illustration purposes only.

COPYRIGHT LICENSE:

This information contains sample application programs in source language, which illustrate programming
techniques on various operating platforms. You may copy, modify, and distribute these sample programs
in any form without payment to IBM, for the purposes of developing, using, marketing or distributing
application programs conforming to the application programming interface for the operating platform for
which the sample programs are written. These examples have not been thoroughly tested under all
conditions. IBM, therefore, cannot guarantee or imply reliability, serviceability, or function of these
programs.
NOTES

Appendix B. Trademarks and copyrights


The following terms are trademarks of International Business Machines Corporation in the United States,
other countries, or both:

IBM AIX CICS ClearCase ClearQuest Cloudscape

Cube Views DB2 developerWorks DRDA IMS IMS/ESA

Informix Lotus Lotus Workflow MQSeries OmniFind

Rational Redbooks Red Brick RequisitePro System i

System z Tivoli WebSphere Workplace System p

Firefox is a trademark of the Mozilla Foundation, All rights reserved

JPetStore application Copyright (c) 2004 Clinton Begin. All rights reserved

VMware is a trademark of VMware, Inc.

Deploy is a trademark of UrbanCode, an IBM Company

Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or
trademarks of Adobe Systems Incorporated in the United States, and/or other countries.

IT Infrastructure Library is a registered trademark of the Central Computer and Telecommunications


Agency which is now part of the Office of Government Commerce.

Intel, Intel logo, Intel Inside, Intel Inside logo, Intel Centrino, Intel Centrino logo, Celeron, Intel Xeon, Intel
SpeedStep, Itanium, and Pentium are trademarks or registered trademarks of Intel Corporation or its
subsidiaries in the United States and other countries.

Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both.

Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the
United States, other countries, or both.

ITIL is a registered trademark, and a registered community trademark of The Minister for the Cabinet
Office, and is registered in the U.S. Patent and Trademark Office.

UNIX is a registered trademark of The Open Group in the United States and other countries.

Java and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or
its affiliates.

Cell Broadband Engine is a trademark of Sony Computer Entertainment, Inc. in the United States, other
countries, or both and is used under license therefrom.
Linear Tape-Open, LTO, the LTO Logo, Ultrium, and the Ultrium logo are trademarks of HP, IBM Corp.
and Quantum in the U.S. and other countries.
NOTES
NOTES
NOTES

Copyright IBM Corporation 2013.

The information contained in these materials is provided for


informational purposes only, and is provided AS IS without warranty
of any kind, express or implied. IBM shall not be responsible for any
damages arising out of the use of, or otherwise related to, these
materials. Nothing contained in these materials is intended to, nor
shall have the effect of, creating any warranties or representations
from IBM or its suppliers or licensors, or altering the terms and
conditions of the applicable license agreement governing the use of
IBM software. References in these materials to IBM products,
programs, or services do not imply that they will be available in all
countries in which IBM operates. This information is based on
current IBM product plans and strategy, which are subject to change
by IBM without notice. Product release dates and/or capabilities
referenced in these materials may change at any time at IBMs sole
discretion based on market opportunities or other factors, and are not
intended to be a commitment to future product or feature availability
in any way.

IBM, the IBM logo and ibm.com are trademarks of International


Business Machines Corp., registered in many jurisdictions
worldwide. Other product and service names might be trademarks of
IBM or other companies. A current list of IBM trademarks is
available on the Web at Copyright and trademark information at
www.ibm.com/legal/copytrade.shtml.

You might also like