After some weeks, spent in Sweden, I'm back ... and will continue writing blogposts ... :-)
Stay tuned
Stay tuned
A Toolset To Create Forms Reports Environment The CLI Way
Have a look how Domains can be started using WLST
See how to solve that ...
#!/bin/bash #===================================================================== # # $Id: crDomain.sh $ # $Name: basenv-16.05.final.c $ # # PURPOSE: Script to create an Oracle Forms & Report WebLogic Domain # # PARAMETERS: none, all required parameters are taken from setLocalEnv.sh # # AUTHOR: EDOREX AG, Robert Crames, 2017 # # Modified : TRIVADIS AG, Dirk Nachbar, 2017 # # #===================================================================== # set -x # Set Start Time start_time=$(date +%s) echo ${DOMAIN_NAME} source $PWD/setLocalEnv.sh echo $ORACLE_HOME function wait4something { echo " " echo "ENTER to proceed ..." read echo "The Installation Process is started ..." } echo "======================================================================================" echo " Program : crDomain.sh ........" echo "======================================================================================" if [ -z "${WLST_HOME}" ]; then echo "Environment not correctly set - please verify" exit 1 fi #--> install Domain if ! test -d "${DOMAIN_BASE}/${DOMAIN_NAME}"; then echo "==================================================" echo "Domain will be installed ..." echo "==================================================" if [ -z "${ADM_PWD}" -o -z "${TEMPLATE}" -o -z "${ADMINPORT}" -o -z "${MW}" -o -z "${ADMINPORTSSL}" -o -z " ${DOMAIN_NAME}" ]; then echo "Environment not set - Exit" exit 1 fi # In case we are facing problems with /dev/random export CONFIG_JVM_ARGS=-Djava.security.egd=file:/dev/./urandom:$CONFIG_JVM_ARGS ${WLST_HOME}/wlst.sh ${SCRIPT_HOME}/crDomain.py mkdir -p ${DOMAIN_BASE}/${DOMAIN_NAME}/servers/${AS_NAME}/security echo "username=${ADM_USER}" > ${DOMAIN_BASE}/${DOMAIN_NAME}/servers/${AS_NAME}/security/boot.properties echo "password=${ADM_PWD}" >> ${DOMAIN_BASE}/${DOMAIN_NAME}/servers/${AS_NAME}/security/boot.properties if [ "${FORMS12C}" == "true" ] || [ "${REPORTS12C}" == "true" ]; then echo "===========================================" echo "Oracle Forms and Reports will be configured" echo "===========================================" cd ${SCRIPT_HOME} ${SCRIPT_HOME}/crFRExtension.sh echo "DOMAIN with Forms and Reports is created" fi if [ "${WEBTIER12C}" == "true" ]; then echo "===========================================" echo "Oracle Webtier will be configured" echo "===========================================" nohup ${DOMAIN_BASE}/${DOMAIN_NAME}/bin/startNodeManager.sh > /dev/null 2>&1 & echo "===========================================" echo " Node Manager starting, wait for 30 seconds" echo "===========================================" sleep 30 nohup ${DOMAIN_BASE}/${DOMAIN_NAME}/startWebLogic.sh > /dev/null 2>&1 & echo "===========================================" echo "Admin Server ${AS_NAME} starting, wait for 2 Minutes" echo "===========================================" sleep 120 cd ${SCRIPT_HOME} ${SCRIPT_HOME}/crWebtierDomain.sh echo "DOMAIN with OHS is created" fi # Set End Time finish_time=$(date +%s) echo "Finished" echo "Domain Build Time: $(( $((finish_time - start_time))/60)) minutes." echo "Start Domain manually by using startWeblogic.sh" else echo "Domain is already installed ..." fi
# Location to the directory in which the create Domain scripts are residing export SCRIPT_HOME=$PWD # Directories export ORACLE_BASE=/appl/oracle export INT_ORACLE_HOME=$ORACLE_BASE/product/fmw-fr-12.2.1.2.0 export WL_HOME=$INT_ORACLE_HOME/wlserver export WLST_HOME=$INT_ORACLE_HOME/oracle_common/common/bin export MW=$INT_ORACLE_HOME export DOMAIN_BASE=$ORACLE_BASE/user_projects/domains export APPLICATION_BASE=$ORACLE_BASE/user_projects/applications export APP_VZ=$APPLICATION_BASE # install forms true / false export FORMS12C=true # install reports true / false export REPORTS12C=true # install OHS true / false export WEBTIER12C=true export OHS_COMPONENTNAME=ohs1 export OHS_LISTENPORT=7777 export OHS_SSLPORT=4443 # Domain specific export TEMPLATE=$WL_HOME/common/templates/wls/wls.jar export DOMAIN_NAME=FRTEST # AdminServer export AS_NAME=FRTESTAdminServer export ADM_USER=weblogic export ADM_PWD=welcome1 export ADMINPORT=7001 export ADMINPORTSSL=7101 export AS_HOST=`hostname -f` # Name and Port for the Forms Managed Server export FORMS_MS_NAME=MS_FORMS export FORMS12C_MS_PORT=9001 # Name and Port for the Reports Managed Server export REPORTS_MS_NAME=MS_REPORTS export REPORTS12C_MS_PORT=9002 # Move Reports Application into WLS_FORMS (true or false) export REPORTS_IN_FORMS=false # NodeManager export NM_LISTENADDRESS=`hostname -f` export NM_TYPE=SSL export NM_PORT=5556 export NM_USERNAME=nodemanager export NM_PWD=welcome1 # Repository Connect export DBUSER=sys export DBPWD=<Password of user sys> export DBROLE=SYSDBA export COMPONENTPWD=<Password to be used for component access> export SCHEMA_PREFIX=$DOMAIN_NAME export DB_HOST=<Hostname> export DB_PORT=<Port, the database is listening on> export DB_SERVICE=<Servicename of the repository database> export DB_OMF=<true or false - set only to true if the database is prepared for that> export DB_USER_PW=<Password to be used for repository schema owners> export PWDFILE=$SCRIPT_HOME/passwords.txt
#!/usr/bin/python # Things to do: # Logausgabe in File via redirect() import os, sys v_asName=os.environ['AS_NAME'] v_asUser=os.environ['ADM_USER'] v_webpw=os.environ['ADM_PWD'] v_adminport=os.environ['ADMINPORT'] v_adminportssl=os.environ['ADMINPORTSSL'] v_domainName=os.environ['DOMAIN_NAME'] v_template=os.environ['TEMPLATE'] v_javaHome=os.environ['JAVA_HOME'] v_setup_domain_base=os.environ['DOMAIN_BASE'] v_setup_application_base=os.environ['APPLICATION_BASE'] v_OracleHome=os.environ['INT_ORACLE_HOME'] v_dbhost=os.environ['DB_HOST'] v_dbport=os.environ['DB_PORT'] v_dbservice=os.environ['DB_SERVICE'] v_rcudbstr=v_dbhost+":"+v_dbport+":"+v_dbservice v_SchemaPrefix=os.environ['SCHEMA_PREFIX'] v_pwdfile=os.environ['PWDFILE'] v_dbUser=os.environ['DBUSER'] v_dbPwd=os.environ['DBPWD'] v_dbRole=os.environ['DBROLE'] v_dbOmf=os.environ['DB_OMF'] v_componentPassword=os.environ['COMPONENTPWD'] def printHeader(headerText): print "\n======================================================================================" print "--> "+headerText print "======================================================================================\n" def printInfo(infoText): print "-->: "+infoText printHeader("Started: crDomain.py") printHeader("Create password file") os.system("echo "+v_dbPwd+">"+v_pwdfile) os.system("echo " +v_componentPassword+ ">>"+v_pwdfile) os.system("echo " +v_componentPassword+ ">>"+v_pwdfile) os.system("echo " +v_componentPassword+ ">>"+v_pwdfile) os.system("echo " +v_componentPassword+ ">>"+v_pwdfile) os.system("echo " +v_componentPassword+ ">>"+v_pwdfile) printHeader("Step: create repository - started") printInfo("Drop repository "+v_SchemaPrefix) os.system(v_OracleHome + "/oracle_common/bin/rcu -silent -dropRepository -databaseType ORACLE -connectString "+ v_rcudbstr +" -dbUser "+v_dbUser+" -dbRole "+v_dbRole+" -schemaPrefix "+v_SchemaPrefix+" -component STB -component IAU -component IAU_APPEND -component IAU_VIEWER -component OPSS -f <"+v_pwdfile) printInfo("Repository "+v_SchemaPrefix+" dropped") printInfo("Create repository "+v_SchemaPrefix+" - started") os.system(v_OracleHome + "/oracle_common/bin/rcu -silent -createRepository -honorOMF "+ v_dbOmf +" -connectString "+ v_rcudbstr +" -dbUser "+v_dbUser+" -dbRole "+v_dbRole+" -useSamePasswordForAllSchemaUsers true -schemaPrefix "+v_SchemaPrefix+" -component STB -component IAU -component IAU_APPEND -component IAU_VIEWER -component OPSS -f < "+v_pwdfile) printInfo("Repository "+v_SchemaPrefix+" created") printHeader("Step: Read default template (always wls.jar!!)") readTemplate(v_template) printInfo("Template: "+v_template+" successfully read") printHeader("Step: Prepare Domain --> Set Domain Name to"+v_domainName) cd('/') cmo.setName(v_domainName) printInfo("Step: Set Domain Name --> Successful") printHeader("Step: Prepare Domain --> Set User Password") cd('/') cd('/Security/'+v_domainName+'/User/'+v_asUser) cmo.setPassword(v_webpw) printInfo("Step: Set User Password --> Successful") printHeader('Step: Prepare Domain --> Set AdminServer Name ('+v_asName+') and Port ('+v_adminport+')') cd('/') cd('/Server/AdminServer') cmo.setName(v_asName) cd('/') cd('/Server/'+v_asName) cmo.setListenPort(int(v_adminport)) printInfo("Step: Set AdminServer Name --> Successful") printHeader("Step: Prepare Domain --> Set Domain Properties") setOption('OverwriteDomain', 'true') setOption('ServerStartMode','prod') printInfo("Step: Set Domain Properties --> Successful") printHeader("Step: Prepare Domain --> Set JAVA_HOME in Domain") setOption('JavaHome',v_javaHome) printInfo("Step: Set JAVA_HOME in Domain --> Successful") printHeader("Step: writeDomain and closeTemplate") writeDomain(v_setup_domain_base+'/'+v_domainName) closeTemplate() printInfo("Step: writeDomain and closeTemplate --> Successful") printHeader("Finished: crDomain.py")
#!/bin/bash #===================================================================== # # $Id: crDomain.sh $ # $Name: basenv-16.05.final.c $ # # PURPOSE: Script to a WebLogic Domain with Forms & Reports # Script will be called by crDomain.sh # # PARAMETERS: none, all required parameters are taken from setLocalEnv.sh # # AUTHOR: EDOREX AG, Robert Crames, 2017 # # Modified : TRIVADIS AG, Dirk Nachbar, 2017 # # #===================================================================== echo "======================================================================================" echo " Program : crFRExtension.sh ........" echo "======================================================================================" # In case we are facing problems with /dev/random export CONFIG_JVM_ARGS=-Djava.security.egd=file:/dev/./urandom:$CONFIG_JVM_ARGS ${WLST_HOME}/wlst.sh ${SCRIPT_HOME}/crFRExtension.py if [ "${FORMS12C}" == "true" ]; then mkdir -p ${DOMAIN_BASE}/${DOMAIN_NAME}/servers/${FORMS_MS_NAME}/security echo "username=${ADM_USER}" > ${DOMAIN_BASE}/${DOMAIN_NAME}/servers/${FORMS_MS_NAME}/security/boot.properties echo "password=${ADM_PWD}" >> ${DOMAIN_BASE}/${DOMAIN_NAME}/servers/${FORMS_MS_NAME}/security/boot.properties fi if [ "${REPORTS12C}" == "true" ]; then mkdir -p ${DOMAIN_BASE}/${DOMAIN_NAME}/servers/${REPORTS_MS_NAME}/security echo "username=${ADM_USER}" > ${DOMAIN_BASE}/${DOMAIN_NAME}/servers/${REPORTS_MS_NAME}/security/boot.properties echo "password=${ADM_PWD}" >> ${DOMAIN_BASE}/${DOMAIN_NAME}/servers/${REPORTS_MS_NAME}/security/boot.properties fi
#!/usr/bin/python # Things to do: # import os, sys v_forms=os.environ['FORMS12C'] v_formsMSName=os.environ['FORMS_MS_NAME'] v_formsPort=os.environ['FORMS12C_MS_PORT'] v_reports=os.environ['REPORTS12C'] v_reportsMSName=os.environ['REPORTS_MS_NAME'] v_reportsPort=os.environ['REPORTS12C_MS_PORT'] v_NMListenAddress=os.environ['NM_LISTENADDRESS'] v_NMType=os.environ['NM_TYPE'] v_NMPort=os.environ['NM_PORT'] v_NMUsername=os.environ['NM_USERNAME'] v_NMPwd=os.environ['NM_PWD'] v_domain=os.environ['DOMAIN_NAME'] v_dbhost=os.environ['DB_HOST'] v_dbport=os.environ['DB_PORT'] v_dbservice=os.environ['DB_SERVICE'] v_url="jdbc:oracle:thin:@//"+v_dbhost+':'+v_dbport+'/'+v_dbservice v_pwd=os.environ['DB_USER_PW'] v_SchemaPrefix=os.environ['SCHEMA_PREFIX'] v_setup_domain_base=os.environ['DOMAIN_BASE'] v_setup_application_base=os.environ['APPLICATION_BASE'] v_reports_in_forms=os.environ['REPORTS_IN_FORMS'] def changeDatasourceToXA(datasource): print 'Change datasource '+datasource cd('/') cd('/JDBCSystemResource/'+datasource+'/JdbcResource/'+datasource+'/JDBCDriverParams/NO_NAME_0') set('DriverName','oracle.jdbc.xa.client.OracleXADataSource') set('UseXADataSourceInterface','True') cd('/JDBCSystemResource/'+datasource+'/JdbcResource/'+datasource+'/JDBCDataSourceParams/NO_NAME_0') set('GlobalTransactionsProtocol','TwoPhaseCommit') cd('/') def printHeader(headerText): print "\n======================================================================================" print "--> "+headerText print "======================================================================================\n" def printInfo(infoText): print "-->: "+infoText printHeader("Started: crFRExtension.py") try: if not ( v_forms == "true" or v_reports == "true" ): printInfo( "Forms and Reports flag are set to false") printInfo( "We will stop processing, please activate Forms or Reports") exit() printHeader( "readDomain "+v_domain+" started") readDomain(v_setup_domain_base+'/'+v_domain) printInfo( "readDomain successful") except: printInfo( "readDomain failed") exit() try: printHeader( "select and load templates") selectTemplate('Oracle HTTP Server (Collocated)') if v_forms == "true": selectTemplate('Oracle Forms') if v_reports == "true": selectTemplate('Oracle Reports Application') selectTemplate('Oracle Reports Server') printInfo( "select templates successful") loadTemplates() printInfo( "load templates successful") except: printInfo( "select and load templates failed") exit() printHeader("JDBC configuration") try: printInfo("Configure LocalSvcTblDataSource") cd('/') cd('/JDBCSystemResource/LocalSvcTblDataSource/JdbcResource/LocalSvcTblDataSource') cd('JDBCDriverParams/NO_NAME_0') set('DriverName','oracle.jdbc.OracleDriver') set('URL', v_url) set('PasswordEncrypted', v_pwd) cd('Properties/NO_NAME_0') cd('Property/user') cmo.setValue(v_SchemaPrefix+'_STB') printInfo("Configure LocalSvcTblDataSource successful") except: printInfo("Configure LocalSvcTblDataSource failed") exit() try: printInfo("Configure opss-data-source") cd('/') cd('JDBCSystemResource/opss-data-source/JdbcResource/opss-data-source') cd('JDBCDriverParams/NO_NAME_0') set('DriverName','oracle.jdbc.OracleDriver') set('URL', v_url) set('PasswordEncrypted', v_pwd) cd('Properties/NO_NAME_0') cd('Property/user') cmo.setValue(v_SchemaPrefix+'_OPSS') printInfo("Configure opss-data-source successful") except: printInfo("Configure opss-data-source failed") exit() try: printInfo("Configure opss-audit-viewDS") cd('/') cd('JDBCSystemResource/opss-audit-viewDS/JdbcResource/opss-audit-viewDS') cd('JDBCDriverParams/NO_NAME_0') set('DriverName','oracle.jdbc.OracleDriver') set('URL', v_url) set('PasswordEncrypted', v_pwd) cd('Properties/NO_NAME_0') cd('Property/user') cmo.setValue(v_SchemaPrefix+'_IAU_VIEWER') printInfo("Configure opss-audit-viewDS successful") except: printInfo("Configure opss-audit-viewDS failed") exit() try: printInfo("Configure opss-audit-DBDS") cd('/') cd('JDBCSystemResource/opss-audit-DBDS/JdbcResource/opss-audit-DBDS') cd('JDBCDriverParams/NO_NAME_0') set('DriverName','oracle.jdbc.OracleDriver') set('URL', v_url) set('PasswordEncrypted', v_pwd) cd('Properties/NO_NAME_0') cd('Property/user') cmo.setValue(v_SchemaPrefix+'_IAU_APPEND') printInfo("Configure opss-audit-DBDS successful") except: printInfo("Configure opss-audit-DBDS failed") exit() try: printInfo("Modify Datasources: LocalSvcTblDataSource , opss-audit-DBDS, opss-audit-viewDS , opss-data-source") changeDatasourceToXA('LocalSvcTblDataSource') changeDatasourceToXA('opss-audit-DBDS') changeDatasourceToXA('opss-audit-viewDS') changeDatasourceToXA('opss-data-source') printInfo("Modify Datasources successful") except: printInfo("Modify Datasources failed") printHeader('Customize Domain Settings') try: printInfo("Name and Ports of the Managed Servers will be modified") if v_forms == "true": cd('/') cd('/Server/WLS_FORMS') cmo.setName(v_formsMSName) cd('/') cd('/Server/'+v_formsMSName) cmo.setListenPort(int(v_formsPort)) if v_reports == "true": cd('/') cd('/Server/WLS_REPORTS') cmo.setName(v_reportsMSName) cd('/Server/'+v_reportsMSName) cmo.setListenPort(int(v_reportsPort)) printInfo("Modification of Name and Ports are successful") except: printInfo("ERROR: Modification of Name and Ports are failed") try: if v_reports_in_forms == 'false': printInfo("Reports are remaining in own Managed Server") except: printInfo("x") try: if v_reports_in_forms == 'true': printInfo("Trying Move Reports into Forms Managed Server") cd('/') cd('/AppDeployments/reports#12.2.1') set('Target','cluster_forms') cd('/') cd('/Library/oracle.reports.applib#12.2.1@12.2.1') set('Target','cluster_forms') printInfo("Move Reports into Forms Managed Server are successful") except: printInfo("ERROR: Move Reports into Forms Managed Server failed") try: printHeader("Nodemanager Configuration") cd('/') cd('/Machines/AdminServerMachine/NodeManager/AdminServerMachine') cmo.setNMType(v_NMType) cmo.setListenAddress(v_NMListenAddress) cmo.setListenPort(int(v_NMPort)) cd('/') cd('/SecurityConfiguration/'+v_domain) cmo.setNodeManagerUsername(v_NMUsername) cmo.setNodeManagerPasswordEncrypted(v_NMPwd) printInfo("Nodemanager Configuration successful") except: printInfo("ERROR: Nodemanager Configuration failed") try: printHeader("AppDir will be set to "+v_setup_application_base) try: setOption('AppDir',v_setup_application_base) except Exception, e: print "Error Message "+ str(e) printInfo("Domain will be updated and saved") printInfo("... this can take up to 5 minutes") updateDomain() closeDomain() printHeader("Program End: crFRExtension.py") print "======================================================================================" exit() except: print "Domain could not be saved"
#!/bin/bash #===================================================================== # # $Id: crWebtierDomain.sh $ # $Name: basenv-16.05.final.c $ # # PURPOSE: Script to configure Oracle HTTP Server for Oracle Forms & Reports # # PARAMETERS: none, all required parameters are taken from setLocalEnv.sh # # AUTHOR: TRIVADIS AG, Dirk Nachbar, 2017 # # Modified : # # #===================================================================== echo "======================================================================================" echo " Program : crWebtierDomain.sh ........" echo "======================================================================================" # Check the required Environment Variables for OHS COnfiguration if [ -z "${OHS_COMPONENTNAME}" -o -z "${OHS_LISTENPORT}" -o -z "${OHS_SSLPORT}" ]; then echo "Environment not set - Exit" exit 1 fi # In case we are facing problems with /dev/random export CONFIG_JVM_ARGS=-Djava.security.egd=file:/dev/./urandom:$CONFIG_JVM_ARGS ${WLST_HOME}/wlst.sh ${SCRIPT_HOME}/crWebtierDomain.py echo "======================================================================================" echo "Starting newly create OHS Component ${OHS_COMPONENTNAME} " echo "======================================================================================" echo ${NM_PWD} | ${DOMAIN_BASE}/${DOMAIN_NAME}/bin/startComponent.sh ${OHS_COMPONENTNAME} storeUserConfig
#!/usr/bin/python # Things to do: # import os, sys v_asUser=os.environ['ADM_USER'] v_webpw=os.environ['ADM_PWD'] v_adminport=os.environ['ADMINPORT'] v_as_host=os.environ['AS_HOST'] v_ohs_componentname=os.environ['OHS_COMPONENTNAME'] v_ohs_listenport=os.environ['OHS_LISTENPORT'] v_ohs_sslport=os.environ['OHS_SSLPORT'] connect(v_asUser, v_webpw, v_as_host+':'+v_adminport) ohs_createInstance(instanceName=v_ohs_componentname, machine='AdminServerMachine', listenPort=v_ohs_listenport, sslPort=v_ohs_sslport)
Copyright ©
Robert Crames' Oracle Database and Middleware Blog | Powered by Blogger
Design by SimpleWpThemes | Blogger Theme by NewBloggerThemes.com