VM Tool

This script sets up multiple temporary VMs using QEMU. They run in the background, are on the same network as one another, and can be accessed via SSH.

Usage

Ensure QEMU and mkisofs are installed. On Debian-like systems:

sudo apt install qemu-system genisoimage

Download a base image:

mkdir -p images
curl -C - -Lo images/Rocky-9-GenericCloud-Base.latest.x86_64.qcow2 https://dl.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-GenericCloud-Base.latest.x86_64.qcow2

Create the VMs (by default, two VMs are created):

./vmtool.sh create

Creating VMs will destroy any previous VMs first.

Once the VMs are running, access them via SSH:

ssh -F ssh.conf node0
ssh -F ssh.conf node1

The VMs are on the same subnet, starting with ip 192.168.30.10 for node0, 192.168.30.11 for node1, and so on. They can reach one another:

[root@node0 ~]# ping 192.168.30.11
PING 192.168.30.11 (192.168.30.11) 56(84) bytes of data.
64 bytes from 192.168.30.11: icmp_seq=1 ttl=64 time=0.465 ms
64 bytes from 192.168.30.11: icmp_seq=2 ttl=64 time=0.390 ms
64 bytes from 192.168.30.11: icmp_seq=3 ttl=64 time=0.684 ms

When done, you can stop and/or destroy the VMs:

./vmtool.sh destroy

Configuration

Check the environment variables at the top of the script to set memory, CPU count, max disk size, number of nodes, etc.

Description
No description provided
Readme 33 KiB
Languages
Shell 100%