Last active
August 16, 2018 23:31
-
-
Save logankimmel/07c595ea8c6e60992f1097ff8d76b17d to your computer and use it in GitHub Desktop.
createMultipleManaged
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# | |
# 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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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