1
PERFICIENT
IBM Pure Application Create Custom Virtual System Pattern using
Pattern.next How to guide on Virtual System Pattern creation for Pure Application
Technical Architect: Chuck Misuraca
2
Change History
Table 1: Document Change History
Document Revision &
Date
Editor Summary of Change
First Draft 1.0
04/09/15
Chuck Misuraca Initial version
3
Contents Change History .............................................................................................................................................. 2
Introduction to IBM Pure Application ........................................................................................................... 4
New features of Pattern.next ....................................................................................................................... 4
Purpose ......................................................................................................................................................... 5
Audience ....................................................................................................................................................... 5
Vocabulary words ......................................................................................................................................... 6
Background to the exercise: ......................................................................................................................... 8
Create Software packages ............................................................................................................................ 9
Software Package for OMS 94 .................................................................................................................. 9
Software Package for DB2 10 Drivers ..................................................................................................... 26
Script Package create the OMS DB2 database............................................................................................ 34
Create OMS9.4 Pattern ............................................................................................................................... 41
Deploy OMS9.4 Pattern .............................................................................................................................. 57
Troubleshot OMS9.4 Pattern ...................................................................................................................... 60
Appendix A: External Scripts use in the Pattern ......................................................................................... 78
Scripts in the db2driver software package ............................................................................................. 78
CleanUp.sh .......................................................................................................................................... 78
Scripts in the OMS 9.4 software package ............................................................................................... 78
OMSUnPack.sh .................................................................................................................................... 78
Installdb2Drivers.sh ............................................................................................................................ 78
InstallOMS.sh ...................................................................................................................................... 78
ConfigOMSDriver.sh ............................................................................................................................ 78
ConfigOMS.sh ...................................................................................................................................... 79
ConfigWAS.sh ...................................................................................................................................... 79
ConfigWAS4OMS.py ............................................................................................................................ 80
TEMP_ConfigWAS.py .......................................................................................................................... 82
silent.txt .............................................................................................................................................. 85
Appendix B: Example of a runtime deployment.json file ........................................................................... 87
References: ............................................................................................................................................... 102
4
Introduction to IBM Pure Application IBM Pure Application(PureApp) System V2(vsys) is an IBM cloud product offering that provides
customers with the choice of a Public Cloud(Softlayer), PureApp only(BYO Hardware) and Pure App
System(software and hardware in one package). In all cases PureApp is a single pane of glass that allows
the customer to design, deploy and monitor their IT infrastructure. Mission critical infrastructure can be
created in as little as 45 minutes.
New features of Pattern.next Pattern.Next architecture provides a number of new features designed to enhance the capabilities
of both Virtual System(VSP) and Virtual Application patterns(VAP). Those new features
include:
Decoupling of middleware from a base OS image
o This reduces the number of virtual images in the catalog and makes it easier to
use custom images in VSPs
o Maintenance is simpler since entire new hypervisor images don’t need to be
created for new middleware updates
Software Packages and new VSP engine
o Software Packages install middleware, constructed like a simplified version of a
VAP plugin
o Default policies in VAP now available for new VSPs
o Component dependencies generated with a simple drag-and-drop
o Script Package ordering simplified
Components and new VAP engine
o Components wrap a potentially complex VSP, making it a simple object in a new
VAP
o New Components can be combined in a VAP using the same drag-and-drop
dependency linkage available in VSPs
Script Packages can be created and installed using the new PDK
Software Packages can be created and installed using the new PDK
5
Purpose This document is a supplement to all IBM Pure Application official documentation. The purpose of this
document is to demonstrate the new Plug-in Development Toolkit(PDK) that was released with PureApp
V2(Pattern.next, vsys … synonyms for PureApp V2) This document will use:
1. PDK version 1.0.0.7
2. IBM Pure Application System V2 - linux
3. Python scripts(PDK)
4. WebSphere(Jython) scripts
5. Zipfiles – software packages
6. Shell scripts
7. IBM WebSphere Pattern - that come with PureApp V2
8. IBM DB2 Component - that come with PureApp V2
9. Installation Manager - that come with IBM WebSphere Pattern
Audience This document is for customer and consultants who are tasked with implementing IBM Pure Application
solutions. This document will demonstrate the development of a custom virtual system pattern that is a
derivative of a WebSphere VSP that comes with PureApp. This document is a cookbook on creating
PureApp artifacts and a vehicle for learning PureApp.
This is one approach to creating a new VSP from existing patterns and components. There are an infinite
number of ways to do this differently. Like any learning experience the more time invested, the better
you will get at it.
6
Vocabulary words Virtual Image - Is either a base OS image like Linux RedHat or an IBM Product image like WebSphere
Application Server(WAS) v8.5 Hypervisor addition. Virtual images are building blocks for Virtual System
Patterns(VSP) and Virtual Application Patterns(VAP).
Virtual System Pattern(VSP) - Is a set of Virtual images that are running software to create a specific
topology of a given IBM software product. An example would be WAS in a cluster topology for high
availability. VSP's allow the designer to control how many virtual images are used in the pattern.
Virtual Application Pattern(VAP) - Is a pattern that includes every Infrastructure piece needed to
implement a specific solution. Very little configuration or customization is available or needed. An
example is IBM Business Process Management(BPM) v8.5. BPM v8.5 on PureApp comes as a VAP so all a
user needs to do is fill out a few fields and deploy it. In the case of the BPM v8.5 VAP, the designer has
incorporated best practices into the pattern. The VAP itself hides these implementation details from the
user. With VAP's the user will not know how many virtual images are used until deployment time.
IBM PureFlex System - The IBM PureFlex System combines compute, storage, networking and
virtualization capabilities under a single, unified management console into an infrastructure system that
is expert at sensing and anticipating resource needs for your enterprise. PureFlex product is a great
candidate for hardware modernization and consolidation projects.
IBM PureApplication System(PureApp) - offers users IT lifecycle simplicity in a box, providing a
standardized cloud application platform for your web and database applications. Pure Application is the
product associated with rapid deployment of mission critical infrastructure.
IBM PureData System - is optimized exclusively for delivering data services to today's demanding
applications with simplicity, speed & lower cost.
IBM delivered Assets - Virtual Images, Virtual System Patterns, Virtual Application Patterns ... etc. The
parts and pieces to build IT infrastructure solutions.
Compute node - This is a set of computer hardware containing CPU and memory that has access to storage
and networking.
Pure Application workload console - is the single pane of glass that provides users access to Pure
Application System. The user can design, deploy and monitor infrastructure patterns.
Pure Application system console - is the single pane of glass that Pure Application is administered from.
The admin can:
1. Create or modify environmental profiles. Environmental profiles are the policy for deploying
patterns into cloud groups. It creates logical isolation of resources by allocating the resources.
This is how customers have DEV, QA and PRD on one Pure System.
2. Create IP groups. IP groups are a set of IP addresses, the ID of the VLAN they will use to
communicate, and settings for how to connect to the network the VLAN is part of. The
7
customer’s network team needs to reserve a block for the Pure App system before it can be
added to their network.
3. Create or modify cloud group. Cloud groups are a collection of one or more compute nodes and
one or more IP groups. It is essentially a logical computer. It physically isolates resources.
8
Background to the exercise: This document will demonstrate how to take a base pattern and use it to install a product. The creation
process will install and configure IBM Sterling OMS v9.4 Enterprise Edition. This virtual system pattern
will be configured for a Dev, Integration and/or test environment, NOT Production. A Production system
would need a capacity planning document, which is not covered in this document. What we will be
building is depicted below:
9
Create Software packages In this section we will create the software packages we need to Install OMS v9.4 and enhance the
WebSphere Application Server v8.5.5 that comes with PureApp. The packages will give the reader a
good idea of the level of effort need to create a software package.
Software Package for OMS 94 1. In Eclipse, verify you are in the Workload Plug-in Development perspective
2. Go to File -> New -> Project -> IBM Workload Plug-in Development -> IBM Workload Software
Component Project
3. Click next
10
4. Provide a project and plug-in name:
a. Project - vsys.oms_94
b. Plug-in name - vsys.oms_94
c. Plug-in version - 1.0.0.0
d. Click Finish
5. The new project opens up and as you can see there is an outline of the steps. We are going to
follow them.
11
6. Click on Configure software packages – Step 1:
7. Check the Pattern Types setting, if it has no primary and the secondary is ‘vsys’,
12
1. Click the link to add a Primary of vsys:1.0
2. Click ok
3. Then delete the existing secondary
4. Click close
5. Click Artifact.
13
6. Click Add.
7. Select your software from your local drive.
8. Notice that the “Relative path” is location in the Pure App Storehouse.
Naming convention being used is: vsys/<project name>/install/<your install media>
9. Click OK.
10. Click Close.
Now we are going to add parameters that will be used in the install and configure scripts.
14
11. Click the x86_64 (Linux ) Link
12. Now click on OMS_94.scripts
13. Now click Parameters
14. We will add the following parameters
15
a. binaryURL – With the value vsys/oms_94/install/OMS9.4.zip – location in repository
b. binaryHomePath with value foundation – OMS unzip directory for the install media
Note: You can add more but since we are not starting from scratch these are all will need. In fact
since we know IBM Installation Manager is in the Pattern we only need the foundation directory
of OMS 9.4 install media.
15. Click Add.
16. Click OK
17. Now do the same for the other parameters.
16
18. Click Close
Now we will add a component to our Software package.
19. Click the Component tab
20. Click Add
17
21. Enter ID, Label and Description.
a. ID is: oms94
b. Label is: IBM Sterling OMS 94
c. Description is: IBM Sterling OMS 94 Enterprise Edition
22. Click on the Attributes
23. We will add 4 attributes, the debugFlag, binaryDir, InstallDir and DB2_Node_Name
24. Click Add
18
25. Click OK because we need a string
26. Fill in
a. ID is binaryDir
b. Label is: OMS Media location
c. Description: This is the download location
d. Required checked
e. Value is: /oms
27. Click Add again
28. Click OK
29. Fill in
a. ID is: InstallDir
b. Label is: OMS Install location
c. Description is This is the install location
d. Required checked
e. Value is /oms/OMS94
30. Click Add again – this time it’s a Boolean
19
31. Click ok
32. Fill in
a. ID is: debugFlag
b. Label is: debug Flag
c. Description is: Debug flag to generate additional logging in lifecycle scripts
d. Value is: true
33. Click Add again
34. Click Ok
35. Fill in
a. ID is: DB2_Node_Name
b. Label is: Name of the OMS Db2 Component
c. Description is: Use this to search the deployment.json file.
d. Required checked
e. Value is: DB2_OMS
36. Click save icon
37. Click on the Overview tab at the bottom.
38. Click on install.py - so we can start coding. The header at the top is quite helpful … read it!
20
39. Listed below is the code. The comments will explain the code.
40. Before you can learning anything you have to learning the lingo. From reading this code you
should learn how to:
a. Retrieve the parameters which are the attributes from the Component Tab
b. Get your Package ID which is listed in the Package Details panel
c. Retrieve the package variables which are the Package Parameters
d. Use the methods from the imports.
e. Use maestro to trace your external scripts as they run.
f. Retrieve and parse the deployment.json file. This is how you get access to runtime
info like the DB2 server host name.
import os import logging import maestro import urlparse import json #These section test you memory # get the parms from the component - i.e. the attributes from your component. debug = maestro.parms[ 'debugFlag' ] binaryDir = maestro.parms[ 'binaryDir' ] InstallDir = maestro.parms[ 'InstallDir' ] DB2Node = maestro.parms[ 'DB2_Node_Name' ]
21
#Set package to our package id. i.e the package name from package Details panel package = 'OMS_94' # get the storehouse values from the package variables - which are the parameters #from the package Detail panel binaryUrl = maestro.packages[package][0][ 'binaryURL' ] binaryHomePath = maestro.packages[package][0][ 'binaryHomePath' ] logger = logging.getLogger("Oms_94/install.py") if debug: logger.debug( '\n========== maestro.parms ==========' ) logger.debug(maestro.parms) logger.debug( '\n========== maestro.node["parts"] ==========' ) logger.debug(maestro.node['parts']) logger.debug( '\n========== maestro.packages ==========' ) logger.debug(maestro.packages) logger.debug( '\n========== maestro.role ==========' ) logger.debug(maestro.role) logger.debug( '\n========== binaryUrl ==========' ) logger.debug(binaryUrl) logger.debug( '\n========== binaryHomePath ==========' ) logger.debug(binaryHomePath) logger.debug( '\n========== DB2 Node Name==========' ) logger.debug(DB2Node) logger.debug( '========== end of debug ==========' ) # construct the path to the install file in the Storehouse InstallerUrl = urlparse.urljoin(maestro.filesurl, binaryUrl) if debug: logger.debug("\n==> binaryUrl: %s" % binaryUrl) logger.debug("\n==> binaryHomePath: %s" % binaryHomePath) logger.debug("\n==> InstallDir: %s" % InstallDir) logger.debug("\n==> InstallerUrl: %s" % InstallerUrl) # download and unpack the install file from the Storehouse maestro.downloadx(InstallerUrl, binaryDir) # construct the local path to the server installation and save it for other scripts. oms_home = InstallDir maestro.role['OMS_HOME'] = oms_home oms_bin = InstallDir maestro.role['OMS_BIN'] = binaryDir # construct path to this instance's deployment.json file shDeployURL = maestro.node['deployment.url'] + "/" deployJsonUrl = urlparse.urljoin(shDeployURL, "deployment.json") if debug: logger.debug("deployment.json file fragment '%s'" % shDeployURL) jsonFilePath = os.path.join("/tmp", "deployment.json") if debug: logger.debug("Get deployment.json from '%s' and download it to '%s'" % (deployJsonUrl, jsonFilePath)) # Download the deployment.json file from the storehouse
22
maestro.download(deployJsonUrl, jsonFilePath) # Convert the text file to a JSON object with open(jsonFilePath, mode='r') as f: jsonSource = json.load(f) if debug: logger.debug('Deployment JSON: \n' + json.dumps(jsonSource, sort_keys=True, indent=4 )) # Manually populate standalone output variable with attribute from deployment.json #DB2Node='DB2_OMS' InstanceList = jsonSource['bbson']['boot.helpers'] logger.debug("\n==> InstanceList: %s" % InstanceList) DB2InstanceName="" for HostInstance in InstanceList: logger.debug( "\n==> HostInstance: %s" % HostInstance) if (HostInstance.find(DB2Node) != -1): logger.debug( "\n==> found DB HostInstance: %s" % HostInstance) DB2InstanceName = HostInstance # DB2InstanceName = DB2InstanceName.replace("u","") break DBhostName = jsonSource['instances'][DB2InstanceName]["public-hostname"] logger.debug("\n==> DBhostName: %s" % DBhostName) #update Response file with DB Host name server_rsp_path = binaryDir+'/'+'silent.txt' os.system('chmod -R 777 %s' % (binaryDir)) TXTfiles = binaryDir+"/*.sh" os.system('dos2unix %s' % (TXTfiles)) TXTfiles = binaryDir+"/*.py" os.system('dos2unix %s' % (TXTfiles)) TXTfiles = binaryDir+"/*.txt" os.system('dos2unix %s' % (TXTfiles)) #update Response file for install. os.system('sed -i -e "s#<DBHOST>#%s#g" %s' % (DBhostName, server_rsp_path)) Get_UnZip_sh=binaryDir+"/OMSUnPack.sh" rc = maestro.trace_call(logger, Get_UnZip_sh) maestro.check_status(rc, 'Failed while executing %s' % Get_UnZip_sh) os.system('chmod -R 777 %s' % (binaryDir)) install_sh=binaryDir+"/InstallOMS.sh" rc = maestro.trace_call(logger, install_sh) maestro.check_status(rc, 'Failed while executing %s' % install_sh)
41. Click save icon
42. Click on the Overview tab at the bottom.
23
43. Click on configure.py - so we can start coding.
44. Listed below is the code. The comments will explain the code.
import logging import maestro logger = logging.getLogger("Oms_94/configure.py") # Retrieve saved value for OMS Binary Dir binaryDir = maestro.role['OMS_BIN'] logger.debug("==> Retrieved OMS Binary dir = " + binaryDir) config_sh = binaryDir+"/ConfigOMSDriver.sh" rc = maestro.trace_call(logger, config_sh) maestro.check_status(rc, 'Failed while executing %s' % config_sh)
Now we Build.
45. Right Click the Project
46. Click on Build with binary
47. You should see BUILD SUCCESSFUL
48. Right Click the Project
24
49. Click on Install/update to test environment
50. When the Installing completes you should see Success
51. Now go to Pure App Workload Console.
25
52. Click on Cloud -> System Plug-ins
53. Search 0n vsys.oms
26
54. Click on vsys.oms_9.4 1.0.0.0
55. These are all the values we used to create this Software Package.
56. Move on to the next section.
Software Package for DB2 10 Drivers This package is simple. So we will minimize the screen shots. The purpose of doing this software package
is to demonstrate the easy of automating small but tedious tasks. Basically all this will do is put the db2
JDBC type 4 driver files in the WebSphere Application Server universalDriver/lib directory. This will save
the effort of logging on to each machine. Then FTPing the files over and placing them in the directory …
etc. As a follow on exercise we could implement are own WAS pattern and make this script a part of it.
But for now we are using what is delivered with IBM Pure App V2.
1. In Eclipse, verify you are in the Workload Plug-in Development perspective
2. Go to File -> New -> Project -> IBM Workload Plug-in Development -> IBM Workload Software
Component Project
3. Click next
4. Provide a project and plug-in name:
a. Project - vsys.db2_10
b. Plug-in name - vsys.db2_10
c. Plug-in version - 1.0.0.0
d. Click Finish
5. The new project opens up and as you can see there is an outline of the steps. We are going to
follow them.
27
6. Click on Configure software packages – Step 1:
7. Check the Pattern Types setting, if it has no primary and the secondary is ‘vsys’
8. click the link to add a Primary of vsys:1.0
9. click ok 10. Then delete the existing secondary
11. Click close 12. Click Artifact.
13. Click Add.
14. Select your software from your local drive.
15. Notice that the “Relative path” is location in the Pure App Storehouse.
Naming convention being used is: vsys/<project name>/install/<your install media>
16. Click OK.
17. Click Close.
Now we are going to add parameters that will be used in the install and configure scripts.
18. Click the x86_64 (Linux ) Link
28
19. Now click on db2_10.scripts
20. Now click Parameters
21. We will add the following parameters
a. debugFlag set to true for now
b. binaryURL with value vsys/db2_10/install/db2drivers.zip – location in repository
Note: you can add more but since we are not starting from scratch these are all will need.
22. Click Add.
23. Click OK.
24. Now do the same for the other 1 parameters.
25. Click Close
Now we will add a component to our Software package.
26. Click the Component tab
27. Click Add
29
28. Enter ID, Label and Description.
c. ID is db210
d. Label is IBM DB2 v10
e. Description is IBM DB2 v10 UDB
29. Click on the Attributes
30. We will add 1 attributes, InstallDir
31. Click Add
30
32. Click OK because we need a string
33. Fill in
f. ID is InstallDir
g. Label is D2 drivers Install location
h. Description is This is the install location
i. Required checked
j. Value is /opt/IBM/WebSphere/AppServer/universalDriver/lib
34. Click save icon
35. Click on the Overview tab at the bottom.
36. Click on install.py
37. Listed below is the code.
import os import logging import maestro #import json import urlparse logger = logging.getLogger("Db2_10/install.py") # get the parms from the component - i.e. the attributes from your component. InstallDir = maestro.parms[ 'InstallDir' ] debug = maestro.parms[ 'debugFlag' ] #Set package to our package id. i.e the package name from package Details panel package = 'DB2_10' # get the storehouse values from the package variables - which are the parameters
31
#from the package Detail panel. binaryUrl = maestro.packages[package][0][ 'binaryURL' ] if debug: logger.debug( '\n========== maestro.parms ==========' ) logger.debug(maestro.parms) logger.debug( '\n========== maestro.node["parts"] ==========' ) logger.debug(maestro.node['parts']) logger.debug( '\n========== maestro.packages ==========' ) logger.debug(maestro.packages) logger.debug( '\n========== maestro.role ==========' ) logger.debug(maestro.role) logger.debug( '\n========== maestro.filesurl ==========' ) logger.debug(maestro.filesurl) logger.debug( '========== end of debug ==========' ) # construct the path to the install file in the Storehouse installerUrl = urlparse.urljoin(maestro.filesurl, binaryUrl) if debug: logger.debug("\n==> binaryUrl: %s" % binaryUrl) logger.debug("\n==> InstallDir: %s" % InstallDir) logger.debug("\n==> installerUrl: %s" % installerUrl) Db2Drv_files=InstallDir+"/db2*" os.system('rm -rf %s' % (Db2Drv_files)) # download and unpack the install file from the Storehouse maestro.downloadx(installerUrl, InstallDir) os.system('chmod 777 %s' % (Db2Drv_files))
38. Click save icon
39. Right Click the Project
40. Click on Build with binary
32
41. Right Click the Project
42. Click on Install/update to test environment
43. When this completes you should see this:
44. Now Switch to Pure App Workload Console.
33
45. Click on Cloud -> System Plug-ins
46. Search 0n vsys.db2
47. Click on vsys.db2_10 1.0.0.0
48. These are all the values we used to create this Sotfware Package.
49. Move on to the next section.
34
Script Package create the OMS DB2 database In this section we will create the script packages we need to create the OMS v9.4 database on our DB2
server. There is only 1 argument in this example, as a follow on exercises this scripting package could be
changes to add more arguments like database name … etc.
1. Back in your Eclipse environment, click the File -> New -> Project and select IBM Workload
Script Package Project
2. Click Next
35
3. Fill in:
a. Project Name Is: Create OMS DB2 Database
b. Script Name is: createDatabase
c. Click Finish.
36
4. Fill in:
a. Name: createDatabase
b. Description: Create OMS DB
c. Command: sh ./createDatabase.sh
d. Command arguments: $DB_OWNER_ID
e. OS type: linux/unix
f. Type: APPLICATION
g. Click Add
37
h. Fill in:
i. Type: String
ii. Script key: DB_OWNER_ID
iii. Default value: db2inst1
iv. Description: Db2 default owner ID
v. Required: checked
38
5. Click Save
6. Right Click the Folder named createDatabase
7. New -> File
8. Create file named: createDatabase.sh
9. A text editor will open so you can write the script
10. Here is the content of this script:
#!/bin/sh
export DATABASE_OWNER=${DB_OWNER_ID}
su -c 'db2set DB2_SKIPINSERTED=ON' - $DATABASE_OWNER
su -c 'db2set DB2_USE_ALTERNATE_PAGE_CLEANING=ON' - $DATABASE_OWNER
#su -c 'db2set DB2LOGINRESTRICTIONS=NONE' - $DATABASE_OWNER
su -c 'db2set DB2_NUM_CKPW_DAEMONS=0' - $DATABASE_OWNER
su -c 'db2set DB2_EVALUNCOMMITTED=ON' - $DATABASE_OWNER
su -c 'db2set DB2_SELECTIVITY=ALL' - $DATABASE_OWNER
su -c 'db2set DB2_SKIPDELETED=ON' - $DATABASE_OWNER
#su -c 'db2set DB2_MMAP_WRITE=OFF' - $DATABASE_OWNER
39
#su -c 'db2set DB2_MMAP_READ=OFF' - $DATABASE_OWNER
su -c 'db2set DB2LOCK_TO_RB=STATEMENT' - $DATABASE_OWNER
su -c 'db2set DB2COMM=TCPIP' - $DATABASE_OWNER
su -c 'db2set DB2AUTOSTART=YES' - $DATABASE_OWNER
su -c 'db2stop' - $DATABASE_OWNER
su -c 'db2start' - $DATABASE_OWNER
su -c 'db2 create db OMSDB using codeset UTF-8 territory us COLLATE
USING UCA400_NO PAGESIZE 32768' - $DATABASE_OWNER
exit 0
11. Click Save
12. Close the Text editor
13. Right Click the Project
14. Click on Build
15. Right Click the Project
16. Click on Install/update to test environment
17. Now Switch to Pure App Workload Console.
18. Click Catalog -> Scripting Package
19. Search 0n: createDatabase
40
20. Click on createDatabase
21. Here are the values we used.
22. Move to the next section.
41
Create OMS9.4 Pattern In this section we will use the 2 software packages and 1 scripting package that we created to build the
custom pattern OMS9.4. As stated earlier we will use patterns and components that are delivered with
IBM Pure Application V2(i.e. vsys, Pattern.next … etc.). By using the delivered patterns and components
we will significantly decrease the time to delivery. Of course by using someone else’s parts there will be
tradeoffs. We will note them as we go.
1. Now go to Pure App Workload Console.
2. Click Pattern -> Virtual Systems
42
3. Click Create New.
4. This is the starting point for developing a custom pattern.
5. Type in Name OMS9.4
43
6. Scroll down and select WebSphere cluster (development)
7. Click on Start Building
8. You will see the IBM delivered pattern we are going to extend.
44
9. Add a Database Server DB2 to the canvas by dragging and dropping. Then click on it.
10. Click on the Add Component Icon.
45
11. Click on Default add disk
12. Now Click on the Default add disk Add-On.
13. In the lower right hand panel, Type in the following:
46
a. MOUNT_POINT is: /db2/data
b. OWNER is: db2inst1
14. Click Save- in the upper left hand corner.
HINT: we are going to click on every part and every added part to fill out a form in that right
hand panel.
15. Change the following values:
a. Name: DB2_OMS – So it matches our script variables.
b. Virtual CPU: 2
c. Memory size: 8196
d. Type in the root password of your choice
47
e. Type in the virtuser password of your choice
f. Click save
16. Click the arrow head next to Database Server
17. Fill in the following values:
a. Fence password: your choice
b. Instance owner password: your choice
c. Mount point for instance owner: /db2/data
d. Click save
Note: If we had implemented the DB2 server component we could have had the mount point populated
from the add disk. For now we can type it.
48
18. Add the Create DB2 database script to the DB2 server component. I used the filter to make it’s
obvious which one to use. The filter is a handy tool especially on a Pure App System that is used
by multiple tenants.
19. Fill in the database owner. The scripts are using db2inst1
20. Click save
49
21. Now install the db2 drivers software component on the custom node component.
22. Drag and drop it on the Custom Node component.
23. Click save
24. Now install the IBM Sterling OMS 9.4 software component on the DmgrNode component.
50
25. Drag and drop it on the DmgrNode component.
26. Click Save
27. Click the add component icon on the DmgrNode
28. Click Default add disk
29. Fill in
a. DISK SIZE GB is 20
51
b. MOUNT POINT is: /oms
c. OWNER is: virtuser
d. Click save
30. Click on the DmgrNode and change:
a. Virtual CPU: 2
b. Memory size: 8192
c. Click save
d. As a side exercise click the other components arrow heads. Like root and virtuser
password fields, the creator of this pattern automated the population of these fields. A
benefit of using delivered components
31. Click on the Deployment manager arrow head.
32. Find the Install additional feature and click the check box.
33. Then click the check box next to Java SDK v7.0
Note: Java 7 is needed for the install of OMS 9.4 and then WAS 8.5.5.x will need to be converted
to run with Java 7.
52
34. Click on the IBM Sterling OMS 9_4 arrow head
a. The Name of the OMS Db2 Component has to be manually entered. The creator of the
DB2 component did not provide the node name as an output parm. A follow on exercise
would be to re-implement the DB2 server component so it provides its node name.
35. Click on the CustomNode and change:
a. Virtual CPU: 2
b. Memory size: 8192
c. Click save
53
36. Click on the Custom nodes arrow head.
37. Find the Install additional feature and click the check box.
38. Then click the check box next to Java SDK v7.0
Note: Java 7 is needed to run OMS 9.4 so WAS 8.5.5.x will need to be converted to run with Java 7.
39. Click on the Base Scaling Policy_2
40. These scaling policies are great features that can be added to any Pure App Pattern component.
HINT: With an IBM techline sizing and these policies, this DEV, QA pattern could easily be turned
into a Staging, Perf tuning, PRODUCTION pattern.
54
41. Click on the canvas off of any component. Pattern level Parameters will automate the filling in of
common values that every virtual machine in the pattern will need. This is especially handy at
deploy time. At deploy time all required parameters have to be filled in.
42. Fill in the Pattern level Parameters with your choices.
43. Click save
55
44. Click on Ordering at the top left.
45. Here is the default order of execution
46. Add a dependence from createDatabase to IBM Sterling OMS 9_4
56
47. We do this by hovering over the end of one component and dragging the connection to the
front of the target component.
48. Click save
49. You can close the Pattern Builder by exiting the browser page.
57
Deploy OMS9.4 Pattern
1. Here is the new custom pattern
2. Click Deploy
58
3. A separate tab will open in the browser. Click on the new tab.
4. Change the name to OMS9.4_0001
5. Click Quick Deploy – we can do a Quick Deploy because we filled in all the required values in the
Pattern Builder.
6. You will see a status box appear.
59
7. When the status box changes, Click the link to get to the Virtual System Instances Panel.
8. I used the filter to see just our instance.
9. Our instance is in the Launching state.
10. Click OMS9.4_0001
11. This is the Pure App System “single pane of glass”. I know this could never happen in the real
world but there was a typo in the pattern OMS9.4 . We are going to do some
troubleshooting Pure App style. So hold on tight. The “single pane of glass” is one of the greatest
features of the Pure App Systems.
60
Troubleshot OMS9.4 Pattern I this section we will use the Virtual System Instance Panel to gather information and isolate the issue to
the failing component of the OMS9.4 pattern.
1. We got an overall status of error on the instance OMS9.4_0001.
61
2. You can see in the History section of the panel that all of our virtual systems OS level build items
were successful. See above.
3. We can also see just from the history that all of our developed components were stop. Again in
the Virtual machine perspective all 4 vm’s are running with no issues. So it has to be a
customization.
4. Click on the Plus sign next to Middleware perspective.
62
5. In this section at each Plus sign are links to every … I said every component’s log files. Do not get
overwhelmed.
6. As we can see there are 2 . We know OMS install and configuration needs a Database, so that
error is expected since the Database parts deploy failed. So we will focus on the
Database_Server-Part .
7. Click on the Database_Server-Part plus sign.
8. Click on Log.
63
9. A new browser tab will open up with the Log Viewer
10. Click on Plus sign next to DB2_OMS.<number>
11. You should look at each one of these to become familiar with them.
12. But since we know that it was a configuration error(maestro schedule) we will click IWD Agent
plus sign.
64
13. We know that it was the Database_Server-Part script that failed so we will click on the plus sign
next to it.
14. All 3 logs have a wealth of information but if there is an error in console.log or scripts.log they
will point you to trace.log. So click on trace.log
65
15. First thing I would like to point out is the tool bar at the top. You can save this file locally, you
can search. You also can Track the end of the log file … like tail.
16. Since we do not know where the error is, I am going to the bottom and scrolling up.
17. There is the typo /db3/data, it should be /db2/data.
18. Switch back to the Virtual System Pattern Panel.
19. Click open to get to the Pattern Builder.
66
20. We will click on the Default add disk on the DB2_OMS component.
21. Well that looks good.
22. Click on the Database Server on the DB2_OMS component.
67
23. There is the typo.
24. Correct it.
25. Click Save.
26. Close the Pattern Builder.
27. Close the Log Viewer browser tab.
28. In the Virtual System Instances Panel. Click Delete
68
29. Click Delete again. You should always cleanup after yourself.
30. Switch back to the Virtual System Pattern Panel.
31. Click Deploy.
32. A separate tab will open in the browser. Click on it.
33. Change the name to OMS9.4_0001
34. Click Quick Deploy.
35. You will see a status box appear.
36. Click the link to get to the Virtual System Instances Panel.
37. I used the filter to see just our instances.
69
38. Our New instance is in the Launching state and the old one is in the stop state. Soon to be in the
terminated deleted state.
39. Click OMS9.4_0001 with Status of Launching
40. Now we wait.
70
41. About 2 hours later, it is all running error free.
42. Here are the vm names, IP addresses and vital signs.
71
43. Hit the Dmgr admin console. URL: http://172.19.95.19:9080/ibm/console
44. Login with your WAS admin ID and PW.
45. Start the OMSCluster
72
46. Monitor the 2 cluster members until they start.
47. Check to see that OMS app started.
73
48. Hit URL http://172.19.95.21:9080/smcfs/console/login.jsp
49. Logon to OMS with the admin/password
74
50. Click Configuration -> Channel Application Manager
51. This will make your OMS Team lead very happy!
75
52. Hit URL: http://172.19.95.21:9080/sbc/sbc/login.do
53. Logon to sbc with the admin/password
54. You are free to test out the second node.
55. At this point Pure App System is like any other UNIX based machine in your IT shop.
76
56. Here are screen shoots of putty sessions of all the virtual machines in this pattern.
Dmgr:
WAS Node 1:
77
WAS Node 2:
DB2 Server:
57. That’s all Folks!
78
Appendix A: External Scripts use in the Pattern This appendices contains the scripts used in packages developed in the PDK.
Scripts in the db2driver software package
CleanUp.sh
#!/bin/sh service iptables save;service iptables stop;chkconfig iptables off
Scripts in the OMS 9.4 software package
OMSUnPack.sh
#!/bin/sh service iptables save;service iptables stop;chkconfig iptables off cd /oms wget http://172.19.84.147/Inst_media/images/foundation.zip unzip foundation.zip chmod -R 755 foundation chown -R virtuser:admingroup foundation rm -rf /oms/foundation.zip /oms/Installdb2Drivers.sh
Installdb2Drivers.sh
#!/bin/sh
chmod 777 /oms/db2v10drivers.zip
su - virtuser -c 'unzip -o /oms/db2v10drivers.zip -d /opt/IBM/WebSphere/AppServer/universalDriver/lib'
chmod 777 /opt/IBM/WebSphere/AppServer/universalDriver/lib/db2*
dos2unix /opt/IBM/WebSphere/AppServer/universalDriver/lib/*.sh
chmod 777 /opt/IBM/WebSphere/AppServer/universalDriver/lib/*.sh
InstallOMS.sh
#!/bin/sh
su - virtuser -c '/opt/IBM/IMInstallable/tools/imcl input /oms/silent.txt -acceptLicense -log log_file.txt’
ConfigOMSDriver.sh
#!/bin/sh
79
su - virtuser -c '/oms/ConfigOMS.sh'
su - wasadmin -c '/oms/ConfigWAS.sh'
ConfigOMS.sh
#!/bin/sh
export JAVA_HOME=/opt/IBM/WebSphere/AppServer/java
export
PATH=/opt/IBM/WebSphere/AppServer/java/bin:/usr/local/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/ho
me/virtuser/bin:/usr/bin
java -version
HOSTNAME=`hostname`
cd /oms/OMS94/properties
echo 'WAS_DIR=/opt/IBM/WebSphere/AppServer' >> sandbox.cfg
echo 'yfs.httpOnlyCookie=false' >> customer_overrides.properties
cd /oms/OMS94/bin
./install3rdParty.sh websphere 8_0 -j
/opt/IBM/WebSphere/AppServer/runtimes/com.ibm.ws.orb_8.5.0.jar -targetJVM EVERY
./install3rdParty.sh websphere 8_0 -j
/opt/IBM/WebSphere/AppServer/runtimes/com.ibm.ws.sib.client.thin.jms_8.5.0.jar -targetJVM EVERY
./install3rdParty.sh websphere 8_0 -j
/opt/IBM/WebSphere/AppServer/runtimes/com.ibm.ws.ejb.thinclient_8.5.0.jar -targetJVM EVERY
./install3rdParty.sh websphere 8_0 -j /opt/IBM/WebSphere/AppServer/lib/j2ee.jar -targetJVM EVERY
./install3rdParty.sh websphere 8_0 -j /opt/IBM/WebSphere/AppServer/plugins/com.ibm.ws.wccm.jar -
targetJVM EVERY
./setupfiles.sh
./deployer.sh -t resourcejar
./deployer.sh -t entitydeployer
./deployer.sh -t updateERD
./buildear.sh create-ear -Dappserver=websphere -Dwarfiles=smcfs,sma,sbc -Dearfile=smcfs.ear -
Dnowebservice=true -Ddevmode=true -Dnodocear=true -Dnodocwar=true -Dnoejb=true
ConfigWAS.sh
#!/bin/sh
80
HOSTNAME=`hostname`
/opt/IBM/WebSphere/Profiles/DefaultDmgr01/bin/wsadmin.sh -lang jython -f
/oms/ConfigWAS4OMS.py $HOSTNAME
sed -f/home/wasadmin/sub.txt /oms/TEMP_ConfigWAS.py > /tmp/ConfigWAS.py
/opt/IBM/WebSphere/Profiles/DefaultDmgr01/bin/wsadmin.sh -lang jython -f /tmp/ConfigWAS.py
ConfigWAS4OMS.py
import sys
import os
import re
import string
HostName = sys.argv[0]
print "Host Name is: "+HostName
CellId=AdminConfig.list('Cell')
#print AdminConfig.showall(CellId)
CellName=AdminConfig.show(CellId,'name')
print "CellName "+CellName
CellName=CellName.replace("]","")
CellNameParts=CellName.split()
CellName=CellNameParts[1]
print "Cell Name is: "+CellName
nodeList=AdminConfig.list('Node')
print "Node List: \n"+nodeList
node01=""
node02=""
output=open('sub.txt','w')
for NodeId in nodeList.split():
NodeHost=AdminConfig.show(NodeId,'hostName')
# print "Node Host: "+NodeHost+" "+HostName
if (NodeHost.find(HostName) == -1):
print "found Node: " + NodeHost
NodeName=AdminConfig.show(NodeId,'name')
if (node01==""):
81
#node01=NodeName
print " Node 1 is: "+NodeName
NodeNameParts=NodeName.split()
NodeName=NodeNameParts[1]
node01=NodeName
node01=node01.replace("]","")
print " Node 1 is: "+node01
print "node01="+NodeId
else:
node02=NodeName
#node02.replace("]","")
#node02.replace("]"," ")
NodeNameParts=node02.split()
node02=NodeNameParts[1]
node02=node02.replace("]","")
print " Node 2 is: "+node02
print "node02="+NodeId
break
CMD="s/\//\\\//g\n"
#output.write(CMD)
print CMD
CMD="s/\]//g\n"
#output.write(CMD)
print CMD
AuthAlias=AdminTask.createAuthDataEntry('[-alias OMS_Auth_Alias -user db2inst1 -password ibmroot -
description ]')
AuthName=AdminConfig.show(AuthAlias,'alias')
print "AuthName= "+AuthName
#AdminConfig.showall(AuthAlias)
NameParts=AuthName.split()
AuthName=NameParts[1]
NameParts=AuthName.split("/")
NameParts[1]=NameParts[1].replace("]","")
AuthName=NameParts[0]+"\/"+NameParts[1]
print "AuthName "+AuthName
CMD="s/<CELLNAME>/"+CellName+"/g\n"
output.write(CMD)
82
print CMD
#CMD="s/<CELLID>/'"+CellId+"'/g\n"
#output.write(CMD)
#print CMD
CMD="s/<AUTHALIAS>/"+AuthName+"/g\n"
output.write(CMD)
print CMD
CMD="s/<NODE01>/"+node01+"/g\n"
output.write(CMD)
print CMD
CMD="s/<NODE02>/"+node02+"/g\n"
output.write(CMD)
print CMD
output.close()
AdminConfig.save()
TEMP_ConfigWAS.py
import time
CELLId=AdminConfig.getid('/Cell:<CELLNAME>')
JDBCProviderID=AdminTask.createJDBCProvider('[-scope Cell=<CELLNAME> -databaseType DB2 -
providerType "DB2 Using IBM JCC Driver" -implementationType "Connection pool data source" -name
"DB2 Using IBM JCC Driver" -description "One-phase commit DB2 JCC provider that supports JDBC 4.0
using the IBM Data Server Driver for JDBC and SQLJ. IBM Data Server Driver is the next generation of the
DB2 Universal JCC driver. Data sources created under this provider support only 1-phase commit
processing except in the case where JDBC driver type 2 is used under WebSphere Application Server for
Z/OS. On WebSphere Application Server for Z/OS, JDBC driver type 2 uses RRS and supports 2-phase
commit processing. This provider is configurable in version 7.0 and later nodes." -classpath
[${DB2_JCC_DRIVER_PATH}/db2jcc4.jar ${UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc_license_cu.jar
${DB2_JCC_DRIVER_PATH}/db2jcc_license_cisuz.jar ${PUREQUERY_PATH}/pdq.jar
${PUREQUERY_PATH}/pdqmgmt.jar ] -nativePath [${DB2_JCC_DRIVER_NATIVEPATH} ] ]')
DS=AdminTask.createDatasource(JDBCProviderID, '[-name SSFS -jndiName jdbc/SSFS -
dataStoreHelperClassName com.ibm.websphere.rsadapter.DB2UniversalDataStoreHelper -
containerManagedPersistence true -componentManagedAuthenticationAlias <AUTHALIAS> -
83
configureResourceProperties [[databaseName java.lang.String OMSDB] [driverType java.lang.Integer 4]
[serverName java.lang.String 172.19.84.119] [portNumber java.lang.Integer 50000]]]')
DSMap=AdminConfig.create('MappingModule', DS, '[[authDataAlias <AUTHALIAS>] [mappingConfigAlias
DefaultPrincipalMapping]]')
AdminConfig.modify(DS, '[[name "SSFS_DS"] [authDataAlias "<AUTHALIAS>"] [xaRecoveryAuthAlias ""]]')
AdminConfig.create('MappingModule', DS, '[[authDataAlias <AUTHALIAS>] [mappingConfigAlias
DefaultPrincipalMapping]]')
OMSCluster=AdminTask.createCluster('[-clusterConfig [-clusterName OMSCluster -preferLocal true]]')
M01=AdminTask.createClusterMember('[-clusterName OMSCluster -memberConfig [-memberNode
<NODE01> -memberName OMSsrv001 -memberWeight 2 -genUniquePorts true -replicatorEntry false] -
firstMember [-templateName default -nodeGroup DefaultNodeGroup -coreGroup DefaultCoreGroup -
resourcesScope cluster]]')
M02=AdminTask.createClusterMember('[-clusterName OMSCluster -memberConfig [-memberNode
<NODE02> -memberName OMSsrv002 -memberWeight 2 -genUniquePorts true -replicatorEntry false]]')
SRV01=AdminConfig.getid('/Cell:<CELLNAME>/Node:<NODE01>/Server:OMSsrv001/')
SRV02=AdminConfig.getid('/Cell:<CELLNAME>/Node:<NODE02>/Server:OMSsrv002/')
AdminTask.setJVMProperties('[-nodeName <NODE01> -serverName OMSsrv001 -verboseModeClass
false -verboseModeGarbageCollection false -verboseModeJNI false -initialHeapSize 4096 -
maximumHeapSize 4096 -runHProf false -hprofArguments -debugMode false -debugArgs "-
agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7777" -executableJarFileName -
genericJvmArguments -disableJIT false]')
AdminTask.setJVMProperties('[-nodeName <NODE01> -serverName OMSsrv001 -verboseModeClass
false -verboseModeGarbageCollection false -verboseModeJNI false -runHProf false -hprofArguments -
debugMode false -debugArgs "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7777" -
executableJarFileName -genericJvmArguments "-Dvendor=shell -DvendorFile=/servers.properties" -
disableJIT false]')
AdminTask.setJVMProperties('[-nodeName <NODE02> -serverName OMSsrv002 -verboseModeClass
false -verboseModeGarbageCollection false -verboseModeJNI false -initialHeapSize 4096 -
maximumHeapSize 4096 -runHProf false -hprofArguments -debugMode false -debugArgs "-
agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7777" -executableJarFileName -
genericJvmArguments -disableJIT false]')
AdminTask.setJVMProperties('[-nodeName <NODE02> -serverName OMSsrv002 -verboseModeClass
false -verboseModeGarbageCollection false -verboseModeJNI false -runHProf false -hprofArguments -
debugMode false -debugArgs "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7777" -
executableJarFileName -genericJvmArguments "-Dvendor=shell -DvendorFile=/servers.properties" -
disableJIT false]')
JVM=AdminConfig.list("JavaVirtualMachine",SRV01)
print "JVM "+JVM
AdminConfig.create('Property', JVM, '[[validationExpression ""] [name "client.encoding.override"]
[description ""] [value "UTF-8"] [required "false"]]')
84
AdminConfig.create('Property', JVM, '[[validationExpression ""] [name "PSALLOC"] [description ""] [value
"early"] [required "false"]]')
AdminConfig.create('Property', JVM, '[[validationExpression ""] [name "NODISCLAIM"] [description ""]
[value "true"] [required "false"]]')
JVM=AdminConfig.list("JavaVirtualMachine",SRV02)
print "JVM "+JVM
AdminConfig.create('Property', JVM, '[[validationExpression ""] [name "client.encoding.override"]
[description ""] [value "UTF-8"] [required "false"]]')
AdminConfig.create('Property', JVM, '[[validationExpression ""] [name "PSALLOC"] [description ""] [value
"early"] [required "false"]]')
AdminConfig.create('Property', JVM, '[[validationExpression ""] [name "NODISCLAIM"] [description ""]
[value "true"] [required "false"]]')
WEB=AdminConfig.list("WebContainer",SRV01)
print "WEB "+WEB
AdminConfig.create('Property', WEB, '[[validationExpression ""] [name
"com.ibm.ws.webcontainer.httpOnlyCookies"] [description ""] [value "false"] [required "false"]]')
AdminConfig.create('Property', WEB, '[[validationExpression ""] [name
"com.ibm.ws.webcontainer.dispatcherrethrowser"] [description ""] [value "true"] [required "false"]]')
WEB=AdminConfig.list("WebContainer",SRV02)
print "WEB "+WEB
AdminConfig.create('Property', WEB, '[[validationExpression ""] [name
"com.ibm.ws.webcontainer.httpOnlyCookies"] [description ""] [value "false"] [required "false"]]')
AdminConfig.create('Property', WEB, '[[validationExpression ""] [name
"com.ibm.ws.webcontainer.dispatcherrethrowser"] [description ""] [value "true"] [required "false"]]')
SM=AdminConfig.list("SessionManager",SRV01)
print "SM "+SM
AdminConfig.create('Property', SM, '[[validationExpression ""] [name
"com.ibm.ws.webcontainer.httpOnlyCookies"] [description ""] [value "false"] [required "false"]]')
SM=AdminConfig.list("SessionManager",SRV02)
print "SM "+SM
AdminConfig.create('Property', SM, '[[validationExpression ""] [name
"com.ibm.ws.webcontainer.httpOnlyCookies"] [description ""] [value "false"] [required "false"]]')
VMapList=AdminConfig.list("VariableMap",CELLId)
print "VMapList "+VMapList
FINDIT="<CELLNAME>"+"|"
85
print "FINDIT "+FINDIT
for VMapId in VMapList.split():
if (VMapId.find(FINDIT) != -1):
VMap=VMapId
AdminConfig.create('VariableSubstitutionEntry', VMap, '[[symbolicName
"DB2_JCC_DRIVER_PATH"] [description ""] [value
"/opt/IBM/WebSphere/AppServer/universalDriver/lib"]]')
AdminConfig.create('VariableSubstitutionEntry', VMap, '[[symbolicName
"UNIVERSAL_JDBC_DRIVER_PATH"] [description ""] [value
"/opt/IBM/WebSphere/AppServer/universalDriver/lib"]]')
AdminConfig.create('VariableSubstitutionEntry', VMap, '[[symbolicName
"PUREQUERY_PATH"] [description ""] [value "/opt/IBM/WebSphere/AppServer/universalDriver/lib"]]')
AdminConfig.save()
time.sleep(180)
AdminApp.install('/oms/OMS94/external_deployments/smcfs.ear', '[ -nopreCompileJSPs -distributeApp
-nouseMetaDataFromBinary -nodeployejb -appname smcfs -createMBeansForResources -
noreloadEnabled -nodeployws -validateinstall warn -noprocessEmbeddedConfig -filepermission
.*\.dll=755#.*\.so=755#.*\.a=755#.*\.sl=755 -noallowDispatchRemoteInclude -
noallowServiceRemoteInclude -asyncRequestDispatchType DISABLED -nouseAutoLink -
noenableClientModule -clientMode isolated -novalidateSchema -MapModulesToServers [[ smcfs.war
smcfs.war,WEB-INF/web.xml WebSphere:cell=<CELLNAME>,cluster=OMSCluster ][ sbc.war
sbc.war,WEB-INF/web.xml WebSphere:cell=<CELLNAME>,cluster=OMSCluster ][ sma.war sma.war,WEB-
INF/web.xml WebSphere:cell=<CELLNAME>,cluster=OMSCluster ]]]' )
AdminConfig.save()
silent.txt
<?xml version='1.0' encoding='UTF-8'?>
<agent-input>
<variables>
<variable name='sharedLocation' value='/opt/IBM/InstallationManager_AppServer_Shared'/>
</variables>
<server>
<repository location='/oms/foundation'/>
</server>
<profile id='IBM Sterling Order Management Enterprise Edition' installLocation='/oms/OMS94'>
<data key='eclipseLocation' value='/oms/OMS94'/>
<data key='user.import.profile' value='false'/>
<data key='cic.selector.os' value='linux'/>
86
<data key='cic.selector.arch' value='x86'/>
<data key='cic.selector.ws' value='gtk'/>
<data key='user.sbx.JVM_LOC' value='/opt/IBM/WebSphere/AppServer/java'/>
<data key='user.featurelist'
value='com.ibm.is.commerce.ssfs.main|com.ibm.is.commerce.ssfs.refimpl'/>
<data key='user.featurelist,com.ibm.is.commerce.ssfs'
value='com.ibm.is.commerce.ssfs.main|com.ibm.is.commerce.ssfs.refimpl'/>
<data key='user.COPYJVM' value='true'/>
<data key='user.sbx.DB_VENDOR' value='DB2'/>
<data key='user.sbx.DB_USER' value='db2inst1'/>
<data key='user.sbx.DB_PASS' value='ibmroot'/>
<data key='user.sbx.DB_DATA' value='OMSDB'/>
<data key='user.sbx.DB_HOST' value='<DBHOST>'/>
<data key='user.sbx.DB_PORT' value='50000'/>
<data key='user.sbx.DB_SCHEMA_OWNER' value='DB2INST1'/>
<data key='user.sbx.DB_DRIVERS'
value='/opt/IBM/WebSphere/AppServer/universalDriver/lib/db2jcc.jar|/opt/IBM/WebSphere/AppServe
r/universalDriver/lib/db2jcc_license_cu.jar'/>
<data key='user.sbx.SUPPORT_MULTIBYTE' value='false'/>
<data key='user.sbx.ADDITIONAL_ANT_JAVA_TASK_ARGS' value='-XX:MaxPermSize=512m'/>
<data key='user.sbx.ADDITIONAL_ANT_COMPILER_TASK_ARGS' value='-J-Xms512m -J-Xmx1408m -J-
verbose:gc'/>
<data key='cic.selector.nl' value='en'/>
</profile>
<install modify='false'>
<!-- IBM Sterling Order Management Enterprise Edition 9.4 -->
<offering profile='IBM Sterling Order Management Enterprise Edition' id='com.ibm.is.commerce.ssfs'
version='9.4.0' features='com.ibm.is.commerce.ssfs.main,com.ibm.is.commerce.ssfs.refimpl'
installFixes='none'/>
</install>
<preference name='com.ibm.cic.common.core.preferences.eclipseCache' value='${sharedLocation}'/>
<preference name='com.ibm.cic.common.core.preferences.connectTimeout' value='30'/>
<preference name='com.ibm.cic.common.core.preferences.readTimeout' value='45'/>
<preference name='com.ibm.cic.common.core.preferences.downloadAutoRetryCount' value='0'/>
<preference name='offering.service.repositories.areUsed' value='true'/>
<preference name='com.ibm.cic.common.core.preferences.ssl.nonsecureMode' value='false'/>
<preference name='com.ibm.cic.common.core.preferences.http.disablePreemptiveAuthentication'
value='false'/>
<preference name='http.ntlm.auth.kind' value='NTLM'/>
<preference name='http.ntlm.auth.enableIntegrated.win32' value='true'/>
87
<preference name='com.ibm.cic.common.core.preferences.preserveDownloadedArtifacts'
value='true'/>
<preference name='com.ibm.cic.common.core.preferences.keepFetchedFiles' value='false'/>
<preference name='PassportAdvantageIsEnabled' value='false'/>
<preference name='com.ibm.cic.common.core.preferences.searchForUpdates' value='false'/>
<preference name='com.ibm.cic.agent.ui.displayInternalVersion' value='false'/>
<preference name='com.ibm.cic.common.sharedUI.showErrorLog' value='true'/>
<preference name='com.ibm.cic.common.sharedUI.showWarningLog' value='true'/>
<preference name='com.ibm.cic.common.sharedUI.showNoteLog' value='true'/>
</agent-input>
Appendix B: Example of a runtime deployment.json file {
"actual": "LAUNCHING",
"app_id": "a-1b5c5a2c-0e0a-42f7-be77-2a17a2cf7773",
"app_type": "application",
"bbson": {
"CustomNode.11428964111241": {
"epoch": 1,
"udp.port": "10000"
},
"CustomNode.21428964111242": {
"epoch": 1,
"udp.port": "10000"
},
"DB2_OMS.11428964111239": {
"epoch": 1,
"udp.port": "10000"
},
"DmgrNode.11428964111240": {
"epoch": 1,
"udp.port": "10000"
},
"boot.helpers": [
"DB2_OMS.11428964111239",
"CustomNode.11428964111241",
"DmgrNode.11428964111240",
"CustomNode.21428964111242"
]
},
"config_HVMiddleware": false,
"creator": "197a1e74-e231-4fa6-8cbb-03cb5aa5d158",
"creator_name": "wwbp09usr01",
88
"deployment_id": "d-edd9289d-f18c-4150-8f46-c520d9c7f6a8",
"deployment_name": "OMS9.4",
"deployment_version": "5.0.0.1",
"desired": "RUNNING",
"environment_profile": "100",
"environment_profile_name": "admin_profile",
"has_placement": true,
"health": "NORMAL",
"iaas_configs": [
{
"appliance": {
"group": "",
"name": "",
"product": "IPAS",
"type": "unknown",
"uuid": "unknown"
},
"name": "1000248",
"provider-config": {
"actualState": "LAUNCHING",
"addressCreateTimeout": 600000,
"instanceCreateTimeout": 600000,
"instanceDeleteTimeout": 300000,
"instanceStopTimeout": 600000,
"mockDeployment": false,
"provider": "WCA",
"runtimeEnv": "appliance",
"virtualSystem": {
"cloud": "/resources/clouds/92",
"environmentProfile": "/resources/environmentProfiles/100",
"fsm_ip": "fd8c:215d:178e:1320:290:fa71:fa05:5132",
"id": "2641",
"ipGroup": "/resources/ipGroups/2243",
"platform": "PureSystems_ESX",
"priority": "high"
},
"volumeCreateTimeout": 600000,
"wca.url": "https://IBMWorkloadDeployer"
}
}
],
"instances": {
"CustomNode.11428964111241": {
"activation-status": "RUNNING",
"cpucount": 2,
"displayname": "CustomNode.11428964111241",
89
"health": "NORMAL",
"hypervisorHostname": "[fd8c:215d:178e:1320:290:fa71:fa05:5132]",
"id": "CustomNode.11428964111241",
"last.update": "2015-04-13T22:35:08.243Z",
"location": {
"cloud_group": {
"id": "92",
"name": "PAS2_Tenants"
},
"name": "1000248",
"placement": {
"cloud_group": {
"name": "PAS2_Tenants"
},
"ip_groups": [
{
"name": "pas2_ipgroup320",
"nic": "data_1"
}
],
"location": "1000248"
}
},
"memory": 8192,
"previousStatus": "RUNNING",
"private-ip": "fd8c:215d:178e:1320:250:56ff:feb9:879",
"public-hostname": "pas2vmt12.wasedu.net",
"public-ip": "172.19.95.12",
"reboot.count": 0,
"runtimeid":
"http://[fd8c:215d:178e:1320:290:fa71:fa05:5132]:5006/deployment/resources/instances/d657742d-a1f2-462c-
afb2-8e627ca0f097",
"start-time": "2015-04-13T22:29:13.261Z",
"status": "RUNNING",
"stopped.by": "",
"uuid": "d657742d-a1f2-462c-afb2-8e627ca0f097",
"vmId": 7537
},
"CustomNode.21428964111242": {
"activation-status": "RUNNING",
"cpucount": 2,
"displayname": "CustomNode.21428964111242",
"health": "NORMAL",
"hypervisorHostname": "[fd8c:215d:178e:1320:290:fa71:fa05:5132]",
"id": "CustomNode.21428964111242",
"last.update": "2015-04-13T22:35:09.980Z",
90
"location": {
"cloud_group": {
"id": "92",
"name": "PAS2_Tenants"
},
"name": "1000248",
"placement": {
"cloud_group": {
"name": "PAS2_Tenants"
},
"ip_groups": [
{
"name": "pas2_ipgroup320",
"nic": "data_1"
}
],
"location": "1000248"
}
},
"memory": 8192,
"previousStatus": "RUNNING",
"private-ip": "fd8c:215d:178e:1320:250:56ff:feb9:87b",
"public-hostname": "pas2vmt13.wasedu.net",
"public-ip": "172.19.95.13",
"reboot.count": 0,
"runtimeid":
"http://[fd8c:215d:178e:1320:290:fa71:fa05:5132]:5006/deployment/resources/instances/bd429533-1945-4ff0-
a5da-ae82faa7d32c",
"start-time": "2015-04-13T22:29:13.840Z",
"status": "RUNNING",
"stopped.by": "",
"uuid": "bd429533-1945-4ff0-a5da-ae82faa7d32c",
"vmId": 7538
},
"DB2_OMS.11428964111239": {
"activation-status": "RUNNING",
"cpucount": 2,
"displayname": "DB2_OMS.11428964111239",
"health": "UNKNOWN",
"hypervisorHostname": "[fd8c:215d:178e:1320:290:fa71:fa05:5132]",
"id": "DB2_OMS.11428964111239",
"last.update": "2015-04-13T22:35:06.298Z",
"location": {
"cloud_group": {
"id": "92",
"name": "PAS2_Tenants"
91
},
"name": "1000248",
"placement": {
"cloud_group": {
"name": "PAS2_Tenants"
},
"ip_groups": [
{
"name": "pas2_ipgroup320",
"nic": "data_1"
}
],
"location": "1000248"
}
},
"memory": 8192,
"previousStatus": "RUNNING",
"private-ip": "fd8c:215d:178e:1320:250:56ff:feb9:877",
"public-hostname": "pas2vmt7.wasedu.net",
"public-ip": "172.19.95.7",
"reboot.count": 0,
"runtimeid":
"http://[fd8c:215d:178e:1320:290:fa71:fa05:5132]:5006/deployment/resources/instances/90fa6545-4aaf-4289-
b35a-1e26562d8015",
"start-time": "2015-04-13T22:29:11.372Z",
"status": "RUNNING",
"stopped.by": "",
"uuid": "90fa6545-4aaf-4289-b35a-1e26562d8015",
"vmId": 7535
},
"DmgrNode.11428964111240": {
"activation-status": "RUNNING",
"cpucount": 4,
"displayname": "DmgrNode.11428964111240",
"health": "UNKNOWN",
"hypervisorHostname": "[fd8c:215d:178e:1320:290:fa71:fa05:5132]",
"id": "DmgrNode.11428964111240",
"last.update": "2015-04-13T22:35:10.113Z",
"location": {
"cloud_group": {
"id": "92",
"name": "PAS2_Tenants"
},
"name": "1000248",
"placement": {
"cloud_group": {
92
"name": "PAS2_Tenants"
},
"ip_groups": [
{
"name": "pas2_ipgroup320",
"nic": "data_1"
}
],
"location": "1000248"
}
},
"memory": 16384,
"previousStatus": "RUNNING",
"private-ip": "fd8c:215d:178e:1320:250:56ff:feb9:875",
"public-hostname": "pas2vmt11.wasedu.net",
"public-ip": "172.19.95.11",
"reboot.count": 0,
"runtimeid":
"http://[fd8c:215d:178e:1320:290:fa71:fa05:5132]:5006/deployment/resources/instances/3473f14a-3e51-49f4-
b50c-21f540d48a29",
"start-time": "2015-04-13T22:29:12.304Z",
"status": "RUNNING",
"stopped.by": "",
"uuid": "3473f14a-3e51-49f4-b50c-21f540d48a29",
"vmId": 7536
}
},
"ipGroup": "2243",
"ipaddrs": {},
"last.update": "2015-04-13T22:39:29.355Z",
"locale": "en-US",
"patterntype": "vsys",
"roles": {
"CustomNode.11428964111241.AGENT": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:38:50.368Z",
"node": "CustomNode.11428964111241",
"status": "RUNNING",
"type": "AGENT"
},
"CustomNode.11428964111241.AUTOSCALING": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:38:50.368Z",
"node": "CustomNode.11428964111241",
"status": "RUNNING",
"type": "AUTOSCALING"
93
},
"CustomNode.11428964111241.CustomNode-Image": {
"health": "NORMAL",
"last.update": "2015-04-13T22:38:51.430Z",
"node": "CustomNode.11428964111241",
"status": "RUNNING",
"type": "Image"
},
"CustomNode.11428964111241.Custom_nodes-Part": {
"health": "NORMAL",
"last.update": "2015-04-13T22:39:29.355Z",
"node": "CustomNode.11428964111241",
"status": "STARTING",
"type": "custom_node8552_8552_IM"
},
"CustomNode.11428964111241.IM": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:38:50.368Z",
"node": "CustomNode.11428964111241",
"status": "RUNNING",
"type": "IM"
},
"CustomNode.11428964111241.Install_Db2_10_1_Drivers_on_WAS_8_5_node_1-Part": {
"health": "NORMAL",
"last.update": "2015-04-13T22:38:51.921Z",
"node": "CustomNode.11428964111241",
"status": "STARTING",
"type": "db210"
},
"CustomNode.11428964111241.MAINTENANCE": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:38:50.368Z",
"node": "CustomNode.11428964111241",
"status": "RUNNING",
"type": "MAINTENANCE"
},
"CustomNode.11428964111241.MONITORING": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:38:51.430Z",
"node": "CustomNode.11428964111241",
"status": "RUNNING",
"type": "MONITORING"
},
"CustomNode.11428964111241.RHUSClient": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:38:51.921Z",
94
"node": "CustomNode.11428964111241",
"status": "RUNNING",
"type": "RHUSClient"
},
"CustomNode.11428964111241.SECUREVMPOLICY": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:38:50.368Z",
"node": "CustomNode.11428964111241",
"status": "RUNNING",
"type": "SECUREPOLICY"
},
"CustomNode.11428964111241.SSH": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:38:50.368Z",
"node": "CustomNode.11428964111241",
"status": "RUNNING",
"type": "SSH"
},
"CustomNode.11428964111241.System_Monitoring_for_WebSphere_Application_Server-Part": {
"health": "NORMAL",
"last.update": "2015-04-13T22:38:50.368Z",
"node": "CustomNode.11428964111241",
"status": "STARTING",
"type": "ITCAMWAS"
},
"CustomNode.11428964111241.TEMCLIENT": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:38:51.430Z",
"node": "CustomNode.11428964111241",
"status": "RUNNING",
"type": "TEMCLIENT"
},
"CustomNode.21428964111242.AGENT": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:38:50.368Z",
"node": "CustomNode.21428964111242",
"status": "RUNNING",
"type": "AGENT"
},
"CustomNode.21428964111242.AUTOSCALING": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:38:50.368Z",
"node": "CustomNode.21428964111242",
"status": "RUNNING",
"type": "AUTOSCALING"
},
95
"CustomNode.21428964111242.CustomNode-Image": {
"health": "NORMAL",
"last.update": "2015-04-13T22:38:51.430Z",
"node": "CustomNode.21428964111242",
"status": "RUNNING",
"type": "Image"
},
"CustomNode.21428964111242.Custom_nodes-Part": {
"health": "NORMAL",
"last.update": "2015-04-13T22:39:29.355Z",
"node": "CustomNode.21428964111242",
"status": "STARTING",
"type": "custom_node8552_8552_IM"
},
"CustomNode.21428964111242.IM": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:38:50.368Z",
"node": "CustomNode.21428964111242",
"status": "RUNNING",
"type": "IM"
},
"CustomNode.21428964111242.Install_Db2_10_1_Drivers_on_WAS_8_5_node_1-Part": {
"health": "NORMAL",
"last.update": "2015-04-13T22:38:51.921Z",
"node": "CustomNode.21428964111242",
"status": "STARTING",
"type": "db210"
},
"CustomNode.21428964111242.MAINTENANCE": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:38:50.368Z",
"node": "CustomNode.21428964111242",
"status": "RUNNING",
"type": "MAINTENANCE"
},
"CustomNode.21428964111242.MONITORING": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:38:51.430Z",
"node": "CustomNode.21428964111242",
"status": "RUNNING",
"type": "MONITORING"
},
"CustomNode.21428964111242.RHUSClient": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:38:52.382Z",
"node": "CustomNode.21428964111242",
96
"status": "RUNNING",
"type": "RHUSClient"
},
"CustomNode.21428964111242.SECUREVMPOLICY": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:38:50.368Z",
"node": "CustomNode.21428964111242",
"status": "RUNNING",
"type": "SECUREPOLICY"
},
"CustomNode.21428964111242.SSH": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:38:50.368Z",
"node": "CustomNode.21428964111242",
"status": "RUNNING",
"type": "SSH"
},
"CustomNode.21428964111242.System_Monitoring_for_WebSphere_Application_Server-Part": {
"health": "NORMAL",
"last.update": "2015-04-13T22:38:50.368Z",
"node": "CustomNode.21428964111242",
"status": "STARTING",
"type": "ITCAMWAS"
},
"CustomNode.21428964111242.TEMCLIENT": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:38:51.430Z",
"node": "CustomNode.21428964111242",
"status": "RUNNING",
"type": "TEMCLIENT"
},
"DB2_OMS.11428964111239.AGENT": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:35:20.246Z",
"node": "DB2_OMS.11428964111239",
"status": "INITIAL",
"type": "AGENT"
},
"DB2_OMS.11428964111239.AUTOSCALING": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:35:20.246Z",
"node": "DB2_OMS.11428964111239",
"status": "INITIAL",
"type": "AUTOSCALING"
},
"DB2_OMS.11428964111239.DB2_OMS-Image": {
97
"health": "UNKNOWN",
"health_message": "CWZMO0476I: The current health state of DB2_OMS.11428964111239 is UNKNOWN",
"last.update": "2015-04-13T22:35:49.807Z",
"node": "DB2_OMS.11428964111239",
"status": "INSTALLING",
"type": "Image"
},
"DB2_OMS.11428964111239.Database_Server-Part": {
"health": "UNKNOWN",
"health_message": "CWZMO0476I: The current health state of DB2_OMS.11428964111239 is UNKNOWN",
"last.update": "2015-04-13T22:35:49.807Z",
"node": "DB2_OMS.11428964111239",
"status": "INSTALLING",
"type": "DB2LUW"
},
"DB2_OMS.11428964111239.MAINTENANCE": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:35:20.246Z",
"node": "DB2_OMS.11428964111239",
"status": "INITIAL",
"type": "MAINTENANCE"
},
"DB2_OMS.11428964111239.MONITORING": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:35:20.246Z",
"node": "DB2_OMS.11428964111239",
"status": "INITIAL",
"type": "MONITORING"
},
"DB2_OMS.11428964111239.OPMDB2": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:35:20.246Z",
"node": "DB2_OMS.11428964111239",
"status": "INITIAL",
"type": "OPMDB2"
},
"DB2_OMS.11428964111239.RHUSClient": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:35:20.246Z",
"node": "DB2_OMS.11428964111239",
"status": "INITIAL",
"type": "RHUSClient"
},
"DB2_OMS.11428964111239.SECUREVMPOLICY": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:35:20.246Z",
98
"node": "DB2_OMS.11428964111239",
"status": "INITIAL",
"type": "SECUREPOLICY"
},
"DB2_OMS.11428964111239.SSH": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:35:20.246Z",
"node": "DB2_OMS.11428964111239",
"status": "INITIAL",
"type": "SSH"
},
"DB2_OMS.11428964111239.TEMCLIENT": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:35:20.246Z",
"node": "DB2_OMS.11428964111239",
"status": "INITIAL",
"type": "TEMCLIENT"
},
"DB2_OMS.11428964111239.createDatabase-Script": {
"health": "UNKNOWN",
"health_message": "CWZMO0476I: The current health state of DB2_OMS.11428964111239 is UNKNOWN",
"last.update": "2015-04-13T22:35:20.246Z",
"node": "DB2_OMS.11428964111239",
"status": "INITIAL",
"type": "Script"
},
"DmgrNode.11428964111240.AGENT": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:35:49.807Z",
"node": "DmgrNode.11428964111240",
"status": "INITIAL",
"type": "AGENT"
},
"DmgrNode.11428964111240.AUTOSCALING": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:35:49.807Z",
"node": "DmgrNode.11428964111240",
"status": "INITIAL",
"type": "AUTOSCALING"
},
"DmgrNode.11428964111240.Deployment_manager-Part": {
"health": "UNKNOWN",
"health_message": "CWZMO0476I: The current health state of DmgrNode.11428964111240 is UNKNOWN",
"last.update": "2015-04-13T22:35:49.807Z",
"node": "DmgrNode.11428964111240",
"status": "INSTALLING",
99
"type": "dmgr8552_8552_IM"
},
"DmgrNode.11428964111240.DmgrNode-Image": {
"health": "UNKNOWN",
"health_message": "CWZMO0476I: The current health state of DmgrNode.11428964111240 is UNKNOWN",
"last.update": "2015-04-13T22:35:49.807Z",
"node": "DmgrNode.11428964111240",
"status": "INSTALLING",
"type": "Image"
},
"DmgrNode.11428964111240.IBM_HTTP_servers-Part": {
"health": "UNKNOWN",
"health_message": "CWZMO0476I: The current health state of DmgrNode.11428964111240 is UNKNOWN",
"last.update": "2015-04-13T22:38:50.368Z",
"node": "DmgrNode.11428964111240",
"status": "INSTALLING",
"type": "HTTPServer_8552_IM"
},
"DmgrNode.11428964111240.IBM_Sterling_OMS_9_4-Part": {
"health": "UNKNOWN",
"health_message": "CWZMO0476I: The current health state of DmgrNode.11428964111240 is UNKNOWN",
"last.update": "2015-04-13T22:35:49.807Z",
"node": "DmgrNode.11428964111240",
"status": "INITIAL",
"type": "oms94"
},
"DmgrNode.11428964111240.IM": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:35:49.807Z",
"node": "DmgrNode.11428964111240",
"status": "INITIAL",
"type": "IM"
},
"DmgrNode.11428964111240.Install_Db2_10_1_Drivers_on_WAS_8_5_node-Part": {
"health": "UNKNOWN",
"health_message": "CWZMO0476I: The current health state of DmgrNode.11428964111240 is UNKNOWN",
"last.update": "2015-04-13T22:35:49.807Z",
"node": "DmgrNode.11428964111240",
"status": "INITIAL",
"type": "db210"
},
"DmgrNode.11428964111240.MAINTENANCE": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:35:49.807Z",
"node": "DmgrNode.11428964111240",
"status": "INITIAL",
100
"type": "MAINTENANCE"
},
"DmgrNode.11428964111240.MONITORING": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:35:49.807Z",
"node": "DmgrNode.11428964111240",
"status": "INITIAL",
"type": "MONITORING"
},
"DmgrNode.11428964111240.RHUSClient": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:35:49.807Z",
"node": "DmgrNode.11428964111240",
"status": "INITIAL",
"type": "RHUSClient"
},
"DmgrNode.11428964111240.SECUREVMPOLICY": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:35:49.807Z",
"node": "DmgrNode.11428964111240",
"status": "INITIAL",
"type": "SECUREPOLICY"
},
"DmgrNode.11428964111240.SSH": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:35:49.807Z",
"node": "DmgrNode.11428964111240",
"status": "INITIAL",
"type": "SSH"
},
"DmgrNode.11428964111240.System_Monitoring_for_IBM_HTTP_Server-Part": {
"health": "UNKNOWN",
"health_message": "CWZMO0476I: The current health state of DmgrNode.11428964111240 is UNKNOWN",
"last.update": "2015-04-13T22:35:49.807Z",
"node": "DmgrNode.11428964111240",
"status": "INITIAL",
"type": "ITCAMHTTP"
},
"DmgrNode.11428964111240.System_Monitoring_for_WebSphere_Application_Server-Part": {
"health": "UNKNOWN",
"health_message": "CWZMO0476I: The current health state of DmgrNode.11428964111240 is UNKNOWN",
"last.update": "2015-04-13T22:35:49.807Z",
"node": "DmgrNode.11428964111240",
"status": "INITIAL",
"type": "ITCAMWAS"
},
101
"DmgrNode.11428964111240.TEMCLIENT": {
"health": "UNKNOWN",
"last.update": "2015-04-13T22:35:49.807Z",
"node": "DmgrNode.11428964111240",
"status": "INITIAL",
"type": "TEMCLIENT"
},
"master": {
"last.update": "2015-04-13T22:35:20.246Z",
"node": "DB2_OMS.11428964111239"
}
},
"services": {
"deployment": "https://IBMWorkloadDeployer:9443/services/deployments/d-edd9289d-f18c-4150-8f46-
c520d9c7f6a8"
},
"start.time": "2015-04-13T22:28:31.238Z",
"templates": {
"CustomNode": {
"locations": [
{
"create": [],
"current": 2,
"name": "1000248"
}
],
"max": 50,
"min": 2,
"persistent": true,
"placements": {}
},
"DB2_OMS": {
"locations": [
{
"create": [],
"current": 1,
"name": "1000248"
}
],
"max": 1,
"min": 1,
"persistent": true,
"placements": {}
},
"DmgrNode": {
"locations": [
102
{
"create": [],
"current": 1,
"name": "1000248"
}
],
"max": 1,
"min": 1,
"persistent": true,
"placements": {}
}
},
"version": "1.0",
"volumes": {}
}
References: Managing application runtime environments in IBM PureApplication System
http://www.ibm.com/developerworks/websphere/library/techarticles/1210_woolf/1210_woolf.html
Preparing for IBM PureApplication System, Part 1: Onboarding applications overview
http://www.ibm.com/developerworks/websphere/library/techarticles/1204_abrams/1204_abrams.htm
l
developerWorksTechnical topicsWebSphereTechnical libraryPreparing for IBM PureApplication
System, Part 2: Is your application ready to become virtual?
http://www.ibm.com/developerworks/websphere/library/techarticles/1204_brown/1204_brown.html
Preparing for IBM PureApplication System, Part 3: Choosing a database option
http://www.ibm.com/developerworks/websphere/library/techarticles/1204_chan/1204_chan.html
developerWorksTechnical topicsWebSphereTechnical libraryPreparing for IBM PureApplication
System, Part 4: Onboarding applications to the cloud using the Advanced Middleware Configuration
tool V1.1
http://www.ibm.com/developerworks/websphere/library/techarticles/1204_akeley/1204_akeley.html
Preparing for IBM PureApplication System, Part 5: Developing virtual application patterns for IBM
Workload Deployer with Rational Application Developer
http://www.ibm.com/developerworks/websphere/tutorials/1204_brealey/index.html
103
IBM Pure System Web site: http://www.ibm.com/ibm/puresystems/us/en/index.html
Creating Smart Virtual Appliances with IBM Image Construction and Composition Tool:
http://www.redbooks.ibm.com/redbooks/pdfs/sg248042.pdf
Using IBM Image Construction and Composition Tool:
http://www.ibm.com/developerworks/aix/library/au-aix-image-construction/index.html
IBM Education Assistant for PureApp:
http://publib.boulder.ibm.com/infocenter/ieduasst/stgv1r0/index.jsp?topic=/com.ibm.iea.ipas/plugin_c
overpage.html
Automating Deployment in the cloud:
http://www.youtube.com/watch?v=T0VNnVaONaw&list=PLA508B797DAECDBDF&index=14
Pure Application workload console(admin console):
http://www.youtube.com/watch?v=P4wNBW_LQo0&list=PLA508B797DAECDBDF