This guide describes how to deploy a hybrid Multi Node OpenShift (MNO) cluster in ScaleLab: some nodes are bare metal and some are virtual machines (VMs).
Set up all.yml the same way as for a standard ScaleLab allocation. Then add these variables:
cluster_type: mno # Use "mno" (not "vmno"). MNO allows bare metal nodes; VMNO does not.
hv_inventory: true
hv_ssh_pass: <hv-password>
hybrid_worker_count: 123 # Total number of VM workers you want.
Why use two phases?
First you install a small cluster and confirm it works. Then you add the VM workers. Doing it in two steps makes it easier to find and fix problems: issues from the first install are separate from issues when creating many VMs.
- In
all.yml, sethybrid_worker_count: 0. - Run the
create-inventory.ymlplaybook. - Run the
mno-deploy.ymlplaybook. - Run the
hv-setup.ymlplaybook.
- In
all.yml, sethybrid_worker_count: 123. - Run the
create-inventory.ymlplaybook. - Open the inventory file at
ansible/inventory/cloudXX.local. Check:[worker]: It should list the bare metal workers and the correct number of VMs to create.[hv_vm]: It should list the expected number of VMs with the right CPU, memory, and disk. Confirm how many VMs are assigned to each hypervisor (HV). This ratio is set by machine type inhw_vm_countsinlab.yml.
- Run the
hv-vm-create.ymlplaybook. For more about this playbook, see Virtual Multi Node OpenShift. - Run the
ocp-scale-out.ymlplaybook. For more about this playbook, see Scale Out a Multi Node OpenShift Deployment.
(.ansible) [root@<bastion> jetlag]# ansible-playbook ansible/create-inventory.yml(.ansible) [root@<bastion> jetlag]# ansible-playbook -i ansible/inventory/cloud99.local ansible/hv-setup.yml(.ansible) [root@<bastion> jetlag]# ansible-playbook -i ansible/inventory/cloud99.local ansible/hv-vm-create.yml(.ansible) [root@<bastion> jetlag]# ansible-playbook -i ansible/inventory/cloud99.local ansible/mno-deploy.yml(.ansible) [root@<bastion> jetlag]# ansible-playbook -i ansible/inventory/cloud99.local ansible/ocp-scale-out.yml