Sunday, September 5, 2021

Quick tip - Deploying Essbase 21c in Oracle Cloud Infrastructure

This post is about some tips on how to successfully deploy Essbase 21c marketplace offering in OCI. 

Thanks to OCI's Resource Manager, this task is straight-forward and is not time-consuming. That said, it is easy to miss a single step and ending up spending hours troubleshooting an issue you shouldn't have in the first place.

The pre-deployment configuration steps are as follows:

  1. Create compartment 
  2. Create a vault, encryption key, create secrets for your admin passwords and note down the OCID.
  3. Decide on your database option for RCU schemas (you can use an existing database or create a new database as part of the stack deployment)
  4. Create dynamic groups and policies
  5. Configure IDCS if needed (in this case, I'm using embedded LDAP since it is a Dev environment. For Production environments, you need to configure IDCS application and users)
I'm not going to cover each step in detail but rather focus on the task that got me in trouble the first time I tried to deploy Essbase which is dynamic groups and policies. The lazy side of decided to assume the tenancy compartment level defined policies are going to be sufficient for the deployment since I'm using a user with full OCI administration privileges. 

Here is the what I have defined for the first time:

Notice I just have one policy statement:

ALLOW GROUP Admninistrators to manage all-reources in comaprtment Essbase-Dev2

The policy looked sufficient to me, it basically means any user in Administrators group can manage all resources in Essbase-Dev2 compartment, so let me proceed with the deployment and see how it goes.

Go to Marketplace and search for Essbase - UCM (If you have an existing license, you can select BYOL option)

Next step is to provide the secret OCID for the Essbase admin user.

Next step is to configure the Identity Provider, since this is a dev environment I'm going to use embedded LDAP as my Identity Provider.

Finally, I need to specify the database option, and provide the secret OCID for the database admin user.

Next step is to create and deploy the resource manager stack, and wait for it to finish. This step would take anywhere from 2 to 5 minutes tops, once it is finished you can find the server information in "Application Information tab".

It is important to note that the actual Essbase server-side configuration will take another 10 to 15 minutes to complete. You can check the log status in /var/log/essbase-init.log

Next step is to launch Essbase and confirm it is up and running and here is when I notice something has gone wrong! After waiting for 20 minutes, I keep getting the site can't be reached so it is obvious that something did not work according to the plan.

To get a better idea, I searched for more information in /var/etc/log and here is what I found

Basically, the status of each and every configuration item is

"The service returned error code 404"

404 error means nothing exists at the given URI, in other words the services the resource manager is trying to configure are not available

The error message is not very helpful if you ask me, so I had to go back and try to find out what exactly went wrong, and I suspected  it might be due to the missing policies that Resource Manager needed in order to deploy the stack. (Remember I didn't create a dynamic group and assign policy at that level). 

It turned out I was right, it took me an hour to figure out, and it was the missing dynamic group and policies that caused this issue. So to fix this, I had to do the following:

  1. Create a dynamic group 
  2. Add "Essbase-Dev2" compartment to the matching rules of the group
  3. Create specific policies as instructed in Essbase deployment documentation
Here is a screenshot of the dynamic group and the matching rule.

And the policies at group level.

All I have to do now is repeat the same deployment steps again, but first I want to terminate the faulty instance and create a new deployment job.

Fast forward 20 minutes and here is the  new /var/log/essbase-init.log which looks much better this time.

This time I managed to confirm the WebLogic servers and services are up and running.

Finally, I confirmed I can access and login to the new environment.

That's it for today, I hope you find this post helpful.

No comments:

Post a Comment