On-Premise Platform Deployment
OpenIaC provides a unified, zero-config workflow for deploying container, virtualization, and private cloud platforms on RHEL / Rocky Linux hosts. Even if you have never configured kernel modules or cluster networking before, you can follow the copy-paste steps below from top to bottom.
Step 1: Configure Target Server IP Addresses
Open the sample hosts.ini inventory file for the platform you want to deploy (ansible/inventories/<platform>-sample/hosts.ini) and update the IP addresses (ansible_host) and SSH credentials (ansible_user / ansible_password) to match your servers:
# Example: ansible/inventories/k8s-sample/hosts.ini
# 1. Physical or Virtual Server IP Addresses
[all_nodes]
cp-01 ansible_host=192.168.56.10 ansible_user=root
worker-01 ansible_host=192.168.56.20 ansible_user=root
worker-02 ansible_host=192.168.56.21 ansible_user=root
# 2. Cluster Role Assignment
[k8s_control_plane]
cp-01
[k8s_workers]
worker-01
worker-02
[k8s_cluster:children]
k8s_control_plane
k8s_workers
Step 2: Run One-Command Platform Deployment
From the root directory of openiac, run the single make command for your desired platform:
Option A: Standard Upstream Kubernetes (k8s)
Deploys an upstream CNCF Kubernetes cluster with kubeadm, containerd (SystemdCgroup = true), and Calico CNI:
make k8s
After completion, verify your cluster directly on cp-01:
kubectl get nodes -o wide
Option B: Lightweight Kubernetes (k3s)
Deploys a fast, single-binary SUSE Rancher K3s cluster (ideal for edge nodes, small footprints, or rapid testing):
make k3s
Option C: OpenShift / OKD (openshift — 4.12+ Agent-Based Standard)
Generates a self-bootstrapping Agent-based Installer ISO (agent.x86_64.iso) with static nmstate networking and built-in API/Ingress VIPs—eliminating the need for an external HAProxy load balancer or dedicated bootstrap VM:
- (Optional) By default, OpenIaC deploys free, open-source OKD. To deploy commercial Red Hat OpenShift (OCP), edit
ansible/inventories/openshift-sample/group_vars/all.yml:openshift_edition: "ocp" # "okd" (Free Default) | "ocp" (Red Hat Commercial) openshift_api_vip: "192.168.56.100" openshift_ingress_vip: "192.168.56.101" - Run the deployment command:
make openshift - Attach the generated
/opt/openiac-openshift/agent.x86_64.iso(located onbastion-01) to your target bare-metal BMC/iDRAC or VMs and boot them. OpenIaC will automatically monitor the bootstrap and installation process until completion!
Option D: Cloud-Native VM Virtualization (kubevirt)
Run KVM virtual machines alongside containers. If you run make kubevirt on brand-new empty servers, OpenIaC automatically installs Base OS + Standard Kubernetes (k8s) + KubeVirt in one shot:
# Deploy Turnkey K8s + KubeVirt (or add KubeVirt onto an existing K8s/K3s cluster)
make kubevirt
# Or deploy KubeVirt onto an existing OpenShift / OKD cluster
make openshift-kubevirt
Option E: OpenStack Private Cloud (openstack)
Deploys a containerized multi-node OpenStack cloud using Kolla-Ansible:
make openstack
What Happens Automatically Behind the Scenes?
- Base OS Hardening & Kernel Tuning: Disables swap, configures SELinux permissive mode, loads
overlayandbr_netfiltermodules, and applies CRI sysctl network parameters. - Built-in Invisible Helpers: Automatically generates bootable OpenShift 4.12+ Agent ISOs (
agent.x86_64.iso) withnmstatestatic networking and built-in VIPs, configures LVMcinder-volumesand Neutron dummy interfaces for OpenStack, and enables QEMU emulation fallback for KubeVirt when/dev/kvmis absent. - Automatic Kubeconfig & Credentials: Configures
/root/.kube/configon Kubernetes control plane nodes,/opt/openiac-openshift/auth/kubeconfigfor OpenShift, and/etc/kolla/admin-openrc.shfor OpenStack immediately after installation.