UrbanCode Deploy Blueprint Designer Create and provision new environments in the cloud

The Blueprint Designer is a separately-installed component that is included with the UrbanCode Deploy product suite.

While UrbanCode Deploy drives deployment automation of applications into existing environments, Blueprint Designer creates and provisions new environments in the cloud.

Blueprint Designer Licensing
The UrbanCode Blueprint Designer does not require separate or extra licenses. It can be used with all UrbanCode Deploy license scenarios.

Blueprint Designer provides a design tool to create full-stack environments using standard orchestration technologies, including OpenStack Heat and Terraform.

This post shows the OpenStack Heat orchestration. Terraform will be discussed later.

Using the graphical editor, you can drag and drop infrastructure components, and easily connect them to networks, or add application components from UrbanCode Deploy and other sources.

In this post I’m going to show you:

Where to get the Blueprint Designer package for Linux

If you are an authorized user, you can download the UrbanCode Deploy Blueprint Designer package from IBM Passport Advantage.

The Linux package, available while I’m writing this post, is: UCD_BPD_7.0.5.0_x86_64_LNX_ML.tgz.tgz (CC4UXML)

Once downloaded, transfer the package to your Linux instance and unzip it.

How to install Blueprint Designer on AWS Linux 2 AMI instance

Your Linux instance needs ports 22, 8443 and 7575 to be opened, so create a Security Group accordingly.

Installing Blueprint Designer on a Linux operating system requires the following prerequisite packages:

– gcc
– python-devel
– openssl-devel
– libffi-devel
– libxslt-devel
– libxml2-devel

so execute below command:

# yum install -y gcc python-devel openssl-devel libffi-devel libxslt-devel libxml2-devel

From the unzipped package directory execute:

./install .sh

and follow the below guidance:

Would you like to install Urbancode Deploy Blueprint Designer with Cloud Discovery Service (CDS)? [y, n]
[Default y]:

Have you satisfied these dependencies? [y, n]
[Default y]:

"Enter" for the next page, or "F" to print the full license: F

Do you accept the license? [y, n]
y

Installing UrbanCode Deploy with Patterns version 7.0.5.0
--------------------------------------------------------------------------------
Specify the directory where the blueprint design server for UrbanCode Deploy
should be installed.
[Default /opt/ibm-ucd-patterns]:
--------------------------------------------------------------------------------
The specified directory does not exist. Do you want to create it? [y, n]
[Default Y]:

--------------------------------------------------------------------------------
Enter the public IP address or host name of this system.
ec2-xx-xxx-xx-xxx.eu-west-2.compute.amazonaws.com

--------------------------------------------------------------------------------
Do you want the blueprint design server to always use secure connections
using SSL? [y, n]
[Default Y]:

--------------------------------------------------------------------------------
Enter the port on which the blueprint design server should listen for secure
HTTPS requests.
[Default 8443]:

--------------------------------------------------------------------------------
Enter the port to which the blueprint design server should redirect unsecured
HTTP requests.
[Default 8080]:

For this Blueprint Designer demo scenario, we can create and use a Derby Database.
Derby is not appropriate for production Blueprint Designer servers.
For production systems, specify mysql, mariadb, db2, oracle, sqlserver, or postgres.

--------------------------------------------------------------------------------
Create database schema? [y, n]
[Default Y]:

--------------------------------------------------------------------------------
Enter the database type to use.
[Default derby]:

--------------------------------------------------------------------------------
Enter the database username.
[Default ibm_ucdp]:

--------------------------------------------------------------------------------
Enter the database password.
[Default password]:

In the next step you should provide the UrbanCode Deploy Server URI. Skip it. We will connect Blueprint Designer and uDeploy Server later.

Enter the URI for the IBM UrbanCode Deploy server. Example: https://myUCDServer:8443 .
[Default None]:

Now you can start the blueprint design server from your console by using the following command.

/opt/ibm-ucd-patterns/bin/server start

After starting the blueprint design server, you can access the blueprint designer at the following address:

https://ec2-xx-xxx-xx-xxx.eu-west-2.compute.amazonaws.com:8443/landscaper

Default user/password are:

ucdpadmin/ucdpadmin

Now you can start the cloud discovery service from your shell by using the following command.

