34 lines
826 B
Nix
34 lines
826 B
Nix
{pkgs, ...}: {
|
|
virtualisation.libvirtd.enable = true;
|
|
|
|
networking.firewall.interfaces."wg0" = {
|
|
allowedTCPPorts = [
|
|
5900 # vnc by QEMU
|
|
2233
|
|
60022
|
|
8545
|
|
];
|
|
};
|
|
|
|
systemd.services.vm-ubuntu = let
|
|
start-vm = pkgs.writeShellApplication {
|
|
name = "start-vm";
|
|
runtimeInputs = with pkgs; [qemu];
|
|
text = ''
|
|
qemu-system-x86_64 \
|
|
-enable-kvm \
|
|
-cpu host,kvm=on,hv-vendor_id="GenuineIntel" \
|
|
-smp 4 \
|
|
-m 8192 \
|
|
-nic user,model=virtio-net-pci,hostfwd=tcp::60022-:22,hostfwd=tcp::8545-:8545 \
|
|
-drive file=/var/lib/vm-ubuntu/ubuntu.qcow2
|
|
'';
|
|
};
|
|
in {
|
|
wantedBy = ["multi-user.target"];
|
|
after = ["network.target"];
|
|
serviceConfig = {
|
|
ExecStart = "${start-vm}/bin/start-vm";
|
|
};
|
|
};
|
|
}
|