Technical Blog Post
Abstract
IBM Installation Manager - Generating a response from a current installation
Body
My IBM colleague, Paul B, kindly pointed this out to me a few weeks back. IBM Installation Manager (IIM) provides a number of excellent capabilities, some of which we have written about here before:
- IBM Installation Manager Fun - Driving IM in different ways
- Install Multiple Interim Fixes Together Using imcl Command Silently
- How to use imcl command to view the list of the packages, updates, and features in a source repository
- Using the imcl command to rollback WebSphere Application Server fix packs
This time around, I wanted to mention the ability that IIM offers to generate a response file from an existing installation. As an example, I have recently installed IBM Operational Decision Manager (ODM) Advanced 8.7.0.0, specifically the Decision Server Rules capability.
This is what IIM shows as installed: -
com.ibm.cic.agent_1.8.2000.20150303_1526
com.ibm.bpm.ADV.v85_8.5.6000.20150304_1832
com.ibm.websphere.IBMJAVA.v70_7.0.8010.20150219_1802
com.ibm.websphere.MON.v85_8.5.6000.20150303_1517
com.ibm.websphere.ND.v85_8.5.5005.20150220_0158
com.ibm.ws.cognos.v1022.linuxia64_10.2.2.20150304_1653
com.ibm.websphere.IHS.v85_8.5.5005.20150220_0158
com.ibm.websphere.PLG.v85_8.5.5005.20150220_0158
com.ibm.websphere.odm.ds.rules.v87_8.7.1.20150319_2251
( ignore the bulk of the list; this is a VM which contains ALL of the core Smarter Process elements, but we're only focused on ODM today )
I installed the ODM Rules component from two distinct IIM repositories:
- Binaries - /mnt/hgfs/ODM87/Product
- Fixes - /mnt/hgfs/ODM87/Fixes/
With the product already installed, let's pretend I've mislaid the response file that I used to install it or, to be more realistic, I've inherited this installation with little/no documentation. Well, don't worry - IIM comes to the rescue with the generateResponseFile command, as per the following example:
/opt/IBM/InstallationManager/eclipse/tools/imcl generateResponseFile -repositories /mnt/hgfs/ODM87/Product/DecisionServerRules/repository.config,/mnt/hgfs/ODM87/Fixes/updates/repository.config
which returns:
<agent-input>
<variables>
<variable name='sharedLocation' value=''/>
<!-- Set features to "required", "default", or "all" to install the corresponding set of features. -->
<variable name='features' value='default'/>
<!-- Installation location for Decision Server Rules -->
<variable name='installLocation' value=''/>
<!-- Features for Decision Server Rules -->
<variable name='features.com.ibm.websphere.odm.ds.rules.v87'>
<!--
Required features:
com.ibm.wds.jdk.feature: com.ibm.wds.jdk.feature
base: base
-->
<if name='features' equals='required' value='com.ibm.wds.jdk.feature,base'/>
<!--
Default features:
com.ibm.wds.rules.studio.feature: Rule Designer
com.ibm.wds.rules.res.feature: Rule Execution Server
com.ibm.wds.rules.samples.feature: Samples and Tutorials
com.ibm.wds.updatesites.feature: Update sites for installation into other Eclipse products
com.ibm.wds.doc.feature: Local help system
-->
<if name='features' equals='default' value='com.ibm.wds.jdk.feature,com.ibm.wds.rules.studio.feature,com.ibm.wds.rules.res.feature,com.ibm.wds.rules.samples.feature,com.ibm.wds.updatesites.feature,com.ibm.wds.doc.feature,base'/>
<!--
Non-default features:
com.ibm.wds.rules.scorecard.feature: Scorecard Modeler
com.ibm.wds.rules.res.tomcat.feature: Rule Execution Server for Tomcat
com.ibm.wds.rules.res.jboss.feature: Rule Execution Server for JBoss
com.ibm.wds.rules.res.weblogic.feature: Rule Execution Server for WebLogic
com.ibm.wds.rules.res.wlp.feature: Rule Execution Server for Liberty profile
-->
<if name='features' equals='all' value='com.ibm.wds.jdk.feature,com.ibm.wds.rules.studio.feature,com.ibm.wds.rules.scorecard.feature,com.ibm.wds.rules.res.feature,com.ibm.wds.rules.res.tomcat.feature,com.ibm.wds.rules.res.jboss.feature,com.ibm.wds.rules.res.weblogic.feature,com.ibm.wds.rules.res.wlp.feature,com.ibm.wds.rules.samples.feature,com.ibm.wds.updatesites.feature,com.ibm.wds.doc.feature,base'/>
</variable>
</variables>
<server>
<repository location='file:/mnt/hgfs/ODM87/Product/DecisionServerRules/'/>
</server>
<preference name='com.ibm.cic.common.core.preferences.eclipseCache' value='${sharedLocation}'/>
<profile id='Operational Decision Manager V8.7' installLocation='${installLocation}'>
<!-- Common Data: -->
<!-- WAS Home user data -->
<data key='user.wodm_was_home' value=''/>
<!-- WAS Admin User Password -->
<data key='user.wodm_admin_password' value='****'/>
<!-- WAS Admin User Name -->
<data key='user.wodm_admin_username' value=''/>
<!-- Confirm User Password -->
<data key='user.confirm_password' value='****'/>
<!-- User data for License -->
<data key='user.lic.dsr' value=''/>
<!-- User data for Production -->
<data key='user.prod.dsr' value=''/>
<!-- User data for Production -->
<data key='user.prod.dse' value=''/>
<!-- User data for License -->
<data key='user.lic.dse' value=''/>
<!-- User data for License -->
<data key='user.lic.dc' value=''/>
</profile>
<install>
<!-- Decision Server Rules 8.7.0.0 -->
<offering profile='Operational Decision Manager V8.7' id='com.ibm.websphere.odm.ds.rules.v87' version='8.7.0.20141114_0949' features='${features.com.ibm.websphere.odm.ds.rules.v87}'/>
</install>
</agent-input>
Notice that the passwords are hashed out; there's no way with IIM that someone can determine the passwords that we used to build the environment, and that's a good thing.
I can also have IIM actually create a response file, rather than merely outputting to the console:
/opt/IBM/InstallationManager/eclipse/tools/imcl generateResponseFile -repositories /mnt/hgfs/ODM87/Product/DecisionServerRules/repository.config,/mnt/hgfs/ODM87/Fixes/updates/repository.config -output buildODM87.rsp
Generated response file buildODM87.rsp
However, we now have some documentation about our environment, as well as a response file that we can use to perform a new installation, perhaps on a new environment.
Finally, I can generate a response file even without the original product/fix repositories to hand:
/opt/IBM/InstallationManager/eclipse/tools/imcl generateResponseFile -installationDirectory /opt/IBM/ODM87/
<agent-input>
<variables>
<variable name='sharedLocation' value='/opt/IBM/IMShared'/>
<!-- Installation location for Decision Server Rules -->
<variable name='installLocation' value='/opt/IBM/ODM87'/>
</variables>
<preference name='com.ibm.cic.common.core.preferences.eclipseCache' value='${sharedLocation}'/>
<server>
<repository location='file:/tmp/foobar/updates/'/>
</server>
<profile id='Operational Decision Manager V8.7' installLocation='${installLocation}'>
<data key='cic.selector.arch' value='x86_64'/>
<!-- Common Data: -->
<!-- User data for License -->
<data key='user.lic.dsr' value='full'/>
<!-- User data for Production -->
<data key='user.prod.dsr' value='true'/>
<!-- WAS Home user data -->
<data key='user.wodm_was_home' value='/opt/IBM/WebSphere/AppServer'/>
<!-- WAS Admin User Password -->
<data key='user.wodm_admin_password' value='****'/>
<!-- WAS Admin User Name -->
<data key='user.wodm_admin_username' value='wasadmin'/>
<!-- Confirm User Password -->
<!-- WAS Admin User Password -->
<!-- Confirm User Password -->
<data key='user.confirm_password' value='****'/>
</profile>
<install>
<!-- Decision Server Rules 8.7.0.1 -->
<offering profile='Operational Decision Manager V8.7' id='com.ibm.websphere.odm.ds.rules.v87' version='8.7.1.20150319_2251' features='base,com.ibm.wds.jdk.feature,com.ibm.wds.rules.res.feature'/>
</install>
</agent-input>
and:
/opt/IBM/InstallationManager/eclipse/tools/imcl generateResponseFile -installationDirectory /opt/IBM/WebSphere/AppServer/
<agent-input>
<variables>
<variable name='sharedLocation' value='/opt/IBM/IMShared'/>
<!-- Installation location for: -->
<!-- IBM® Business Process Manager Advanced -->
<!-- IBM WebSphere SDK Java Technology Edition (Optional) -->
<!-- IBM® Business Monitor -->
<!-- IBM WebSphere Application Server Network Deployment -->
<!-- IBM® Cognos Business Intelligence 64 bit -->
<variable name='installLocation' value='/opt/IBM/WebSphere/AppServer'/>
</variables>
<preference name='com.ibm.cic.common.core.preferences.eclipseCache' value='${sharedLocation}'/>
<server>
<repository location='file:/mnt/hgfs/Software/Repo/BPM856/Product/repository/repos_64bit'/>
<repository location='file:/mnt/hgfs/Software/Repo/BAM856/Product/repository'/>
<repository location='file:/mnt/hgfs/Software/Repo/WAS/Fixes'/>
</server>
<profile id='IBM WebSphere Application Server V8.5' installLocation='${installLocation}'>
<data key='cic.selector.arch' value='x86'/>
</profile>
<install>
<!-- IBM® Business Process Manager Advanced 8.5.6.0 -->
<offering profile='IBM WebSphere Application Server V8.5' id='com.ibm.bpm.ADV.v85' version='8.5.6000.20150304_1832' features='AdvancedProcessCenter'/>
<!-- IBM WebSphere SDK Java Technology Edition (Optional) 7.0.8.10 -->
<offering profile='IBM WebSphere Application Server V8.5' id='com.ibm.websphere.IBMJAVA.v70' version='7.0.8010.20150219_1802' features='com.ibm.sdk.7'/>
<!-- IBM® Business Monitor 8.5.6.0 -->
<offering profile='IBM WebSphere Application Server V8.5' id='com.ibm.websphere.MON.v85' version='8.5.6000.20150303_1517' features='Monitor.Production'/>
<!-- IBM WebSphere Application Server Network Deployment 8.5.5.5 -->
<offering profile='IBM WebSphere Application Server V8.5' id='com.ibm.websphere.ND.v85' version='8.5.5005.20150220_0158' features='com.ibm.sdk.6_64bit,core.feature,ejbdeploy,embeddablecontainer,samples,thinclient'/>
<!-- IBM® Cognos Business Intelligence 64 bit 10.2.2.0 -->
<offering profile='IBM WebSphere Application Server V8.5' id='com.ibm.ws.cognos.v1022.linuxia64' version='10.2.2.20150304_1653' features='com.ibm.cognos.feature'/>
</install>
</agent-input>
For the record, I am using IIM 1.8.2, but this feature was introduced in 1.7 a while back, as per this:
UID
ibm11080369