clusterfuck

This commit is contained in:
Astro 2022-03-03 01:01:03 +01:00
parent 1e7317bcb6
commit e2bd1439e1
4 changed files with 20 additions and 15 deletions

View File

@ -18,18 +18,18 @@
resources = builtins.toFile "cib-resources.xml" '' resources = builtins.toFile "cib-resources.xml" ''
<resources> <resources>
${lib.concatMapStrings (container: '' ${lib.concatMapStrings (container: ''
<primitive id="${container}" class="systemd" type="${container}"> <primitive id="lxc-${container}" class="systemd" type="lxc@${container}">
<operations> <operations>
<op id=""${container}-start" name="start" interval="0" timeout="10s"/> <op id="stop-${container}" name="start" interval="0" timeout="10s"/>
<op id=""${container}-stop" name="start" interval="0" timeout="10s"/> <op id="start-${container}" name="start" interval="0" timeout="10s"/>
<op id="${container}-monitor" name="monitor" interval="10s" timeout="10s"/> <op id="monitor-${container}" name="monitor" interval="10s" timeout="10s"/>
</operations> </operations>
</primitive> </primitive>
'') containers} '') containers}
</resources> </resources>
''; '';
cib-set-resources = writeScriptBin "cib-set-resources" '' cib-set-resources = writeScriptBin "cib-set-resources" ''
!# ${runtimeShell} -e #! ${runtimeShell} -e
crm_attribute -t crm_config -n stonith-enabled -v false crm_attribute -t crm_config -n stonith-enabled -v false
cibadmin --replace --scope resources --xml-file ${resources} cibadmin --replace --scope resources --xml-file ${resources}

View File

@ -131,8 +131,7 @@ let
systemctl restart lxc@$c systemctl restart lxc@$c
) )
else else
echo Starting $c echo Ignoring not-running container $c
systemctl start lxc@$c
fi fi
done done
set -e set -e
@ -236,11 +235,4 @@ in
RestartSec = "1s"; RestartSec = "1s";
}; };
}; };
# Starts all the containers after boot
systemd.targets.lxc-containers = {
wantedBy = [ "multi-user.target" ];
wants = map (ctName: "lxc@${ctName}.service")
(builtins.attrNames containers);
};
} }

View File

@ -85,6 +85,14 @@ in
EmitLLDP = true; EmitLLDP = true;
}; };
}; };
"00-qemu-tap" = {
# physical ethernet ports
matchConfig.MACAddress = {
server1 = "00:02:23:de:ad:41";
server2 = "00:02:23:de:ad:42";
}.${hostName};
networkConfig.Bond = "bond0";
};
bond0 = { bond0 = {
DHCP = "no"; DHCP = "no";
matchConfig.Name = "bond0"; matchConfig.Name = "bond0";

View File

@ -1,5 +1,5 @@
# Options for running under qemu (vm-packages) # Options for running under qemu (vm-packages)
{ inputs, lib, options, ... }: { inputs, config, lib, options, ... }:
{ {
# Get internet from qemu user networking # Get internet from qemu user networking
systemd.network = lib.optionalAttrs (options.virtualisation ? qemu) { systemd.network = lib.optionalAttrs (options.virtualisation ? qemu) {
@ -23,6 +23,11 @@
# keep the store paths built inside the VM across reboots # keep the store paths built inside the VM across reboots
writableStoreUseTmpfs = false; writableStoreUseTmpfs = false;
qemu.options = [ "-enable-kvm" ]; qemu.options = [ "-enable-kvm" ];
qemu.networkingOptions = [
# Useful for cluster dev
"-device" "virtio-net-pci,id=bond,netdev=bond,mac=${config.systemd.network.networks."00-qemu-tap".matchConfig.MACAddress}"
"-netdev" "tap,id=bond,ifname=${config.networking.hostName},script=no,downscript=no"
];
}; };
# Let the nix registry point to the state of your local checkout # Let the nix registry point to the state of your local checkout