IBM webMethods Hybrid Integration

IBM webMethods Hybrid Integration

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.

 View Only
Expand all | Collapse all

Installing IS packages in different layers (template)

  • 1.  Installing IS packages in different layers (template)

    Posted Sat July 15, 2017 09:33 PM

    Hello,

    in a CC template for installing the Integration Server, it’s possible (necessary) to specify the list of the packages to install.

    Is it possible to specify the package list in different layers and have CC to collect and install all the packages?

    Here’s an example of what I’m saying.

    Let’s say I’d like to have the layer “Server.Core” and the layer “BPM”. With the layer “Core”, only some packages should be installed (WmRoot, WmPublic). With the layer “BPM”, the package “WmPRT” should be installed.

    I’d like to specify the two layers. In the end, I’d expect that CC installs the packages WmRoot, WmPublic, and WmPRT, i.e. that it collects the packages to install over all layers.

    Does CC works like this?

    Thanks for any hints!


    #webMethods-General
    #Integration-Server-and-ESB
    #Command-Central
    #webMethods


  • 2.  RE: Installing IS packages in different layers (template)

    Posted Wed July 19, 2017 06:12 PM

    Hi,
    When IS instance is declared in the template you can specify which packages should be provisioned into this instance by using ‘package.list’ parameter.
    Note that these packages have to be first installed as ‘products’ in the same or previous layer/template.

    Here is an example:

    
    templates:
    myis: 
    licenses:
    "IntegrationServer/config/licenseKey.xml": ${is.license.key.alias}
    products:
    Deployer:
    Monitor:
    integrationServer: # the core IS product that owns the instance 
    Monitor:
    primary.port:    5555 
    diagnostic.port: 5556
    jmx.port:        5557
    license.file: IntegrationServer/config/licenseKey.xml
    package.list: WmMonitor
    Deployer:
    primary.port:    6666 
    diagnostic.port: 6667
    jmx.port:        6668
    license.file: IntegrationServer/config/licenseKey.xml
    package.list: WmBrokerDeployer,WmNUMDeployer,WmDeployer

    You do not need to specify core packages like WmRoot,WmPublic. They are always provisioned.

    Thanks
    Sergei


    #webMethods-General
    #webMethods
    #Command-Central
    #Integration-Server-and-ESB


  • 3.  RE: Installing IS packages in different layers (template)

    Posted Wed July 19, 2017 07:40 PM

    Sergei, thank you for the response.

    I must have been a bit unclear about what I want because your example does not quite fit my need.

    I’d like to have three layers: One for the core IS, another for the Monitor (I’ll use your example) and still another for the Deployer, like this:

    
    templates:
    IS-Product:  # This will install the product but will not set up an instance
    products:
    integrationServer:
    Monitor-Product:  # This will install the product but will not set up an instance
    products:
    Monitor:
    Deployer-Product:  # This will install the product but will not set up an instance
    products:
    Deployer:
    IS-Instance:  # This will set up an instance with just the basic packages
    products:
    integrationServer:
    default: # Name of the instance we're working on
    # . . . (config etc)
    Monitor-Instance:  # This will install monitor packages in the instance
    products:
    integrationServer:
    default: # Name of the instance we're working on
    package.list: WmMonitor
    Deployer-Instance:  # This will install deployer packages in the instance
    products:
    integrationServer:
    default: # Name of the instance we're working on
    package.list: WmBrokerDeployer,WmNUMDeployer,WmDeployer
    
    layers:
    IS-with-Instance:
    templates: [IS-Product, IS-Instance]
    Monitor-with-Instance:
    templates: [Monitor-Product, Monitor-Instance]
    Deployer-with-Instance:
    templates: [Deployer-Product, Deployer-Instance]
    
    provision:
    default:
    mySingleNode: [IS-with-Instance, Monitor-with-Instance, Deployer-with-Instance]

    I.e. the whole Integration Server is set up not via just one but via three layers, I hope you get the idea.

    My expectation / desired result is that the above fragment would install the IS with the Monitor and Deployer components, and set up an instance named “default” with IS packages WmMonitor, WmBrokerDeployer, WmNUMDeployer, WmDeployer. I.e. the package list is the cumulated list from all the templates. This would allow me to construct templates in a very modular way.


    #webMethods-General
    #Command-Central
    #webMethods
    #Integration-Server-and-ESB


  • 4.  RE: Installing IS packages in different layers (template)

    Posted Wed July 19, 2017 08:00 PM

    Here is how you can achieve that:

    
    environments:
    default:
    is.templates: [is-core]
    monitor:
    is.templates: [is-core,is-monitor]
    deployer:
    is.templates: [is-core,is-deployer]
    all:
    is.templates: [is-core,is-monitor,is-deployer]
    
    layers:
    is:
    templates: ${is.templates}
    
    templates:
    is-core:
    licenses:  
    "IntegrationServer/config/licenseKey.xml": IS_LICENSE_KEY
    products:
    integrationServer:
    default:
    primary.port: 5555
    diagnostic.port: 5556  
    jmx.port:        5557  
    license.file: IntegrationServer/config/licenseKey.xml
    is-monitor:
    products:
    Monitor:
    integrationServer:
    default:
    package.list: WmMonitor
    is-deployer:
    products:
    Deployer:
    integrationServer:
    default:
    package.list: WmBrokerDeployer,WmNUMDeployer,WmDeployer

    Now run

    provision core IS

    sagcc exec templates composite apply mytemplate

    provision core IS with Monitor

    sagcc exec templates composite apply mytemplate environment.type=monitor

    provision core IS with Deployer

    sagcc exec templates composite apply mytemplate environment.type=deployer

    provision core IS with Deployer and Monitor

    sagcc exec templates composite apply mytemplate environment.type=all

    NOTE: I did not test it but it should work this way.

    Thanks
    Sergei


    #webMethods-General
    #Integration-Server-and-ESB
    #Command-Central
    #webMethods


  • 5.  RE: Installing IS packages in different layers (template)

    Posted Wed July 19, 2017 08:30 PM

    Sergei,

    I understand how your solution would work. Do you mean that my approach will NOT work? I.e. that it is not possible for CC to collect e.g. the IS packages over different layers and templates within them?

    For some reasons I’d prefer to have many layers – like in the example I gave.

    Thanks!


    #webMethods-General
    #Command-Central
    #Integration-Server-and-ESB
    #webMethods


  • 6.  RE: Installing IS packages in different layers (template)

    Posted Thu July 20, 2017 01:21 AM

    The layers should be used for actual software stack layers definition that can be deployed and scale independently from other layers.
    Inline templates should be used as tasks/steps to build them.
    What you’d like to do will work if you always co-locale all your layers which is a limitation of the generic design.

    But if this is what you prefer, go for it, it will work, just ensure that your layers map to the same set of nodes.

    Thanks
    Sergei


    #webMethods-General
    #webMethods
    #Integration-Server-and-ESB
    #Command-Central


  • 7.  RE: Installing IS packages in different layers (template)

    Posted Thu July 20, 2017 05:29 AM

    OK, that’s what I wanted to know. Thank you very much! The consistency will be provided by the fact that we generate the templates not manually but with a tool.


    #Command-Central
    #Integration-Server-and-ESB
    #webMethods-General
    #webMethods


  • 8.  RE: Installing IS packages in different layers (template)

    Posted Thu July 20, 2017 03:53 PM

    I’m curious what kind of tool? Something you developed or will develop?
    Can you share more details?
    Thanks,
    Sergei


    #webMethods
    #Integration-Server-and-ESB
    #webMethods-General
    #Command-Central


  • 9.  RE: Installing IS packages in different layers (template)

    Posted Fri July 21, 2017 11:14 AM

    I’m not sure I may share all the details in public, but it’s kind of templating engine to create complex CC templates from smaller building blocks.


    #Integration-Server-and-ESB
    #Command-Central
    #webMethods-General
    #webMethods


  • 10.  RE: Installing IS packages in different layers (template)

    Posted Fri December 08, 2017 03:49 AM

    Hi Sergie, can ou please post the full template, I need it for my reference.


    #Integration-Server-and-ESB
    #webMethods
    #webMethods-General
    #Command-Central


  • 11.  RE: Installing IS packages in different layers (template)

    Posted Tue June 25, 2019 05:22 PM

    @fml2 : i would like to know if you can share some details about that tool. We have about 130 Integrations servers


    #Integration-Server-and-ESB
    #webMethods
    #webMethods-General
    #Command-Central


  • 12.  RE: Installing IS packages in different layers (template)

    Posted Tue June 25, 2019 08:27 PM

    I created the tool as we planned to use CC to set up our servers. We still do not use CC because there were always some issues preventing its usage (some components could not be set up in the desired way). It’s possible that the problems are resolved in the mean time, we didn’t try again.

    But the idea was that you have small files, each describing an aspect of the whole system. Each file is small and very well maintainable.

    Then you have another file that describes how the small building blocks should be combined to produce more coarse grained features. And then you’d have yet another file describing which features should be installed to which nodes.

    The tool processes all the files and produces a big template which can be fed to CC. An aspect might occur hundreds of times in the resulting template. The template is guaranteed to be consistent. If the definition of an aspect changes, you just edit a small file for that aspect, and then run the tool again.

    I.e. it is “divide and conquer” approach.

    There is a smart mechanism allowing to set certain values (e.g. node address) in a consistent way.

    Since we don’t use CC, we also do not use the tool. Besides, this approach (creating large templates on the client side) is not the approach chosen by SAG. SAG chose to let people to compose bigger templates via CC GUI (or the command line) on the server side. Which is an inferior approach IMO, but my opinion is biased.


    #Integration-Server-and-ESB
    #webMethods
    #webMethods-General
    #Command-Central