vmtool/README.md

54 lines
1.4 KiB
Markdown

# 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:
```sh
sudo apt install qemu-system genisoimage
```
Download a base image:
```sh
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):
```sh
./vmtool.sh create
```
*Creating VMs will destroy any previous VMs first.*
Once the VMs are running, access them via SSH:
```sh
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:
```console
[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:
```sh
./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.