-
Notifications
You must be signed in to change notification settings - Fork 8
Creating Run time Instances
Some products including Integration Server and Universal Messaging support multiple instances. When you install these products using Command Central you do not get instances created. You have an opportunity to create a fully customized instance based on the environment instance configuration.
To find out what products support instance management you can use the following CC CLI command:
[user@linuxbox tutorial]$ sagcc list instances dev8192 supportedproducts
Node Alias Product Id Product Display Name Version
dev8192 NUMRealmServer Universal Messaging | Realm Server 10.1.0.0.96243
dev8192 integrationServer Integration Server | Server 10.1.0.0.99
dev8192 PIECore Infrastructure | Integration Core 10.1.0.0.99
where dev8192 is the node alias for the managed installation.
Product instance management requires corresponding product SPM Plugin. Most products install SPM Plugin automatically, but not all. Ensure you have required plugins installed.
Reminder: To find out if the SPM plugin was installed for the product in question, open the Command Central Web UI and go into the product repository view. Select the repository you will be using, then find the product in the list. Use the gear menu “Show Product Dependencies” and search for SPM. If SPM is in the list, then you do NOT have to explicitly install it.
We will need a valid Integration Server and Universal Messaging licenses to import into Command Central and then use when runtime instances are created.
- Open the Command Central Web UI and go to Licensing. Use + icon to import license files.
Note: license file are not included with this tutorial. For core products you intend to install that require a license key (e.g. IS and UM) you will need to import your own license key file(s).
- Open
template/tutorial/template.yaml
in the text editor.
Modify version: to be 0.7 to denote the change we're making in the changes: (e.g. "- 0.7 Added licenses and runtime instances").
- Add
licenses:
sections with<targetFilePath> : <licenseKeyAlias>
pairs like this:
templates: # TEMPLATES definition
is: # template alias
licenses: # copy lincense from the license repository to a template location
"IntegrationServer/config/licenseKey.xml": ${is.license.key}
products: # product list to install
integrationServer: # Integration Server productId
fixes: ${is.fixes} # fixes to install
um: # template alias
licenses: # copy lincense from the license repository to a template location
"UniversalMessaging/server/templates/licence.xml": ${um.license.key}
products: # product list to install
NUMRealmServer: # Universal Messaging productId
fixes: ${um.fixes} # fixes to install
This will copy specified licenses from Command Central repository to the target managed node and save them as files in the target locations. The license files then can be passed into the runtime instance creation as a parameter.
-
While in
template/tutorial/template.yaml
, addinst1:
underintegrationServer:
to create inst1 IS instance. Uselicense.file
instance configuration property to point to IS license file location from thelicenses:
section. -
Repeat the same for
inst1:
instance underNUMRealmServer:
but use UM-specific instance configuration properties. -
Add other required instance configuration properties to both IS and UM instances.
Please refer to Command Central Documentation for more details how to create instances.
The template should now look like this:
alias: tutorial
description: How to install and update main products
version: 0.7
changes:
- 0.1 Initial draft
- 0.2 Added input parameters
- 0.3 Added local node bootstrap
- 0.4 Added products/plugins installation
- 0.5 Added fix installation
- 0.6 Added main products and fix installation
- 0.7 Added licenses and runtime instances
environments:
default:
cc.installer: ${} # CC bootstrap installer
install.dir: ${} # SPM installation directory
spm.port: 8192 # SPM connection port
spm.alias: dev${spm.port} # SPM alias
repo.product: ${} # Product repo
repo.fix: ${} # Fixes repository
spm.fixes: ALL # Default list of fixes to install
is.fixes: ALL # Set of IS fixes
um.fixes: ALL # Set of UM fixes
is.license.key: ${} # Alias for IS license key
um.license.key: ${} # Alias for UM license key
layers: # LAYERS definition
default:
productRepo: ${repo.product} # product repository for all layers
fixRepo: ${repo.fix} # fix repository for all layers
management: # management layer with SPMs
templates: [plugins] # templates to apply to this layer
messaging:
templates: [um] # templates to apply to this layer
integration:
templates: [is] # templates to apply to this layer
templates: # TEMPLATES definition
plugins: # template alias
products: # product list to install
ISspm: # Platform Manager Plug-Ins / IS
NUMspm: # Platform Manager Plug-Ins / UM
fixes: ${spm.fixes} # fixes to install
is: # template alias
licenses: # copy license from the license repository to a template location
"IntegrationServer/config/licenseKey.xml": ${is.license.key}
products: # product list to install
integrationServer: # Integration Server productId
inst1: # instance name to create or update
license.file: IntegrationServer/config/licenseKey.xml
primary.port: 5551
diagnostic.port: 5552
jmx.port: 5553
fixes: ${is.fixes} # fixes to install
um: # template alias
licenses: # copy license from the license repository to a template location
"UniversalMessaging/server/templates/licence.xml": ${um.license.key}
products: # product list to install
NUMRealmServer: # Universal Messaging productId
inst1: # instance name to create or update
license.file: UniversalMessaging/server/templates/licence.xml
instance.port: 9001
instance.ip: localhost
runtimeComponentId: Universal-Messaging-${instance.name}
fixes: ${um.fixes} # fixes to install
nodes: # NODES definition
default: # defaults for any environment type
default: # default node definition
port: ${spm.port} # SPM connection HTTP/S port
secure: false # do not use SSL port
bootstrapInfo:
installDir: ${install.dir} # installation directory
installer: ${cc.installer} # cc installer that can be found in cc_home/profiles/CCE/data/installers
${spm.alias}: # definition for specific nodeAlias
host: localhost # Use localhost
provision: # PROVISIONing mapping of layers to nodes
default: # default environment type
management: ${spm.alias} # management layer is single node
messaging: ${spm.alias} # messaging layer is single node
integration: ${spm.alias} # integration layer is single node
Edit environment/default/env.properties
and add is.license.key=
and um.license.key=
to point the respective aliases in the Command Central license repository.
Remember, the alias names can be found on the Licensing page in the Command Central Web UI.
install.dir=${user.home}/sag/${spm.alias}
# MUST use one of these!
# Defaults for Windows
# cc.installer=cc-def-10.1-fix5-w64.zip
# Defaults for Linux
# cc.installer=cc-def-10.1-fix5-lnxamd64.sh
# Defaults for Mac
# cc.installer=cc-def-10.1-fix5-osx.sh
repo.product=products-10.1
repo.fix=fixes-10.1
is.license.key=YOUR_LICENSE_KEY
um.license.key=YOUR_LICENSE_KEY
The new elements are the two license key alias variables!
If you don't have license files you can comment out license related template sections and properties.
- Universal Messaging will be functional with the default evaluation license.
- Integration Server will only run for 30 minutes and then shut down.
Save the changes made to template.yaml and env.properties.
Apply the template:
[user@linuxbox tutorial]$ ant up
...
BUILD SUCCESSFUL
Total time: ....
When the job successfully completes the Command Central Web UI will show two new instances under the Instances tab (IS_inst1 and Universal-Messaging-inst1). These instances will be up and running and have your licenses applied.
If you have not achieved the goals of this tutorial stage, use the following command to checkout everything that needed to be done so far.
Note: Before you do the checkout, take note of modifications you made to environment/default/env.properties
because the version that you check out will overwrite them.
[user@linuxbox tutorial]$ git checkout stage-07 -f
Switched to branch 'stage-07'
Each product supports different instance parameters.
You have several options for discovering these parameters:
-
Consult product-specific documentation by searching for
sagcc create instances
command. -
Consult Command Central Template Library
-
Create product instance using Command Central Web UI and then request its properties using
sagcc get instances nodeAlias instanceId
. For example, for our instances it would look like this:
[user@linuxbox tutorial]$ sagcc get instances dev8192 Universal-Messaging-inst1
#Thu Jan 04 13:11:39 PST 2018
license.file=.../sag/dev8192/UniversalMessaging/server/inst1/licence.xml
instance.ip=localhost
instance.port=9001
instance.name=inst1
instance.dataDir=.../sag/dev8192/UniversalMessaging/server/inst1
[user@linuxbox tutorial]$ sagcc get instances dev8192 integrationServer-inst1
#Thu Jan 04 13:15:21 PST 2018
jmx.port=5553
db.url=jdbc\:derby\:embedded;create\=true
license.file=.../sag/dev8192/IntegrationServer/instances/inst1/config/licenseKey.xml
primary.port=5551
instance.name=inst1
db.username=APP
install.service=false
db.alias=Embedded_Database_Pool
diagnostic.port=5552
package.list=
db.type=derby
db.password=APP
Congratulations! You've successfully created instances of the core products Integration Server and Universal Messaging.
- Overview
- Project Structure and Navigation Through the Tutorial Steps
- Hello World Basic Development Life Cycle
- Using Parameters for Customization
- Bootstrapping Managed Installations
- Installing Products
- Installing Fixes
- Installing and Updating Core Products
- Creating Run time Instances
- Configuring Instances
- End 2 End Remote Test Environment Setup
- What's Next and Additional Resources