start working on Hash2Pub testbed as a nixos container
This commit is contained in:
parent
192a1f6e38
commit
b01b5088fd
46
nixos/Hash2PubTestbed.nix
Normal file
46
nixos/Hash2PubTestbed.nix
Normal file
|
@ -0,0 +1,46 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
projectDir = "/home/spiollinux/Seafile/Studium/Semester11/INF-PM-FP-ANW";
|
||||
projectPath = builtins.toPath projectDir;
|
||||
projectMount = "/mnt/project";
|
||||
shell = import (projectDir + "/Hash2Pub/shell.nix");
|
||||
in
|
||||
|
||||
{
|
||||
privateNetwork = true;
|
||||
ephemeral = true;
|
||||
bindMounts = {
|
||||
"${projectMount}" = { hostPath = projectDir; isReadOnly = false; };
|
||||
};
|
||||
|
||||
config = {
|
||||
networking = {
|
||||
firewall.enable = false;
|
||||
interfaces.lo.ipv6.addresses = [
|
||||
{address = "2604:a880:800:10::34e1:d001"; prefixLength = 0;}
|
||||
{address = "2001:41d0:2:c0af::15"; prefixLength = 0;}
|
||||
{address = "2a01:e0a:23a:5600::2"; prefixLength = 64;}
|
||||
];
|
||||
extraHosts = ''
|
||||
2604:a880:800:10::34e1:d001 animalliberation.social
|
||||
2001:41d0:2:c0af::15 hostux.social
|
||||
2a01:e0a:23a:5600::2 social.imirhil.fr
|
||||
'';
|
||||
};
|
||||
environment.systemPackages = [
|
||||
pkgs.netcat
|
||||
pkgs.iproute
|
||||
pkgs.tmux
|
||||
pkgs.ping
|
||||
(pkgs.writeShellScriptBin "doSimulation" ''
|
||||
# make cabal-install work offline
|
||||
mkdir $HOME/.cabal
|
||||
echo "" > $HOME/.cabal/config
|
||||
|
||||
# run simulation script within the shell
|
||||
${pkgs.nix}/bin/nix-shell ${shell.drvPath} --command "cd ${projectMount} && bash simtest.sh"
|
||||
'')
|
||||
];
|
||||
};
|
||||
}
|
|
@ -196,6 +196,14 @@ in
|
|||
# package debugging
|
||||
# programs.sysdig.enable = true;
|
||||
|
||||
# declarative containers
|
||||
containers = {
|
||||
hash2PubSim = import ./Hash2PubTestbed.nix {inherit pkgs config;};
|
||||
};
|
||||
|
||||
# stop NetworkManager from managing virtual interfaces
|
||||
networking.networkmanager.unmanaged = [ "interface-name:ve-*" ];
|
||||
|
||||
# This value determines the NixOS release with which your system is to be
|
||||
# compatible, in order to avoid breaking some software such as database
|
||||
# servers. You should change this only after NixOS release notes say you
|
||||
|
|
Loading…
Reference in a new issue