Skip to content

Instantly share code, notes, and snippets.

@logankimmel
Last active August 16, 2018 23:31
Show Gist options
  • Save logankimmel/07c595ea8c6e60992f1097ff8d76b17d to your computer and use it in GitHub Desktop.
Save logankimmel/07c595ea8c6e60992f1097ff8d76b17d to your computer and use it in GitHub Desktop.
createMultipleManaged
#
#
# Copyright (c) 2016-2017 Oracle and/or its affiliates. All rights reserved.
#
# Licensed under the Universal Permissive License v 1.0 as shown at
# http://oss.oracle.com/licenses/upl.
#
import os
import sys
import com.oracle.cie.domain.script.jython.WLSTException as WLSTException
class SOA12212Provisioner:
MACHINES = {
'machine1' : {
'NMType': 'SSL',
'ListenAddress': 'localhost',
'ListenPort': 5658
}
}
SOA_CLUSTERS = {
'soa_cluster' : {}
}
OSB_CLUSTERS = {
'osb_cluster' : {}
}
SERVERS = {
'AdminServer' : {
'ListenAddress': '',
'ListenPort': 7001,
'Machine': 'machine1'
}
}
SOA_SERVERS = {}
OSB_SERVERS = {}
JRF_12212_TEMPLATES = {
'baseTemplate' : '@@ORACLE_HOME@@/wlserver/common/templates/wls/wls.jar',
'extensionTemplates' : [
'@@ORACLE_HOME@@/oracle_common/common/templates/wls/oracle.jrf_template.jar',
'@@ORACLE_HOME@@/oracle_common/common/templates/wls/oracle.jrf.ws.async_template.jar',
'@@ORACLE_HOME@@/oracle_common/common/templates/wls/oracle.wsmpm_template.jar',
'@@ORACLE_HOME@@/oracle_common/common/templates/wls/oracle.ums_template.jar',
'@@ORACLE_HOME@@/em/common/templates/wls/oracle.em_wls_template.jar'
],
'serverGroupsToTarget' : [ 'JRF-MAN-SVR', 'WSMPM-MAN-SVR' ]
}
SOA_12212_TEMPLATES = {
'extensionTemplates' : [
'@@ORACLE_HOME@@/soa/common/templates/wls/oracle.soa_template.jar'
],
'serverGroupsToTarget' : [ 'SOA-MGD-SVRS-ONLY' ]
}
OSB_12212_TEMPLATES = {
'extensionTemplates' : [
'@@ORACLE_HOME@@/osb/common/templates/wls/oracle.osb_template.jar'
],
'serverGroupsToTarget' : [ 'OSB-MGD-SVRS-ONLY' ]
}
BPM_12212_TEMPLATES = {
'extensionTemplates' : [
'@@ORACLE_HOME@@/soa/common/templates/wls/oracle.bpm_template.jar'
],
'serverGroupsToTarget' : [ 'SOA-MGD-SVRS-ONLY' ]
}
def __init__(self, oracleHome, javaHome, domainParentDir):
self.oracleHome = self.validateDirectory(oracleHome)
self.javaHome = self.validateDirectory(javaHome)
self.domainParentDir = self.validateDirectory(domainParentDir, create=True)
return
def createSoaServers(self, soaServerNum):
serverNum = int(soaServerNum)
for i in range(serverNum):
num = i + 1
s = str(num)
new_server = {
'ListenAddress': '',
'ListenPort': 8001,
'Machine': "machine1",
'Cluster': "soa_cluster"
}
self.SOA_SERVERS["soa_server" + s] = new_server
return
def createOSBServers(self, osbServerNum):
serverNum = int(osbServerNum)
for i in range(serverNum):
num = i + 1
s = str(num)
new_server = {
'ListenAddress': '',
'ListenPort': 9001,
'Machine': "machine1",
'Cluster': "osb_cluster"
}
self.OSB_SERVERS["osb_server" + s] = new_server
return
def configureXADataSources(self):
cd('/JDBCSystemResources/SOADataSource/JdbcResource/SOADataSource')
cd('JDBCDriverParams/NO_NAME_0')
set('DriverName', 'oracle.jdbc.xa.client.OracleXADataSource')
cd('/JDBCSystemResources/EDNDataSource/JdbcResource/EDNDataSource')
cd('JDBCDriverParams/NO_NAME_0')
set('DriverName', 'oracle.jdbc.xa.client.OracleXADataSource')
cd('/JDBCSystemResources/OraSDPMDataSource/JdbcResource/OraSDPMDataSource')
cd('JDBCDriverParams/NO_NAME_0')
set('DriverName', 'oracle.jdbc.xa.client.OracleXADataSource')
return
def createDomain(self, name, user, password, db, dbPrefix, dbPassword,domainType):
domainHome = self.createBaseDomain(name, user, password,domainType)
if domainType == "soa" or domainType == "soaosb":
self.extendSoaDomain(domainHome, db, dbPrefix, dbPassword)
if domainType == "osb" or domainType == "soaosb" :
self.extendOsbDomain(domainHome, db, dbPrefix, dbPassword,domainType)
if domainType == "bpm":
self.extendBpmDomain(domainHome, db, dbPrefix, dbPassword)
def createBaseDomain(self, name, user, password,domainType):
baseTemplate = self.replaceTokens(self.JRF_12212_TEMPLATES['baseTemplate'])
readTemplate(baseTemplate)
setOption('DomainName', name)
setOption('JavaHome', self.javaHome)
setOption('ServerStartMode', 'prod')
set('Name', domainName)
cd('/Security/' + domainName + '/User/weblogic')
set('Name', user)
set('Password', password)
print 'INFO: Creating Node Managers...'
for machine in self.MACHINES:
cd('/')
create(machine, 'Machine')
cd('Machine/' + machine)
create(machine, 'NodeManager')
cd('NodeManager/' + machine)
for param in self.MACHINES[machine]:
set(param, self.MACHINES[machine][param])
print 'INFO: Creating Admin server...'
for server in self.SERVERS:
cd('/')
if server == 'AdminServer':
cd('Server/' + server)
for param in self.SERVERS[server]:
set(param, self.SERVERS[server][param])
continue
create(server, 'Server')
cd('Server/' + server)
for param in self.SERVERS[server]:
set(param, self.SERVERS[server][param])
if domainType == "soa" or domainType == "bpm" or domainType == "soaosb":
for cluster in self.SOA_CLUSTERS:
cd('/')
create(cluster, 'Cluster')
cd('Cluster/' + cluster)
for param in self.SOA_CLUSTERS[cluster]:
set(param, self.SOA_CLUSTERS[cluster][param])
print "INFO: SOA_SERVERS = " + str(self.SOA_SERVERS)
for server in self.SOA_SERVERS:
cd('/')
create(server, 'Server')
cd('Server/' + server)
for param in self.SOA_SERVERS[server]:
set(param, self.SOA_SERVERS[server][param])
print 'INFO: SOA Servers created.....'
if domainType == 'osb' or domainType == "soaosb":
print 'INFO: Creating OSB cluster...'
for cluster in self.OSB_CLUSTERS:
cd('/')
create(cluster, 'Cluster')
cd('Cluster/' + cluster)
for param in self.OSB_CLUSTERS[cluster]:
set(param, self.OSB_CLUSTERS[cluster][param])
for server in self.OSB_SERVERS:
cd('/')
create(server, 'Server')
cd('Server/' + server)
for param in self.OSB_SERVERS[server]:
set(param, self.OSB_SERVERS[server][param])
print 'INFO: OSB Servers created.....'
setOption('OverwriteDomain', 'true')
domainHome = self.domainParentDir + '/' + name
print 'INFO: Writing base domain...'
writeDomain(domainHome)
closeTemplate()
print 'INFO: Base domain created at ' + domainHome
return domainHome
def readAndApplyJRFTemplates(self, domainHome):
print 'INFO: Extending domain at ' + domainHome
readDomain(domainHome)
setOption('AppDir', self.domainParentDir + '/applications')
print 'INFO: Applying JRF templates...'
for extensionTemplate in self.JRF_12212_TEMPLATES['extensionTemplates']:
addTemplate(self.replaceTokens(extensionTemplate))
return
def applySOATemplates(self):
print 'INFO: Applying SOA templates...'
for extensionTemplate in self.SOA_12212_TEMPLATES['extensionTemplates']:
addTemplate(self.replaceTokens(extensionTemplate))
return
def configureJDBCTemplates(self,db,dbPrefix,dbPassword):
print 'INFO: Configuring the Service Table DataSource...'
fmwDb = 'jdbc:oracle:thin:@' + db
cd('/JDBCSystemResource/LocalSvcTblDataSource/JdbcResource/LocalSvcTblDataSource')
cd('JDBCDriverParams/NO_NAME_0')
set('DriverName', 'oracle.jdbc.OracleDriver')
set('URL', fmwDb)
set('PasswordEncrypted', dbPassword)
stbUser = dbPrefix + '_STB'
cd('Properties/NO_NAME_0/Property/user')
set('Value', stbUser)
print 'INFO: Getting Database Defaults...'
getDatabaseDefaults()
return
def targetSOAServers(self,serverGroupsToTarget):
for server in self.SOA_SERVERS:
if not server == 'AdminServer':
setServerGroups(server, serverGroupsToTarget)
print "INFO: Set CoherenceClusterSystemResource to defaultCoherenceCluster for server:" + server
cd('/Servers/' + server)
set('CoherenceClusterSystemResource', 'defaultCoherenceCluster')
return
def targetSOACluster(self):
for cluster in self.SOA_CLUSTERS:
print "INFO: Set CoherenceClusterSystemResource to defaultCoherenceCluster for cluster:" + cluster
cd('/Cluster/' + cluster)
set('CoherenceClusterSystemResource', 'defaultCoherenceCluster')
return
def targetOSBServers(self,serverGroupsToTarget):
for server in self.OSB_SERVERS:
if not server == 'AdminServer':
setServerGroups(server, serverGroupsToTarget)
print "INFO: Set CoherenceClusterSystemResource to defaultCoherenceCluster for server:" + server
cd('/Servers/' + server)
set('CoherenceClusterSystemResource', 'defaultCoherenceCluster')
return
def targetOSBCluster(self):
for cluster in self.OSB_CLUSTERS:
print "INFO: Set CoherenceClusterSystemResource to defaultCoherenceCluster for cluster:" + cluster
cd('/Cluster/' + cluster)
set('CoherenceClusterSystemResource', 'defaultCoherenceCluster')
return
def extendSoaDomain(self, domainHome, db, dbPrefix, dbPassword):
self.readAndApplyJRFTemplates(domainHome)
self.applySOATemplates()
print 'INFO: Extension Templates added'
self.configureJDBCTemplates(db,dbPrefix,dbPassword)
self.configureXADataSources()
print 'INFO: Targeting Server Groups...'
serverGroupsToTarget = list(self.JRF_12212_TEMPLATES['serverGroupsToTarget'])
serverGroupsToTarget.extend(self.SOA_12212_TEMPLATES['serverGroupsToTarget'])
cd('/')
self.targetSOAServers(serverGroupsToTarget)
cd('/')
self.targetSOACluster()
print "INFO: Set WLS clusters as target of defaultCoherenceCluster:[" + ",".join(self.SOA_CLUSTERS) + "]"
cd('/CoherenceClusterSystemResource/defaultCoherenceCluster')
set('Target', ",".join(self.SOA_CLUSTERS))
print 'INFO: Preparing to update domain...'
updateDomain()
print 'INFO: Domain updated successfully'
closeDomain()
return
def extendOsbDomain(self, domainHome, db, dbPrefix, dbPassword,domainType):
self.readAndApplyJRFTemplates(domainHome)
print 'INFO: Applying OSB templates...'
for extensionTemplate in self.OSB_12212_TEMPLATES['extensionTemplates']:
addTemplate(self.replaceTokens(extensionTemplate))
print 'INFO: Extension Templates added'
self.configureJDBCTemplates(db,dbPrefix,dbPassword)
cd('/JDBCSystemResources/SOADataSource/JdbcResource/SOADataSource')
cd('JDBCDriverParams/NO_NAME_0')
set('DriverName', 'oracle.jdbc.xa.client.OracleXADataSource')
cd('/JDBCSystemResources/OraSDPMDataSource/JdbcResource/OraSDPMDataSource')
cd('JDBCDriverParams/NO_NAME_0')
set('DriverName', 'oracle.jdbc.xa.client.OracleXADataSource')
print 'INFO: Targeting Server Groups...'
serverGroupsToTarget = list(self.JRF_12212_TEMPLATES['serverGroupsToTarget'])
serverGroupsToTarget.extend(self.OSB_12212_TEMPLATES['serverGroupsToTarget'])
cd('/')
self.targetOSBServers(serverGroupsToTarget)
cd('/')
self.targetOSBCluster()
print "INFO: Set WLS clusters as target of defaultCoherenceCluster:[" + ",".join(self.OSB_CLUSTERS) + "]"
cd('/CoherenceClusterSystemResource/defaultCoherenceCluster')
set('Target', ",".join(self.OSB_CLUSTERS))
print 'INFO: Preparing to update domain...'
updateDomain()
print 'INFO: Domain updated successfully'
closeDomain()
return
def extendBpmDomain(self, domainHome, db, dbPrefix, dbPassword):
self.readAndApplyJRFTemplates(domainHome)
print 'INFO: Applying BPM templates...'
for extensionTemplate in self.BPM_12212_TEMPLATES['extensionTemplates']:
addTemplate(self.replaceTokens(extensionTemplate))
print 'INFO: Extension Templates added'
self.configureJDBCTemplates(db,dbPrefix,dbPassword)
self.configureXADataSources()
print 'INFO: Targeting Server Groups...'
serverGroupsToTarget = list(self.JRF_12212_TEMPLATES['serverGroupsToTarget'])
serverGroupsToTarget.extend(self.BPM_12212_TEMPLATES['serverGroupsToTarget'])
cd('/')
self.targetSOAServers(serverGroupsToTarget)
cd('/')
self.targetSOACluster()
print "INFO: Set WLS clusters as target of defaultCoherenceCluster:[" + ",".join(self.SOA_CLUSTERS) + "]"
cd('/CoherenceClusterSystemResource/defaultCoherenceCluster')
set('Target', ",".join(self.SOA_CLUSTERS))
print 'INFO: Preparing to update domain...'
updateDomain()
print 'INFO: Domain updated successfully'
closeDomain()
return
###########################################################################
# Helper Methods #
###########################################################################
def validateDirectory(self, dirName, create=False):
directory = os.path.realpath(dirName)
if not os.path.exists(directory):
if create:
os.makedirs(directory)
else:
message = 'Directory ' + directory + ' does not exist'
raise WLSTException(message)
elif not os.path.isdir(directory):
message = 'Directory ' + directory + ' is not a directory'
raise WLSTException(message)
return self.fixupPath(directory)
def fixupPath(self, path):
result = path
if path is not None:
result = path.replace('\\', '/')
return result
def replaceTokens(self, path):
result = path
if path is not None:
result = path.replace('@@ORACLE_HOME@@', oracleHome)
return result
#############################
# Entry point to the script #
#############################
def usage():
print sys.argv[0] + ' -oh <oracle_home> -jh <java_home> -parent <domain_parent_dir> [-name <domain-name>] ' + \
'[-user <domain-user>] [-password <domain-password>] ' + \
'-rcuDb <rcu-database> [-rcuPrefix <rcu-prefix>] [-rcuSchemaPwd <rcu-schema-password>] ' + \
'-domainType <soa|osb|bpm|soaosb> '
sys.exit(0)
print "createDomain.py called with the following inputs:"
for index, arg in enumerate(sys.argv):
print "INFO: sys.argv[" + str(index) + "] = " + str(sys.argv[index])
if len(sys.argv) < 6:
usage()
#oracleHome will be passed by command line parameter -oh.
oracleHome = None
#javaHome will be passed by command line parameter -jh.
javaHome = None
#domainParentDir will be passed by command line parameter -parent.
domainParentDir = None
#domainName is hard-coded to soa_domain. You can change to other name of your choice. Command line parameter -name.
domainName = 'soa_domain'
#domainUser is hard-coded to weblogic. You can change to other name of your choice. Command line paramter -user.
domainUser = 'weblogic'
#domainPassword is hard-coded to welcome1. You can change to other password of your choice. Command line parameter -password.
domainPassword = 'welcome1'
#rcuDb will be passed by command line parameter -rcuDb.
rcuDb = None
#change rcuSchemaPrefix to your soainfra schema prefix. Command line parameter -rcuPrefix.
rcuSchemaPrefix = 'DEV12'
#change rcuSchemaPassword to your soainfra schema password. Command line parameter -rcuSchemaPwd.
rcuSchemaPassword = 'welcome1'
#create servers for the domainName
soaServerNum = 1
osbServerNum = 1
i = 1
while i < len(sys.argv):
if sys.argv[i] == '-oh':
oracleHome = sys.argv[i + 1]
i += 2
elif sys.argv[i] == '-jh':
javaHome = sys.argv[i + 1]
i += 2
elif sys.argv[i] == '-parent':
domainParentDir = sys.argv[i + 1]
i += 2
elif sys.argv[i] == '-name':
domainName = sys.argv[i + 1]
i += 2
elif sys.argv[i] == '-user':
domainUser = sys.argv[i + 1]
i += 2
elif sys.argv[i] == '-password':
domainPassword = sys.argv[i + 1]
i += 2
elif sys.argv[i] == '-rcuDb':
rcuDb = sys.argv[i + 1]
i += 2
elif sys.argv[i] == '-rcuPrefix':
rcuSchemaPrefix = sys.argv[i + 1]
i += 2
elif sys.argv[i] == '-rcuSchemaPwd':
rcuSchemaPassword = sys.argv[i + 1]
i += 2
elif sys.argv[i] == '-domainType':
domainType = sys.argv[i + 1]
i += 2
elif sys.argv[i] == '-soaServerNum':
soaServerNum = sys.argv[i + 1]
i += 2
elif sys.argv[i] == '-osbServerNum':
osbServerNum = sys.argv[i + 1]
i += 2
else:
print 'INFO: Unexpected argument switch at position ' + str(i) + ': ' + str(sys.argv[i])
usage()
sys.exit(1)
provisioner = SOA12212Provisioner(oracleHome, javaHome, domainParentDir)
provisioner.createSOAServers(soaServerNum)
provisioner.createOSBServers(osbServerNum)
provisioner.createDomain(domainName, domainUser, domainPassword, rcuDb, rcuSchemaPrefix, rcuSchemaPassword,domainType)
#!/bin/bash
#
#
# Copyright (c) 2014-2017 Oracle and/or its affiliates. All rights reserved.
#
# Licensed under the Universal Permissive License v 1.0 as shown at http://oss.oracle.com/licenses/upl.
#
export DOMAIN_NAME=${DOMAIN_NAME:-soainfra}
export DOMAIN_ROOT=${DOMAIN_ROOT:-/u01/oracle/user_projects/domains}
export DOMAIN_HOME=${DOMAIN_ROOT}/${DOMAIN_NAME}
#==================================================
function _int() {
echo "INFO: Stopping container."
echo "INFO: SIGINT received, shutting down Admin Server!"
/u01/oracle/user_projects/domains/base_domain/bin/stopWebLogic.sh
exit;
}
#==================================================
function _term() {
echo "INFO: Stopping container."
echo "INFO: SIGTERM received, shutting down Admin Server!"
/u01/oracle/user_projects/domains/base_domain/bin/stopWebLogic.sh
exit;
}
#==================================================
function _kill() {
echo "INFO: SIGKILL received, shutting down Admin Server!"
/u01/oracle/user_projects/domains/base_domain/bin/stopWebLogic.sh
exit;
}
#==================================================
function rand_pwd(){
while true; do
s=$(cat /dev/urandom | tr -dc "A-Za-z0-9" | fold -w 8 | head -n 1)
if [[ ${#s} -ge 8 && "$s" = *[A-Z]* && "$s" = *[a-z]* && "$s" = *[0-9]* ]]
then
break
else
echo "INFO: Password does not Match the criteria, re-generating..." >&2
fi
done
echo "INFO: ${s}"
}
#==================================================
setupRCU() {
dbType=`echo ${CONNECTION_STRING} | cut -d "/" -f2`
scrName=/u01/oracle/oracle_common/common/sql/iau/scripts/creAuditTabs.sql
if [ ! -s "${scrName}.orig" ]; then
echo "INFO: Copying RCU backup file"
cp ${scrName} ${scrName}.orig
fi
if [ "${dbType}" = "XE" -o "${dbType}" = "xe" ]; then
echo "INFO: Setting RCU for XE"
sed -e "s/^@@prepareAuditView.sql/-- @@prepareAuditView.sql/g" ${scrName}.orig > ${scrName}
else
echo "INFO: Setting RCU for ORCL"
cp ${scrName}.orig ${scrName}
fi
}
#==================================================
updateListenAddress() {
mkdir -p ${DOMAIN_HOME}/logs
export thehost=`hostname -I`
echo "INFO: Updating the listen address - ${thehost} ${ADMIN_HOST}"
cmd="/u01/oracle/oracle_common/common/bin/wlst.sh -skipWLSModuleScanning /u01/oracle/dockertools/updListenAddress.py $vol_name ${thehost} AdminServer ${ADMIN_HOST}"
echo ${cmd}
${cmd} > ${DOMAIN_HOME}/logs/aslisten.log 2>&1
}
#==================================================
#== MAIN starts here...
#==================================================
trap _int SIGINT
trap _term SIGTERM
trap _kill SIGKILL
echo "INFO: CONNECTION_STRING = ${CONNECTION_STRING:?"Please set CONNECTION_STRING"}"
echo "INFO: RCUPREFIX = ${RCUPREFIX:?"Please set RCUPREFIX"}"
if [ -z ${SOA_SERVERS} ]
then
echo "INFO: Creating domain for 1 SOA_SERVER"
SOA_SERVERS=1
else
echo "INFO: Creating domain for ${SOA_SERVERS} SOA_SERVERS"
fi;
if [ -z ${OSB_SERVERS} ]
then
echo "INFO: Creating domain for 1 OSB_SERVER"
OSB_SERVERS=1
else
echo "INFO: Creating domain for ${OSB_SERVERS} OSB_SERVERS"
fi;
if [ -z ${DB_PASSWORD} ]
then
echo ""
echo "FATAL: DB System password is empty. Exiting..."
exit 1
fi;
if [ -z ${ADMIN_PASSWORD} ]
then
# Auto generate Oracle WebLogic Server admin password
ADMIN_PASSWORD=$(rand_pwd)
echo ""
echo "INFO: Oracle WebLogic Server Password Auto Generated :"
echo " 'weblogic' admin password: $ADMIN_PASSWORD"
echo ""
fi;
if [ -z ${DB_SCHEMA_PASSWORD} ]
then
# Auto generate Oracle Database Schema password
temp_pwd=$(rand_pwd)
#Password should not start with a number for database
f_str=`echo $temp_pwd|cut -c1|tr [0-9] [A-Z]`
s_str=`echo $temp_pwd|cut -c2-`
DB_SCHEMA_PASSWORD=${f_str}${s_str}
echo ""
echo "INFO: Database Schema password Auto Generated :"
echo " Database schema password: $DB_SCHEMA_PASSWORD"
echo ""
fi
export jdbc_url="jdbc:oracle:thin:@"$CONNECTION_STRING
export vol_name=u01
echo -e $DB_PASSWORD"\n"$DB_SCHEMA_PASSWORD > /tmp/pwd.txt
CTR_DIR=/$vol_name/oracle/user_projects/container/${DOMAIN_NAME}
#
# Creating schemas needed for sample domain ####
#===============================================
#
RUN_RCU="true"
CONFIGURE_DOMAIN="true"
if [ -d $CTR_DIR ]
then
# First load the Env Data from the env file...
if [ -e $CTR_DIR/contenv.sh ]
then
. $CTR_DIR/contenv.sh
#reset the JDBC URL
export jdbc_url="jdbc:oracle:thin:@"$CONNECTION_STRING
fi
else
mkdir -p $CTR_DIR
fi
if [ -e $CTR_DIR/RCU.$RCUPREFIX.suc ]
then
#RCU has already been executed successfully, no need to rerun
RUN_RCU="false"
echo "INFO: SOA RCU has already been loaded. Skipping..."
fi
if [ "$RUN_RCU" = "true" ]
then
setupRCU
# Run the RCU.. it hasnt been loaded before. If it has
# then drop the prefix and restart. New Domain creation
# scenario
echo "INFO: Dropping Schema $RCUPREFIX..."
/$vol_name/oracle/oracle_common/bin/rcu -silent -dropRepository -databaseType ORACLE -connectString $CONNECTION_STRING -dbUser sys -dbRole sysdba -selectDependentsForComponents true -schemaPrefix $RCUPREFIX -component OPSS -component STB -component SOAINFRA -f < /tmp/pwd.txt
echo "INFO: Creating Schema $RCUPREFIX..."
/$vol_name/oracle/oracle_common/bin/rcu -silent -createRepository -databaseType ORACLE -connectString $CONNECTION_STRING -dbUser sys -dbRole sysdba -useSamePasswordForAllSchemaUsers true -selectDependentsForComponents true -variables SOA_PROFILE_TYPE=SMALL,HEALTHCARE_INTEGRATION=NO -schemaPrefix $RCUPREFIX -component OPSS -component STB -component SOAINFRA -f < /tmp/pwd.txt
retval=$?
if [ $retval -ne 0 ];
then
echo "ERROR: RCU Loading Failed. Check the RCU logs"
exit
else
# Write the rcu suc file...
touch $CTR_DIR/RCU.$RCUPREFIX.suc
# Write the env file.. such that the passwords etc.. will be saved and we will
# be able to restart from the RCU
cat > $CTR_DIR/contenv.sh <<EOF
CONNECTION_STRING=$CONNECTION_STRING
RCUPREFIX=$RCUPREFIX
ADMIN_PASSWORD=$ADMIN_PASSWORD
DB_PASSWORD=$DB_PASSWORD
DB_SCHEMA_PASSWORD=$DB_SCHEMA_PASSWORD
vol_name=$vol_name
EOF
fi
fi
rm -f "/tmp/pwd.txt"
#
# Configuration of SOA domain
#=============================
if [ -e $CTR_DIR/SOA.DOMAINCFG.suc ]
then
CONFIGURE_DOMAIN="false"
echo "INFO: Domain Already configured. Skipping..."
fi
if [ "$CONFIGURE_DOMAIN" = "true" ]
then
cfgCmd="/u01/oracle/oracle_common/common/bin/wlst.sh -skipWLSModuleScanning /u01/oracle/dockertools/createDomain.py -oh $ORACLE_HOME -jh $JAVA_HOME -parent $DOMAIN_ROOT -name $DOMAIN_NAME -password $ADMIN_PASSWORD -rcuDb $CONNECTION_STRING -rcuPrefix $RCUPREFIX -rcuSchemaPwd $DB_SCHEMA_PASSWORD -domainType $DOMAIN_TYPE -soaServerNum $SOA_SERVERS -osbServerNum $OSB_SERVERS"
${cfgCmd}
retval=$?
if [ $retval -ne 0 ];
then
echo "ERROR: Domain Configuration failed. Please check the logs"
exit
else
updateListenAddress
# Write the Domain suc file...
touch $CTR_DIR/SOA.DOMAINCFG.suc
echo ${cfgCmd} >> $CTR_DIR/SOA.DOMAINCFG.suc
cat > $CTR_DIR/contenv.sh <<EOF
CONNECTION_STRING=$CONNECTION_STRING
RCUPREFIX=$RCUPREFIX
ADMIN_PASSWORD=$ADMIN_PASSWORD
DB_PASSWORD=$DB_PASSWORD
DB_SCHEMA_PASSWORD=$DB_SCHEMA_PASSWORD
vol_name=$vol_name
EOF
fi
fi
#
# Creating domain env file
#=========================
mkdir -p $DOMAIN_HOME/servers/AdminServer/security $DOMAIN_HOME/servers/${MANAGED_SERVER}/security
#
# Password less Adminserver starting
#===================================
echo "username=weblogic" > $DOMAIN_HOME/servers/AdminServer/security/boot.properties
echo "password="$ADMIN_PASSWORD >> $DOMAIN_HOME/servers/AdminServer/security/boot.properties
#
# Password less Managed Server starting
#======================================
echo "username=weblogic" > $DOMAIN_HOME/servers/${MANAGED_SERVER}/security/boot.properties
echo "password="$ADMIN_PASSWORD >> $DOMAIN_HOME/servers/${MANAGED_SERVER}/security/boot.properties
#
# Setting env variables
#=======================
echo ". $DOMAIN_HOME/bin/setDomainEnv.sh" >> /u01/oracle/.bashrc
echo "export PATH=$PATH:/u01/oracle/common/bin:$DOMAIN_HOME/bin" >> /u01/oracle/.bashrc
# Now we start the Admin server in this container...
/u01/oracle/dockertools/startAS.sh
sleep infinity
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment