Code Monkey home page Code Monkey logo

oracle-soa-ocp's Introduction

Installing Oracle SOA Suite on Red Hat OpenShift

This guide provides 2 methods for installing Oracle SOA Suite on Red Hat OpenShift

  1. Follow the step by step instructions below to install and configure Oracle SOA Suite
  2. Deploy using the provided scripts under the oracle-soa-ocp folder.

Prerequisite

Before installing Oracle SOA Suite we need to have access to or set-up the environment with the below software packages:

  1. Access to Red Hat OpenShift environment with admin privileges
  2. Access to CLI
  3. oc client corresponding to the OpenShift environment
  4. kubectl
  5. podman/docker
  6. helm
  7. Access to Oracle Environment

Method 1 - High-level Steps

  1. Setup weblogic operator on OpenShift
  2. Install Oracle DB on OpenShift or outside of OpenShift (with access to the Oracle DB with sys credentials)
  3. Create an Oracle SOA Suite domain

Preparing the Environment

Step 1 Setup the Red Hat OpenShift container platform, you need to have access to the OpenShift console and also to the oc cli.

Step 2 To deploy the required resources and execute the operator in a the OpenShift environment, the operator utilizes Helm. Please refer to this link for instructions on installing and using Helm.

Step 3 Install the weblogic operator

  1. Login into the OpenShift CLI
  2. Create a new project for the operator
oc new-project <<operator-project-name>>
  1. Create a service account in the
oc create serviceaccount -n <<operator project name>> <<service account name>>
  1. Provide access to the above service account
oc adm policy add-scc-to-user privileged system:serviceaccount:oracle-fusion-operator:fmw-operator-sa
  1. Install the operator using helm (for the latest operator image refer to the oracle website)
helm install ofm-weblogic-operator weblogic-operator/weblogic-operator --namespace <<operator project name>> --set serviceAccount=<<service account name>> --set image=ghcr.io/oracle/weblogic-kubernetes-operator:4.0.6 --set "javaLoggingLevel=FINE" --wait

Step 4 Prepare the environment for Oracle SOA Suite domains

  1. Create a namespace for an Oracle SOA Suite domain
oc new-project <<domain project name>>
  1. Label namespace for the weblogic operator to monitor, this is an important step since the operator monitors the namespace based on the label for any domain creation
oc label namespace <<domain project name>> weblogic-operator=enabled
  1. Set up the code repository to deploy Oracle SOA Suite domains
git clone https://github.com/oracle/fmw-kubernetes.git
export WORKDIR=$HOME/soa_23.2.2/fmw-kubernetes/OracleSOASuite/kubernetes
  1. Next step is to create persistent storage for an Oracle SOA Suite domain. To create the PV and PVC we need to run the scripts from the code directory we cloned in step 3 above. Change directory to
cd ${WORKDIR}/create-weblogic-domain-pv-pvc`** and run the script >**`./create-pv-pvc.sh -i create-pv-pvc-inputs.yaml -o <<output dir>>
  1. The above script generates 2 yaml file one for the PV and the other for the PVC depending on your environment you may only need to run the PVC yaml file which will auto create the PV on other environments you will need to adjust the PV yaml parameters to create a PV and then execute the PVC yaml. Check the PV and PVC files to ensure that the storage class is set to the correct value if not update it to the appropriate storage class
  2. Depending on your environment run the
oc create -f ${WORKDIR}/create-weblogic-domain-pv-pvc/<<output dir>>/<<domainUID-domain-pv.yaml>> -n <<domain project name>>

followed by

oc create -f ${WORKDIR}/create-weblogic-domain-pv-pvc/<<output dir>>/<<domainUID-domain-pv.yaml>> -n <<domain project name>>

or only run the PVC creation if the PV is auto-provisioned

oc create -f ${WORKDIR}/create-weblogic-domain-pv-pvc/<<output dir>>/<<domainUID-domain-pv.yaml>> -n <<domain project name>>
  1. Next create a secret with domain credentials for the administrative account
${WORKDIR}/create-weblogic-domain-credentials/create-weblogic-credentials.sh -u weblogic -p Welcome1 -n <<domain project name>> -d <<domainUID>> -s <<secret-name>>
  1. Next step is to create create a secret with the RCU credentials
