How to create VM templates for Ubuntu/CentOS/Debian and any other Linux distributions in OpenNebula? In OpenNebula, if there is no defined VM template, you cannot create a virtual machine. The VM template pool allows OpenNebula administrators and users to register virtual machine definitions in the system and then instantiate them as virtual machine instances.
The VM template can be instantiated multiple times and can also be shared with other users in the OpenNebula cloud platform. Templates are stored in the system, and VMs can be easily browsed and instantiated from them. We will show an example of defining a VM template on OpenNebula, and the same process can be applied to any other template.
Before proceeding, OpenNebula requires an operating system image. For how to do this, please refer to the following guide:
Import CentOS Qcow2 images on OpenNebula
Create a VM template on OpenNebula
The virtual machine created on the OpenNebula system will include:
- Capacity in terms of memory and CPU
- A group of NICs connected to one or more virtual networks
- A set of disk images
- Optional attributes, such as VNC graphics, startup sequence, context information, etc.
Step 1: Start VM template creation
Log in to the OpenNebula Sunstone web console and navigate to “Template“>”virtual machine“
hit”+“Button and select “Create”
Step 2: Fill in the information required to create the template
- Template name
- Template description
- Choose a hypervisor
- Template logo
- Memory and CPU details
- Select the VM image added before
under”The internet“Partial input:
- Default network of the VM template
- Any other network options applicable to the template
under”Operating system and CPU“Set the options you want to use.
- Boot up
- Blue plate
- CPU model
I added two options below that disable IPv6 and change the naming of the network interface:
See the screenshot below.
Under “Input/Output”, you can set graphics and PCI options
allowable”Context“>”Configuration“Part. The script text to be executed when the machine starts is the same.
You can go to “schedule” with”Hybrids“Section. Click”create“Button.
The template should appear in the list of available OpenNebula VM templates.
Clicking on the name will display more information about the template:
Step 3: Test by creating a VM from a template
We can test our template by provisioning VM instances from it. This is through “Number of instances“>”virtual machine“>”+“ >”create“
Select the VM template from which you want to create the VM.
Name the virtual machine, create the number of instances, and customize resource allocation as needed.
And all other parameters you want to set.
After selecting “Create”, the virtual machine will be in the “Suspended” state.
Once it is ready for use, it will be in a “running” state.
You can get the VM details, such as IP address, by clicking on the instance name.
Test connectivity by pinging the IP address:
$ ping -c 1 172.20.20.100 PING 172.20.20.100 (172.20.20.100) 56(84) bytes of data. 64 bytes from 172.20.20.100: icmp_seq=1 ttl=64 time=0.611 ms --- 172.20.20.100 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.611/0.611/0.611/0.000 ms
Do the same for SSH
$ ssh [email protected] The authenticity of host '172.20.20.100 (172.20.20.100)' can't be established. ECDSA key fingerprint is SHA256:/k4pJX5pZiQHPMgnkPLAjtwqbBmNbuY6QP+5BiTEmHA. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '172.20.20.100' (ECDSA) to the list of known hosts. Enter passphrase for key '/home/josphat/.ssh/id_rsa': Activate the web console with: systemctl enable --now cockpit.socket [[email protected] ~]$
Confirm that the interface naming has been changed to be configured through kernel parameters:
$ ip ad 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 02:00:ac:14:14:64 brd ff:ff:ff:ff:ff:ff inet 172.20.20.100/24 brd 172.20.20.255 scope global noprefixroute eth0 valid_lft forever preferred_lft forever inet6 fe80::acff:fe14:1464/64 scope link valid_lft forever preferred_lft forever
We have confirmed that the VM was successfully created from the template. We can also use ssh to enter the instance.
- OpenNebula template guide
- Create and use bridged network in OpenNebula VM
Other guides about OpenNebula:
How to configure NFS file system as OpenNebula data storage