systemctl start ibm-cloud-discovery.service

After starting the server, you can test that the service is available by visiting the following address:

http://ec2-xx-xxx-xx-xxx.eu-west-2.compute.amazonaws.com:7575/

Where to get the UrbanCode Deploy Blueprint Engine package for Linux

To create and provision environments on AWS cloud or other clouds such as SoftLayer, VMware, Google Cloud and Microsoft Azure, that are not OpenStack-based, you need UrbanCode Deploy Blueprint Engine.

The engine interprets blueprints and use them as patterns for cloud resources. This engine is a customized Heat engine and it’s installed with plugins that allow the blueprint designer to integrate with an UrbanCode Deploy server and with non-OpenStack clouds.

If you are an authorized user, you can download the UrbanCode Deploy Blueprint Engine package from IBM Passport Advantage.

The Linux package, available while I’m writing this post, is: UCD_BPE_7.0.5.0_x86_64_LNX_ML.tgz.tgz (CC4V0ML)

How to install UrbanCode Deploy Blueprint Engine on AWS Red Hat Enterprise 7

In version 6.2.2 and later, you must install the engine on a host that runs Red Hat Enterprise Linux (RHEL) 7. No other operating system is supported, including RHEL version 6 or earlier. The operating system must have the most recent package updates.

You need root access to install the engine.

The engine installs a MariaDB database automatically. You must install the engine on a system on which MariaDB is not installed.

Your RHEL 7 instance needs ports 22, 5000 and 8004 to be opened, so create a Security Group accordingly.

Install the following packages:

– gcc
– genisoimage
– libffi-devel
– python-devel
– openssl-devel
– libxslt-devel
– libxml2-devel

# yum install -y gcc genisoimage libffi-devel python-devel openssl-devel libxslt-devel libxml2-devel

Enable the optional “rhel-7-server-optional-rpms” repository.

RHEL 7.6 and earlier:

 yum-config-manager --enable rhui-REGION-rhel-server-optional

RHEL 7.7 and later:

 yum-config-manager --enable rhui-rhel-7-server-rhui-optional-rpms

Once downloaded, transfer the package to your Linux instance and unzip it.

Change to the ibm-ucd-patterns-install/engine-install/ directory and run:

./install.sh

Answer Yes to “Have you satisfied these dependencies?” question and agree to the terms of all of the license agreements.

Enter the public host name that clients use to access this Heat orchestration
engine.

[Default ip-xxx-xx-xx-xx.eu-west-2.compute.internal]: ec2-xx-xxx-xxx-x.eu-west-2.compute.amazonaws.com
Response: ec2-xx-xxx-xxx-x.eu-west-2.compute.amazonaws.com
Enter the binding address for the Heat orchestration engine. Accept the
default value to listen to all addresses that are available to the system.

[Default 0.0.0.0]:
Enter the OpenStack Identity endpoint URL to use for authorization for this
Heat orchestration engine. Accept the default value to install Keystone.

