{ pkgs, ... }: let vagrantScript = pkgs.writeScriptBin "vagrant-vnode-05" '' #!${pkgs.bash}/bin/bash set -euo pipefail export PATH="${ pkgs.lib.makeBinPath ( with pkgs; [ vagrant curl openssh virtualbox ] ) }:$PATH" export VNODE_NAME=vnode-05 cd /home/user/kubernetes-cluster/vnodes exec ${pkgs.vagrant}/bin/vagrant up ''; in { environment.systemPackages = with pkgs; [ vagrant curl openssh ]; users.users.user.extraGroups = [ "vboxusers" ]; systemd.services.vagrant-vnode-05 = { description = "Vagrant vnode-05 service"; after = [ "network-online.target" ]; wants = [ "network-online.target" ]; serviceConfig = { Type = "oneshot"; RemainAfterExit = true; ExecStart = "${vagrantScript}/bin/vagrant-vnode-05"; User = "user"; WorkingDirectory = "/home/user/kubernetes-cluster/vnodes"; Environment = "PATH=${ pkgs.lib.makeBinPath ( with pkgs; [ vagrant curl openssh virtualbox ] ) }:$PATH"; }; wantedBy = [ "multi-user.target" ]; }; }