Acquire Lock with UrbanCode Deploy on IBM WebSphere Application Server Network Deployment Environment

Who works everyday with IBM WebSphere Application Server Network Deployment knows a state of facts: Different users cannot make changes on a WAS DM Cell at the same time.

Let’s look at how it can be possible acquire an exclusive lock on a WAS DM Cell with IBM UrbanCode Deploy.

We have two different applications on the same WAS DM Cell and we want to deploy both without worrying about which deploy start first.

Create everything you need on uDeploy: Applications, Components, Component Process, Application Process, Resources and Environments as in the figures below:

Environment Name: WAS85 STAGING
First Application: Pet Store

Pay Attention: The environment name is: WAS85 STAGING. I’ll put this name for every application is running into my WAS DM Cell of Staging.

Continue readingAcquire Lock with UrbanCode Deploy on IBM WebSphere Application Server Network Deployment Environment

UrbanCode Deploy & JIRA Integration Part Two

In the first part of “UrbanCode Deploy & JIRA Integration” post we left us with an unsolved question.

How to pass a Jira issue nr. (issue_id) to the application process flow?

Application Process Properties is the solution.

Go to Applications -> “Your Application” -> Processes -> “Your Application Process” -> Configuration -> Application Process Properties

Create the property: issue_id

Now run the process:

Continue readingUrbanCode Deploy & JIRA Integration Part Two

UrbanCode Deploy & JIRA Integration Part One

Today I’m going to show you how to integrate UrbanCode Deploy with the well-known Atlassian Issue Tracking System Jira.

First of all we need the UrbanCode Deploy JIRA plugin .

Once downloaded and installed we will find a new menu item:  Issue tracking ->Jira Plugin into our step palette:

We will use, in particular, the Transition Issue step to put “IN PROGRESS” an open task and then, at the end of our Application Process flow, put the task in “DONE” status.

Continue readingUrbanCode Deploy & JIRA Integration Part One

UrbanCode Deploy – License Server Installation

To use IBM UrbanCode Deploy 6.x.x or 7.x.x, you need to install a Rational Common Licensing environment, import acquired licenses, and apply those licenses to the IBM UrbanCode Deploy servers and agents.

For enterprise environments configure IBM Rational License Key Server in a fault-tolerant configuration (redundant servers). Redundant servers are a system of three servers that work as a team to manage a single pool of floating license keys.

If one of the servers goes down, the other two license servers automatically continue managing the license pool. This type of redundant configuration requires that a minimum of two license servers are running at all times. If any two license servers no longer work, the third license server does not serve licenses. Two servers must be operating to serve licenses to clients.

Remember: You must have the license key file for redundant UNIX servers. Go to the Rational License Key Center and request a license for redundant servers. License Key Center will ask you for the primary, secondary and backup servers. Be sure to specify the redundant servers in the correct order:

Hostname1 is the primary server
Hostname2 is the secondary server
Hostname3 is the backup server

Continue reading “UrbanCode Deploy – License Server Installation”

Export and Import uDeploy Component or Application

Sometimes it might be useful to export resources like Components or Applications from a uDeploy installation and import to another one.

Let’s see how to do it and what problem we could deal with:

First of all let’s export our Component.

Click “Actions” beside the Component, then  click “Export“.

Save your .json file

In the other uDeploy installation,  go to Components, click  the “Import Components” button and upload the .json file exported before.

At this point you could receive an import error.

Watch the uDeploy Server log. Can you see something like this?

2018-02-22 15:52:43,956 CET ERROR https-jsse-nio-0.0.0.0-8444-exec-9 com.urbancode.commons.util.crypto.algs.Crypt1Alg - Did not find any decoding key for name abc123keyxxx
2018-02-22 15:52:43,956 CET ERROR https-jsse-nio-0.0.0.0-8444-exec-9 com.urbancode.ds.web.util.UCDExceptionMapper - The import data contains encrypted values which could not be decrypted. Please ensure that the encryption key from the server which created this file has been added to this server.
com.urbancode.air.i18n.TranslatableException: The import data contains encrypted values which could not be decrypted. Please ensure that the encryption key from the server which created this file has been added to this server 

