The Silence of the Installers

  • View
    178

  • Download
    3

Embed Size (px)

Text of The Silence of the Installers

  • The Silence of the Installers

    How silent installers help you automate IBM Connec:ons

    deployments

  • About me

    IBM So>ware Consultant at Fritz & Macziol Specialized in the IBM Connec:ons and IBM Domino Infrastructure

    Bavarian Linux and Scrip:ng Lover, Blogger Speaker at:

    3

  • About me

    System Architect@WebGate Specialized in IBM Connec:ons and IBM Same:me

    Swiss Bavarian Linux and Scrip:ng Lover, Blogger Speaker at:

    4

  • Goal Give you an idea on how to automate a single box installa:on (Linux)

  • Prerequisites for the Automa:on

    Needed Linux libraries already installed

    Create a well structured install folder with all needed source les

  • Connec:ons Prerequisites

    IBM Installa:on Manager (IIM) IBM WebSphere Applica:ons Server 8.5.5.2 (including IHS and needed Fix)

    Congure WAS (Dmgr, LDAP, security) IBM DB2 10.1 FP4 (import license) Create users and DBs (codepage 1208) IBM TDI 7.1.1 (including Fixpack 3) Congure LDAP-Prole mapping Populate Proles

  • Connec:ons Installa:on

    IBM Connec:ons 5 IBM Connec:ons 5 CR1

  • Post-Installa:on

    Congure IHS Create keystores and certs Exchanging cer:cates Congure IHS for SSL Congure Connec:ons: Congure Admins IHS File downloads Dic:onaries

  • Silent Installs

    Command Line Dene all install parameters through: Command line arguments/op:ons Templates/Response Files Combina:on

    Example: ./imcl -input /opt/InstallFiles/ResponseFiles/install_conn5.xml -log /opt/InstallFiles/log/Conn5.xml -silent -acceptLicense -showProgress

  • How to install IIM silently

    We only want to dene Installa:on Directory and log path

    Can be easily done with command line arguments hap://www-01.ibm.com/support/knowledgecenter/api/content/SSDV2W_1.8.0/com.ibm.silen:nstall12.doc/topics/r_silent_inst_cmd_arg.html

    ./installc -log /opt/InstallationFiles/log/IIM.log -acceptLicense -installationDirectory /opt/IBM/IIM showProgress

    Always use the latest 32bit IIM version (1.8 as of today)

  • How to install WAS silently

    Has to be installed with IIM A lot of parameters have to be dened (paths, install les, )

    Not all of them can be provided by command line arguments

    -> We will use a response le But rst we have to create the response le

  • Create a response le for WAS

    Can only be done through GUI /opt/IBM/IIM/eclipse/IBMIM -record /opt/InstallFiles/ResponseFiles/install_WAS.xml -skipInstall /opt/InstallFiles/Skipped

  • Create a response le for WAS

    Dene what should be installed (WAS will directly be installed with FP2)

  • Create a response le for WAS

    Select the x

  • Create a response le for WAS Iden:fy all variables which should be customisable

  • Create a response le for WAS

  • Create a response le for WAS

  • Create a response le for WAS

  • Create a response le for WAS

  • Create a response le for WAS Replace all variables with placeholders and add them to the beginning of the response le

  • Run a silent install of WAS Now run a silent install with the template and provide all needed variables (one line) /opt/IBM/IIM/eclipse/tools/imcl -input /opt/InstallFiles/ResponseFiles/install_WAS.xml -acceptLicense -showProgress -variables HTTP=/opt/IBM/HTTPServer,WAS_DIR=/opt/IBM/WebSphere/AppServer,WAS_PLUGIN_DIR=/opt/IBM/WebSphere/Plugins,WAS_TOOL_DIR=/opt/IBM/WebSphere/Toolbox,IIM_SHARED=/opt/IBM/IMShared,INSTALL_PATH=/opt/InstallFiles/

  • Congure WAS Create Cell (Dmgr, AppServer) Congure LDAP Dene Admin Enable Applica:on security Dene SSO domain Will be done with some python scripts and wsadmin -> Use Connec:ons Community Scripts to speed up installa:on, congura:on and documenta:on

  • Congure - Example, create_dmgr.py print 'Create Deployment Manager' subprocess.call(WAS_DIR + '/bin/manageprofiles.sh -create -profileName ' + PROFILE_NAME +' -profilePath ' + WAS_PROFILE_DIR + '/' + PROFILE_NAME + ' -templatePath ' + WAS_DIR + '/profileTemplates/cell/dmgr -nodeName ' + NODE_NAME + ' -cellName ' + CELL_NAME + ' -hostName ' + HOST + ' -adminUserName ' + ADMIN_USER + ' -adminPassword ' + ADMIN_PASSWORD + ' -appServerNodeName ' + APP_NODE_NAME + ' -enableAdminSecurity true -nodeProfilePath ' + WAS_PROFILE_DIR + '/' + NODE_PROFILE_NAME + ' -omitAction "samplesInstallandConfig defaultAppDeployAndConfig"', shell=True) print 'Create Node' subprocess.call(WAS_DIR + '/bin/manageprofiles.sh -create -profileName ' + NODE_PROFILE_NAME + ' -profilePath' + WAS_PROFILE_DIR + '/' + NODE_PROFILE_NAME + ' -templatePath ' + WAS_DIR + '/profileTemplates/cell/default -nodeName ' + NODE_NAME + ' -cellName ' + CELL_NAME + ' -hostName ' + HOST + ' -adminUserName ' + ADMIN_USER + ' -adminPassword ' + ADMIN_PASSWORD + ' -appServerNodeName ' + APP_NODE_NAME + ' -dmgrProfilePath ' + WAS_PROFILE_DIR + '/' + PROFILE_NAME + ' -enableAdminSecurity true -omitAction "samplesInstallandConfig defaultAppDeployAndConfig"', shell=True) print 'Preparing the Scripts with variables' shutil.copy2(INSTALL_PATH + 'InstallScripts/configure_dmgr_ldap_template.py', INSTALL_PATH + 'InstallScripts/configure_dmgr_ldap.py') replaceText(INSTALL_PATH + 'InstallScripts/configure_dmgr_ldap.py','@LOGIN_PROPERTIES@', LOGIN_PROPERTIES) replaceText(INSTALL_PATH + 'InstallScripts/configure_dmgr_ldap.py','@LDAP_HOST@', LDAP_HOST) replaceText(INSTALL_PATH + 'InstallScripts/configure_dmgr_ldap.py','@LDAP_BIND_USER@', LDAP_BIND_USER) replaceText(INSTALL_PATH + 'InstallScripts/configure_dmgr_ldap.py','@LDAP_BIND_PASSWORDR@', LDAP_BIND_PASSWORD) shutil.copy2(INSTALL_PATH + 'InstallScripts/configure_dmgr_template.py', INSTALL_PATH + 'InstallScripts/configure_dmgr.py') replaceText(INSTALL_PATH + 'InstallScripts/configure_dmgr.py','@ADMIN_DN@', ADMIN_DN) replaceText(INSTALL_PATH + 'InstallScripts/configure_dmgr.py','@ADMIN_UID@', ADMIN_UID) replaceText(INSTALL_PATH + 'InstallScripts/configure_dmgr.py','@SSO_DOMAIN@', SSO_DOMAIN) print 'starting DMGR' subprocess.call(WAS_DIR + '/bin/startManager.sh', shell=True) subprocess.call(WAS_DIR + '/bin/wsadmin.sh -lang jython -username ' + ADMIN_USER + ' -password ' + ADMIN_PASSWORD + ' -f ' + INSTALL_PATH +'InstallScripts/configure_dmgr_ldap.py', shell=True) print 'stopping DMGR' subprocess.call(WAS_DIR + '/bin/stopManager.sh -username ' + ADMIN_USER + ' -password ' + ADMIN_PASSWORD, shell=True) print 'starting DMGR' subprocess.call(WAS_DIR + '/bin/startManager.sh', shell=True) subprocess.call(WAS_DIR + '/bin/wsadmin.sh -lang jython -username ' + ADMIN_USER + ' -password ' + ADMIN_PASSWORD + ' -f ' + INSTALL_PATH +'InstallScripts/configure_dmgr.py', shell=True) print 'stopping DMGR' subprocess.call(WAS_DIR + '/bin/stopManager.sh -username ' + ADMIN_USER + ' -password ' + ADMIN_PASSWORD, shell=True) print 'starting DMGR' subprocess.call(WAS_DIR + '/bin/startManager.sh', shell=True) subprocess.call(WAS_PROFILE_DIR + '/' + NODE_PROFILE_NAME + '/bin/syncNode.sh ' + HOST + ' -username ' + ADMIN_USER + ' -password ' + ADMIN_PASSWORD, shell=True)

  • Create a response les for DB2

    Can be done with DB2 Setup wizard Remark: Start with the Fixpack from the beginning (dont forget to import license key!) /opt/InstallFiles/DB2/universal/db2setup

  • Create a response le for TDI/Connec:ons

    Can be done with TDI Setup wizard ./install_tdiv711_linux_x86_64.bin -r /opt/InstallFiles/ResponseFiles/install_TDI2.rsp Can be done with the IIM /opt/IBM/IIM/eclipse/IBMIM -record /opt/InstallFiles/ResponseFiles/install_Conn5.xml -skipInstall /opt/InstallFiles/Skipped

  • Run a silent install DB2 (one line): /opt/InstallFiles/DB2/universal/db2setup -r /opt/InstallFiles/ResponseFiles/install_DB2.rsp -l /opt/IBM/log/db2.log

    TDI (one line): /opt/InstallFiles/TDI/Server/linux_x86_64/install_tdiv711_linux_x86_64.bin -i silent f /opt/InstallFiles/ResponseFiles/install_TDI.rsp

    Connec:ons (one line): /opt/IBM/IIM/eclipse/tools/imcl -input /opt/InstallFiles/ResponseFiles/install_conn5_template.xml -log /opt/InstallFiles/log/Conn5.xml -silent -acceptLicense -showProgress

  • Congura:on of DB2/TDI

    Create Connec:ons DBs Enable Online Backup Schedule Backups Extract TDIsol Create sync mapping Sync Schedule sync

  • Congura:on of IBM Connec:ons

    Dene HIS File download through IHS Heap Sizes Max/Min datasources J2EE security roles

  • Let put this all together Combine Steps Create a Python script

    for the menu which combines all scripts

    Work with templates Replace placeholders in

    these templates through scrip:ng and create an actual response le

    Execute silent installers with command line arguments and response les