${WORKDIR}/create-rcu-credentials/create-rcu-credentials.sh -u <<username>> -p <<password>> -a <<SYSDBA user name>> -q <<SYSDBA user pwd>> -d <<domainUID>> -n <<domain project name>> -s <<secret name>>

The script will create and label the secret. 9. Now we need to configure access to the database for this we need to create a secret with SYSDBA user name and password and RCU schema password.

oc -n oracle-fusion-domain create secret generic oracle-rcu-secret --from-literal='sys_username=<<sys db user>>' --from-literal='sys_password=<<sys db pwd>>' --from-literal='password=<<RCU schema password>>'
  1. If you have internet access and you want to pull the image from oracle container registry then we need to create an image pull secret, to create the secret run the command
${WORKDIR}/create-rcu-schema/create-image-pull-secret.sh -u <<username>> -p <<pwd>> -e=<<email>> -s <<secret-name>> -n <<domain project name>>

Step 5 Setup the Oracle DB using Repository Creation Utility

  1. To create the database schemas for Oracle SOA Suite, run the create-rcu-schema.sh script.
${WORKDIR}/create-rcu-schema/create-rcu-schema.sh -s <<RCU Schema Prefix>> -t <<RCU Schema Type (osb,soa,soaosb)>> -d <<RCU DB URL>> -n <<domain project name>> -c <<name of secret created in Step 4 list number 14 above>> -i <<Oracle SOA Suite Image (soasuite:12.2.1.4)>> -r SOA_PROFILE_TYPE=SMALL,HEALTHCARE_INTEGRATION=NO
  1. Monitor the logs for the rcu pod this will take some time once completed the output should look similar to the below screenshot. RCU Success

Step 6 Create the Oracle SOA Suite Domain

  1. Change directory as cd ${WORKDIR}/create-soa-domain/domain-home-on-pv/
  2. Edit create-domain-inputs.yaml
  3. Refer to the documentation at this link for each parameter and its definition. Some of the key values to adjust are as follows:
  • adminServerName
  • domainUID
  • domainType
  • soaClusterName
  • Ports as necessary
  • osbClusterName
  • image
  • imagePullSecretName/weblogicImagePullSecretName
  • namespace (namespace where the domain needs to be created)
  • javaOptions
  • persistentVolumeClaimName (created in Step 4 list 9 above)
  • rcuSchemaPrefix (specified in Step 5 list 2)
  • rcuDatabaseURL
  • rcuCredentialsSecret (created in Step 4 list 13 above)
  • any other values as needed
  1. Once the appropriate values are adjusted above run the below script to generate the domain creation yaml files
${WORKDIR}/create-soa-domain/domain-home-on-pv/create-domain.sh -i create-domain-inputs.yaml -o ./create-domain-output-script
  1. A new pod should appear in the namespace to run the domain creation. The pod name should start with the
<<domainUID>>-create-soa-infra-domain-job-<<random>>
  1. Once the script executes successfully the log output of the above pod should look something like the image below

Domain Creation Success Log

  1. The above script will generate files on the output folder specified in step 4 above, execute the below command to create the domain
oc apply -f ${WORKDIR}/create-soa-domain/domain-home-on-pv/create-domain-output-script/weblogic-domains/soainfra/domain.yaml
  1. Once the deployment is complete create the necessary routes to access the Weblogic Server Administration Console
oc expose service <<domainUID>>-adminserver --path=/console --name=ofm-admin-server
  1. Launch the Weblogic Server Administration Console using the route URL

Method 2

  1. Navigate to the folder oracle-soa-ocp/oracle-soa-provision
  2. Update the deploy-oracle-soa.sh script with the appropriate values
  3. Run the deploy-oracle-soa.sh script
  4. Once the deployment is complete create the necessary routes to access the Weblogic Server Administration Console
oc expose service soainfra-adminserver --path=/console --name=ofm-admin-server
  1. Launch the Weblogic Server Administration Console using the route URL

oracle-soa-ocp's People

Contributors

rohitralhan avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.