Developer Installation - Oracle Linux 8 (x86)
This is an description of installing on a Oracle Linux 8 desktop.
Read the On-Premises documentation and ensure that your desktop meets the minimum system requirements.
Create a new user. While any user name can be created, the rest of this documentation refers to the non-root user as obaas:
As root, process the following:
useradd obaas
Download the latest version of Oracle Backend for Microservices and AI and unzip into a new directory.
As the obaas user, run this command:
unzip onprem-ebaas_latest.zip -d ~/obaas
Future access to the obaas user requires a direct login (not sudo or su). To setup ssh-key access as obaas, run the following commands:
mkdir ~/.ssh
vi ~/.ssh/authorized_keys
Paste the public key of your client machines into the ~/.ssh/authorized_keys file, and change the permissions as follows:
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
Assuming the source was unzipped to ~obaas/obaas, as the root user, update the operating system by running the ol8_onprem.sh script from the unzipped package:
~obaas/obaas/ol8_onprem.sh
This script performs the following actions:
- Install required operating system Packages
- Install Minikube
- Set Python3 as the default python
- Enable cgroup v2
- Enable IP Tables
- Update the container runtime configuration
If this is being installed on an OCI Compute instance, grow the filesystem:
As root:
/usr/libexec/oci-growfs
IMPORTANT After the operating system has been updated, reboot the host.
The remaining steps require direct login as the obaas user without using sudo or su.
The non-production installation provisions an Oracle database into the Kubernetes cluster. The images must be downloaded from Oracle Cloud Infrastructure Registry (Container Registry) before continuing.
While directly logged into the obaas user, process these steps:
-
Log in to the Container Registry. For example:
podman login container-registry.oracle.com -
Pull the database image. For example:
podman pull container-registry.oracle.com/database/enterprise:19.3.0.0 -
Pull the ORDS image. For example:
podman pull container-registry.oracle.com/database/ords:21.4.2-gh
If the podman pull command fails, navigate in a web browser to Oracle container registry, click the “database” tile and select “enterprise”. On the right hand side of the page, if prompted, sign-in. Select “Language” and accept the Terms. Try the podman pull command again.
While directly logged into the obaas user, run these commands:
minikube config set rootless true
minikube config set driver podman
minikube start --cpus max --memory 16G --disk-size='40g' --container-runtime=containerd
minikube addons enable ingress
echo "KUBECONFIG=~/.kube/config" >> ~/.bashrc
While directly logged into the obaas user, change to the source directory and install Ansible by running these commands:
cd ~/obaas
./setup_ansible.sh
source ./activate.env
Use the Helper Playbook to define the infrastructure. This Playbook also:
- Creates additional namespaces for the Container Registry and database.
- Creates a private Container Registry in the Kubernetes cluster.
- Modifies the Microservices application to be desktop compatible.
Assuming the source was unzipped to ~/obaas, run the following command as the obaas user:
ansible-playbook ~/obaas/ansible/desktop_apply.yaml
In order to push the images to the Container Registry in the Kubernetes cluster, open a new terminal and process this command while being directly logged into the obaas user:
cd ~/obaas
source ./activate.env
kubectl port-forward service/private -n container-registry 5000:5000 > /dev/null 2>&1 &
Build and push the images to the Container Registry in the Kubernetes cluster.
Assuming the source was unzipped to ~/obaas, run the following command as the obaas user:
cd ~/obaas
source ./activate.env
ansible-playbook ~/obaas/ansible/images_build.yaml
After the images are built and pushed, the port-forward is no longer required and can be stopped.
Assuming the source was unzipped to ~/obaas, run this command as the obaas user:
cd ~/obaas
source ./activate.env
ansible-playbook ~/obaas/ansible/k8s_apply.yaml -t full
The Pods in the azn-server, config-server, and obaas-admin namespaces rely on the database that is created in the oracle-database-operator-system. During the initial provisioning, these Pods start well before the database is available resulting in initial failures. They resolve themselves once the database becomes available.
You can check on the status of the database by running this command:
kubectl get singleinstancedatabase baas -n oracle-database-operator-system -o "jsonpath={.status.status}"
If you are behind a Virtual Private Network (VPN) or proxy, see Minikube Proxies and VPNs for more details on additional tasks.
Next, go to the Getting Started page to learn more.