[Default http://ec2-xx-xxx-xxx-xx.eu-west-2.compute.amazonaws.com:5000/v3]
Do you want to start and enable the required OpenStack services for this Heat engine? [y, n]
[Default Y]

If, during the installation, below error occurs:

Error
Error: Package: python-repoze-who-2.2-1.ibm.el7.noarch (ibm-heat-install-noarch) Requires: python-zope-interface
Error: Package: python-pysaml2-2.3.0-1.ibm.el7.noarch (ibm-heat-install-noarch) Requires: python-zope-interface

download the rpm: python-zope-interface-4.0.5-4.el7.x86_64.rpm from rpmfind and install with command below:

[root@ip-172-31-12-56 ec2-user]# rpm -ihv python-zope-interface-4.0.5-4.el7.x86_64.rpm
warning: python-zope-interface-4.0.5-4.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:python-zope-interface-4.0.5-4.el7################################# [100%]

then start again the installation.

At the end, the below message would appear:

All OpenStack services started and enabled.

The OpenStack services for the Heat engine must be running before to use the engine. To check the status of these services run the following commands:

Check openstack-heat status
systemctl status openstack-heat-engine.service

systemctl status openstack-heat-api.service

systemctl status openstack-heat-api-cfn.service

systemctl status openstack-heat-api-cloudwatch.service

If the services are not running, then you must start them before you use the engine. To start these services, run the following commands:

systemctl start openstack-heat-engine.service

systemctl start openstack-heat-api.service

systemctl start openstack-heat-api-cfn.service

systemctl start openstack-heat-api-cloudwatch.service

NOTE: Required backend services for the engine started during installation. Check service status run following commands:

Check backend services status
systemctl status rabbitmq-server.service

systemctl status mariadb.service

systemctl status openstack-keystone.service

If service are stopped, you must start them before you use the engine. Start the backend services by running the following commands:

systemctl start rabbitmq-server.service

systemctl start mariadb.service

systemctl start openstack-keystone.service

You may interact with the local OpenStack identity service and the services for the Heat engine by using the prepared credentials files in your user directory:

source ~/clientrc

openstack endpoint list

heat stack-list

After starting the OpenStack services for the Heat engine, you can access the
REST API at the following URL:

http://ec2-xx-xxx-xxx-xx.eu-west-2.compute.amazonaws.com:8004

How to connect Blueprint Designer to Orchestration Service

From Blueprint Designer web interface, go to Settings > Orchestrations and create a new Orchestration Service of type “Stand Alone Heat Engine” like in fig. below:

Provide Identity Url:

http://ec2-xx-xxx-xx-xxx.eu-west-2.compute.amazonaws.com:5000/v3

and Orchestration Engine Url:

http://ec2-xx-xxx-xx-xxx.eu-west-2.compute.amazonaws.com:8004

Default username and password are:

admin/openstack1

Save and test connection.

UrbanCode Deploy and Blueprint Designer integration

From Blueprint Designer web interface, go to System Settings and provide values for “UrbanCode Deploy Server” as in fig. below:

From UrbanCode Deploy Server web interface, go to Settings > Automation > Blueprint Designer Integration and create a new instance as in fig. below:

Test connection for both configurations.

Blueprint Designer and AWS Cloud Service integration

Finally let’s create the cloud connection.

From Blueprint Designer web interface go to Settings > Clouds and create a new connection as in fig. below:

As Cloud Type select: Amazon Web Services, as Default Orchestration Service choose your Heat Service then create and provide your Amazon Access ID and Secret Key and test connection.

Install UrbanCode Deploy Cloud Agent Packages

If you are an authorized user, you can download the IBM UrbanCode Cloud Agent Packages from IBM Passport Advantage.

The package, available while I’m writing this post, is: UCD_CLD_AGT_7.0.5.0_MP_ML.tgz.tgz (CC4UZML)

This package installs agent components for different platforms (Linux, Windows, AIX) on uDeploy Server .

These components will be deployed during the blueprint environment provision, providing the uDeploy agent installation.

So, for example, if you plan to provision an environment using a Linux image, the corresponding agent will be installed into the server.

Extract the installation files and set JAVA_HOME to a JRE.

From the command line, change to the installation_directory/ibm-ucd-patterns-install/agent-package-install/ folder, and run the installation program:

On a Linux computer, run the following command:

./install-agent-packages.sh -s ucd_url -a token

– ucd_url is the full URL of the UrbanCode Deploy server.
– token is a token from the server.

On the UrbanCode Deploy server, verify that the agent components were created.

How to provision a full-stack AWS Cloud environment

Now it’s time to provision your environment.

Blueprint Designer Cloud Connection
After the Blueprint Designer Server is connected to a cloud, you have access to the images, networks, storage, and policies that are available in that cloud.

Application components from IBM UrbanCode Deploy are also accessible in the Blueprint Designer palette after the Blueprint Designer Server is connected to the IBM UrbanCode Deploy Server.

The video below shows you how to create a blueprint yaml file to provision a cloud environment on AWS.

The provision process creates a Linux AMI instance on AWS using the Europe (Ireland) eu-west-1 Region.

The uDeploy agent is then installed and WLP Deploy Application Process starts.

WLP (WebSphere Liberty Profile) application process triggers a component process who downloads a WebSphere Liberty Web profile, unzip the file, install the AdminCenter, change the server.xml file and start the server.

Keep strong and f### Covid-19!

2C DevOps Ltd. Director, UrbanCode Deploy expert. Drop email to info@2cdevops.co.uk for info and consultancy advice.