1.4 KiB
1.4 KiB
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.