Continue reading “Export and Import uDeploy Component or Application”

Property Priority Order of precedence

If a uDeploy property is defined in multiple places, its value is determined by the property priority or order of precedence. The following list defines the order of precedence from highest to lowest:

– Process
– Component version
– Resource
– Agent
– Environment
– Component
– Application
– System

If you have an environment property named ${p:environment/app.url} and a resource property with the same name, you can refer to the resource property by using ${p:app.url} or ${p:resource/app.url}.

Because the resource property is higher on the order of precedence than the environment property, in this case you must refer to the environment property by using the scoped format: ${p:environment/app.url}.

Anyway if you have a Replace Tokens Step, priority depends on the order of the Property List . Let’s suppose to have an environment property and an agent property with same name: hostname.fqdn

If Property List is like:

${p:environment/allProperties},${p:agent/allProperties}

agent property will win.

If Property List is like:

${p:agent/allProperties},${p:environment/allProperties}

environment property will win.

Handle multiple Websphere Application Server profiles with uDeploy

Do you have multiple WAS profile on the same host? Let’s see how to handle this configuration with uDeploy.

Go to Resources -> Agents -> [Click your WAS multi profiles host agent] -> Configuration -> Agent Properties.

Add the Property Name: websphere.profilePath and fill the value with the path of WebSphere Application Server profiles.

Eg. /usr/IBM/WebSphere/AppServer/profiles

Go to Resources -> Resource Tree and create a Top-Level Group.

Click beside the Top-Level Group: Actions -> Add Agent

Click Refresh link below.

Your Deployment Manager Profiles will appear.

For each WebSphereCell Dmgr click Configuration -> Basic Settings. Add missing values like, Cell Name, WebSphere User and Password, SOAP Port.

Go back to Resource Tree, click Actions beside each Dmgr profiles and click: Configure Using WebSphere Topology Discovery.

Your Cell topology will appear in a few seconds.

Stop WebSphere Application Server with uDeploy

When you want to stop a Cluster or a Server you need a component process well designed or your application process can fail.

Start with a Check Status step. It checks the status of the Server/Cluster and fails if the Server/Cluster is already stopped.

The second step, Stop Server, it doesn’t need explanations.

Then Wait for server or cluster to stop.
Here you can set the:
– Timeout (seconds) to wait for the server or cluster to stop before the step fails.
– Interval (seconds): The time to wait between status checks.

Finally, in case of Wait for Server/cluster to stop timeout we add a Terminate Server/Cluster step.

Have a nice day!

Add Target to Module with uDeploy aka Map Module to Server

There is an excellent article written by Lara Ziosi (you can find it here) which inspired me to write this post and showing you how to add Target to Module with uDeploy.

In our scenario we have a WebSphere Application Server cell and we are going to install an ear and map a Web Module to a Web Server target.

Usually during ear installation  the target is an Application Server or Cluster but sometimes we need to map our application also to a Web Server like IHS, Apache or something else.

First of all create a component of type “WebSphere Enterprise Application”, then create two component processes. The first is a classic deploy process ( see Install Enterprise Application on WebSphere Application Server with uDeploy)  while the second :  “Add target To Module” has just one step:  “Add Target to Module” from the “Application Deployment for WebSphere plug-in“.

Simply fill the Module URI property with the Uri of the module. For example: ALPHA_WAR.war,WEB-INF/web.xml

Continue readingAdd Target to Module with uDeploy aka Map Module to Server

Use Precondition in uDeploy

Most steps in a process can have a precondition. The precondition determines whether the step runs.

Preconditions return Boolean values. If the precondition returns True, the step runs as usual. If the precondition returns anything other than True, the process skips that step.

Suppose we need to create a symlink but only under certain conditions. We create a Shell step:

Continue reading “Use Precondition in uDeploy”