The learning curve for new tools might be a handicap for many people. To sort that problem Oracle is providing pre-build stacks to help deploy environments without having to learn Terraform language.
Let’s have a look and see how it works… We will start by log in to the Oracle Cloud Infrastructure Console.
From the Navigation menu, select Resource Manager and then Stacks

Click Create Stack

In the new wizard you will have the option to upload your own Terraform files or use a pre-build configuration. We will select Sample Solution and click in Select Solution.

Currently, there is a small number of solutions in place. We will deploy a sample E-Commerce Application which is based in the MuShop microservices HOL.

Next provide a name for your solution, a description, and ensure you are in the right compartment. Click Next.
Now it’s time to configure the variables for the resources. Basically you will need to provide a name for your Database, select in which Availability Domain you want to deploy it, and provide an SSH Key.

Review that everything is correct and Click Create.

Your new stack is ready to be deployed. Click Terraform Actions and then Apply.

Leave the default values (Automatically Approve) and click Apply.

You can now take a break and grab a coffee. It will take a bit to deploy all the resources in the environment (bear in mind it will initialize provider plugins and then deploy all the required resources: networks, subnets, database instance, compute instances, etc.)

Once the stack is deployed you will have a full Mushop application ready to go. You can download existing terraform scripts and reuse them for other deployments or modify them as per your requirements. I think it would be great if Oracle provides a way to push the configuration to GitHub.
Have fun!
Hi,
I’m trying to find the differences (pros vs cons) when using resource manager (ORM) vs TF builds, when it might be useful and what can/cannot be achieved in either case? Please can you help.
second: In case of a manual change introduced to a resource deployed either by (ORM or TF), what happens to TF state and how quick to resync scenarios?
Third: when additional tooling to be involved with Ansible for configuration management for specific apps ? what can be useful (ORM or TF based)
fourth : In case of security tooling chain to be introduced for IAST or RASP, in case of containers and end-to-end apps deployment, which can be the good options?
I’m looking for deep dive options here?
Hi! Thanks for reaching out.
#1
Pros:
Oracle Resource Manager (ORM) does not require the installation of the OCI terraform provider.
Provides pre-built solutions (https://docs.cloud.oracle.com/en-us/iaas/Content/ResourceManager/Reference/solutions.htm)
Simply upload your zip file (terraform configurations) and run the stack
3 click process.
Cons:
Slightly slower than running Terraform builds as when you apply the Job stack will install the provider during the process.
Using CLI requires first to plan and wait for the job-id output, and afterward (with that Job-id which is required) you can apply. I use python scripts for this (wait for the job-id, capture, and launch the “apply” command).
#2:
We have the Resource Discovery feature available in the Terraform Provider. It helps discover deployed resources in your compartment and export them to Terraform file and state files. For Resource Manager it is currently in LA.
#3:
When mixing different config mgmt tool, I would go down with the Terraform builds.
#4:
That relies on the application layer. ORM is intended for Infrastructure as Code (IaC).
More information: https://docs.cloud.oracle.com/en-us/iaas/Content/ResourceManager/Concepts/terraformconfigresourcemanager.htm