search cancel

Using Manifest files

book

Article ID: 42241

calendar_today

Updated On:

Products

CA Release Automation - Release Operations Center (Nolio) CA Release Automation - DataManagement Server (Nolio)

Issue/Introduction

Question: 

How to set up and use manifest files?

Environment:  

CA Release Automation 5.5.2.X, 6.X

Answer: 

Basically the name of the concept using manifest files called data driven deployment the manifest consist from 3 xml files:

1. Env.xml (example: QA.xml, DEV.xml, PROD.xml) one file for every environment
2. Topology.xml (example: JPetStore.xml) one file for every application
3. Release.xml (example: 1.1.0.xml) one file for every release

These xml are built as a free style and the only thing that is important it's what data they contain and how it used in the solution.

1. Env (Environment) - This file will mostly consist of key pair values like
<property name="KEY-NAME">KEY-VALUE</property>

<property name="DB-HOST"?>192.168.32.4</property>

2. Topology - To get this file correctly we need to get a clear understanding of the similarities between the various environments and their server-types definitions. Like IIS 7.5, websphere, website names, application pool names, folder structure (where logs are located) all are belong to the topology file. Good way is to represent each server type as separate component in Nolio.

3. Release - is actually file that describing your package this is very important to redesign the packaging convention during this step if such needed since it is a crucial part in the implementations success. One of the successful approaches in package redesign is to break the package into smaller pieces. Each piece will be called an artifact. For example, if we deploy a website and under website we have 10 virtual directories, a good practice is to create one release number that unifies 10 smaller artifacts (in this case this step is enabler for us to make fast and quick deployments of specific artifact instead of all of them and the option to deploy different versions of artifacts as part of the same release).

Examples:

1. Env
 

 <env name="WPC-DS" escape-char="#">

     <property name="ODS_HOSTNAME">10.64.104.150</property>

     <property name="ODS_PORT">1531</property>

     <property name="ODS_SERVICENAME">odspus1.mia</property>

     <property name="OLTP_HOSTNAME">gcmdbp043-vip</property>

     <property name="OLTP_PORT">1532</property>

     <property name="OLTP_SERVICENAME">wpc2_wclpus5.mia</property>

     <property name="KEYSERVER_HOSTNAME">10.64.4.150</property>

     <property name="KEYSERVER_PORT">1532</property>

     <property name="KEYSERVER_SERVICENAME">OSSPUS1.MIA</property>

 </env>

 

2. Topology


<Topology>
<Server-Type name="WEB">
<App-Pools>
<App-Pool name="ACHILLES" recycle="24h" userid="1" />
<App-Pool name="CLIO" recycle="24h" userid="2" />
<App-Pool name="THALIA" recycle="24h" userid="2" />
<App-Pool name="ANDROMEDA" recycle="24h" userid="1" />
</App-Pools>
<Websites>
<Website name="ACHILLES" />
<Website name="CLIO" />
<Website name="THALIA" />
<Website name="ANDROMEDA" />
</Websites>
<Folders ids="1,2" />
</Server-Type>

<Server-Type name="APP">
<Services>
<Service name="APPOLO" />
<Service name="GAIA" />
<Service name="NIKE" />
</Services>
<Folders ids="1,2,3" />
</Server-Type>

<Server-Type name="DB">
<Schemas>
<Schema name="Cutomers" />
<Schema name="Finance" />
<schema name="Suppliers" />
</Schemas>
</Server-Type>

<Folders>
<Folder id="1" path="C:\inetpub" />
<Folder id="2" path="C:\conroller" />
</Folders>
<Users>
<User id="1" name="Administrator" pass="Encrypted" />
<User id="2" name="AppPoolUser" pass="Encrypted" />
</Users>
</Topology>

3. Release

<ReleaseManifest>
<Releases>
<Release ID="1.0.1">
<Application Name="WEB-PORTAL" Version="1.0.1">
<Artifacts>
<Artifact ID="App1" deploy="true" type="ear" extension="ear" source="archiva" />
<Artifact ID="App2" deploy="false" type="ear" extension="ear" source="archiva" />
<Artifact ID="log4j" deploy="true" type="template" extension="dtd" source="svn" />
<Artifact ID="clientkeystore" deploy="false" type="template" extension="jks" source="svn" />
<Artifact ID="loggerConfig" deploy="true" type="template" extension="xml" source="svn" />
<Artifact ID="service" deploy="false" type="template" extension="properties" source="svn" />
<Artifact ID="logout" deploy="true" type="template" extension="html" source="svn" />
<Artifact ID="login" deploy="true" type="template" extension="properties" source="svn" />
</Artifacts>
<Dependencies>
<Dependency ID="" product="Profile_Host" type="Internal" version="Release 2"/>
</Dependencies>
<Testscripts/>
</Application>
</Release>
</Releases>
<Dependencies/>
<Testscripts/>
</ReleaseManifest>

Environment

Release: NOLNAC99000-6.1-Nolio-Automation Center
Component: