Install Virtainer Lite
Updated
Virtainer Lite ships as a single self-contained appliance image. You install it
by booting the target host from a Fedora LiveCD and writing that image
directly to the host’s disk. The install itself is one podman command that you
run from the live environment.
System requirements
Section titled “System requirements”Check these before you go any further. The install erases a disk, so it is not something to discover halfway through.
| Requirement | Detail |
|---|---|
| Architecture | x86_64 (amd64). There is no build for other architectures |
| Virtualization | Hardware virtualization enabled in firmware (Intel VT-x or AMD-V). Every machine on the host runs on KVM, so a host without it cannot run anything |
| A disk to erase | The install takes a whole disk. It does not resize or dual-boot |
| Network | A wired interface, and internet access from the live environment |
| IOMMU | Only for PCI passthrough. Enable it in firmware now if you plan to pass hardware through later, so you do not reinstall to get it |
The appliance brings its own operating system, so nothing needs to be installed on the host beforehand.
Before you begin
Section titled “Before you begin”- A host you can boot from a Fedora LiveCD, ideally the latest stable
release. Two things make it the supported medium rather than a preference: it
ships
podman, which the installer runs from, and it names network interfaces the same way the installed host will, so the interface name you read during the install is the one the host actually uses afterwards. - Internet access from the live environment. The installer pulls the Virtainer
Lite image from
quay.ioduring the install, so the host must be online. - The target disk for the install. The examples below use
/dev/sda; replace it with the correct device for your host. - The network setup the host should use: DHCP, or a static address with its gateway, netmask, and interface name.
Install
Section titled “Install”-
Boot the host from a Fedora LiveCD.
Working from the live environment also lets you read the host’s real disk and network interface names before you install. Both vary from machine to machine, and you need them in the steps below. The interface name you read here is the one the installed host will use, which is why a different live medium can leave you with a static address configured on a name that does not exist after the reboot.
Optional: on a host with less than 12 GB of RAM, give the live environment a larger writable overlay so the installer has room to work. Append this to the kernel command line in GRUB before booting:
GRUB kernel command line rd.live.overlay.size=12G -
Put SELinux into permissive mode for the install session:
Terminal window sudo setenforce 0 -
Write Virtainer Lite to the disk.
Run the installer from the live environment. Pick the tab that matches how the host should get its network address, and replace
/dev/sdawith your target disk.Terminal window sudo podman run --rm \--privileged \--pid=host \--ipc=host \--security-opt label=disable \-v /dev:/dev \quay.io/virtainer/lite:latest \bootc install to-disk \--source-imgref registry:quay.io/virtainer/lite:latest \--wipe \--block-setup=direct \--disable-selinux \--filesystem=xfs \--bootloader=grub \--karg=ignition.firstboot=1 \--karg=ignition.platform.id=metal \--karg=rd.neednet=1 \--karg=ip=dhcp \/dev/sdaReplace the address, gateway, netmask, and interface name with values for your host. The
ip=value uses the formatip=<address>::<gateway>:<netmask>::<interface>:none.The interface name (
ens18in the example) is host-specific: Linux derives it from the hardware and firmware, so it differs between machines. From the live environment, list the host’s interfaces to find the right name before you run the installer:Terminal window ip -br linkThen write Virtainer Lite to the disk:
Terminal window sudo podman run --rm \--privileged \--pid=host \--ipc=host \--security-opt label=disable \-v /dev:/dev \quay.io/virtainer/lite:latest \bootc install to-disk \--source-imgref registry:quay.io/virtainer/lite:latest \--wipe \--block-setup=direct \--disable-selinux \--filesystem=xfs \--bootloader=grub \--karg=ignition.firstboot=1 \--karg=ignition.platform.id=metal \--karg=rd.neednet=1 \--karg=ip=192.168.50.100::192.168.50.1:255.255.255.0::ens18:none \--karg=nameserver=1.1.1.1 \/dev/sda -
Reboot the host and remove the live media. The host boots from disk into Virtainer Lite.
Access Virtainer Lite
Section titled “Access Virtainer Lite”Once the host has rebooted, open Virtainer Lite in a browser at
http://<host-ip>. The web UI is served on the default HTTP port, so the
address needs no port number. Use the address the host has on your network: its
DHCP lease, or the static address you set during install (for the example
above, that is http://192.168.50.100).
- First visit: complete the one-time initialization to set up Virtainer Lite.
- After initialization: open the same URL for day-to-day operation, such as creating and managing VMs and AppVMs.
If you cannot reach the host
Section titled “If you cannot reach the host”The host answers on the address it holds on your network. When the page does not load, work through these in order.
-
Find the address it actually got.
Log in at the host’s own console, on the monitor and keyboard attached to the machine, and run:
Terminal window ip -brief addressThat prints each interface with the address it holds. If you installed with DHCP, look for the lease your server handed out. Your DHCP server’s lease table works too.
-
Check the interface name was right.
A static install writes the address to one named interface. If you guessed the name during the install, the address went to an interface that may not be the one plugged in.
ip -brief linkshows which interfaces exist and which areUP. -
Confirm the host booted from disk.
If the machine booted the live media again, remove it and reboot.
-
Reinstall if the address is wrong.
The install is one command and the disk is already dedicated to it, so correcting an interface name or address is faster than repairing it in place.
The first visit walks you through a setup wizard and ends with a host reboot. First-run setup covers what it asks for and what to watch out for at the storage step.