diff options
author | aszlig <aszlig@redmoonstudios.org> | 2015-03-18 12:36:04 +0100 |
---|---|---|
committer | aszlig <aszlig@redmoonstudios.org> | 2015-03-18 12:36:04 +0100 |
commit | b73d9004052a90647647475ee46884b445e1f534 (patch) | |
tree | 3536ae7701d2ea5e527bb6e4c19d68b6736b9212 /labernix | |
parent | b0911354527c2363332cd02fc7c2a3711ca7cbe2 (diff) |
machines: Integrate heinrich+labtop from labernix.
So far I'm not quite sure whether mailserver really belongs to labnet, so I'm leaving it at the labernix subtree. Maybe it even makes sense to just make it a profile until we have it on a real machine. We no longer need common.nix for these machines, because it is already done via callMachine. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Diffstat (limited to 'labernix')
-rw-r--r-- | labernix/machines/heinrich.nix | 143 | ||||
-rw-r--r-- | labernix/machines/labtop.nix | 72 |
2 files changed, 0 insertions, 215 deletions
diff --git a/labernix/machines/heinrich.nix b/labernix/machines/heinrich.nix deleted file mode 100644 index 8ce69950..00000000 --- a/labernix/machines/heinrich.nix +++ /dev/null @@ -1,143 +0,0 @@ -{ config, lib, ... }: - -with lib; - -let - routes = { - moritz = { - id = 14; - address = "192.168.0.12"; - prefixLength = 24; - gateway = "192.168.0.1"; - destination = "144.76.143.122"; - }; - - hotelturm = { - id = 8; - address = "10.11.77.5"; - prefixLength = 24; - gateway = "10.11.77.16"; - destination = "10.11.7.0/24"; - }; - }; - - internalIf = config.heinrich.internalInterface; - externalIf = config.heinrich.externalInterface; - - mkRouteConfig = name: cfg: { - key = "routes-${name}"; - - networking.vlans.${name} = { - inherit (cfg) id; - interface = externalIf; - }; - - networking.interfaces.${name}.ip4 = singleton { - inherit (cfg) address prefixLength; - }; - - systemd.network.networks."40-${name}".routes = singleton { - routeConfig.Gateway = cfg.gateway; - routeConfig.Destination = cfg.destination; - }; - }; - -in { - imports = singleton ../common.nix ++ mapAttrsToList mkRouteConfig routes; - - options.heinrich = { - internalInterface = mkOption { - type = types.str; - default = "enp7s0"; - description = '' - The internal network interface where Heinrich is serving DHCP and DNS - requests. - ''; - }; - - externalInterface = mkOption { - type = types.str; - default = "enp5s0"; - description = '' - The external network interface where Heinrich is connected to the - internet. - ''; - }; - }; - - config = { - networking.useDHCP = false; - networking.interfaces.${externalIf}.ip4 = mkForce []; - networking.interfaces.${internalIf}.ip4 = lib.singleton { - address = "172.16.0.1"; - prefixLength = 24; - }; - - services.dnsmasq.enable = true; - services.dnsmasq.resolveLocalQueries = false; - services.dnsmasq.extraConfig = '' - dhcp-range=172.16.0.100,172.16.0.254,12h - - dhcp-option=3,172.16.0.1 # Gateway - dhcp-option=6,172.16.0.1 # DNS-server - - local=/openlab.lan/ - domain=openlab.lan - - dhcp-leasefile=/var/db/dnsmasq/dhcp.leases - ''; - - systemd.services.dnsmasq-pre = { - description = "Pre-Init DNSMasq"; - before = [ "dnsmasq.service" ]; - wantedBy = [ "multi-user.target" ]; - script = '' - mkdir -p /var/db/dnsmasq - chown dnsmasq:nogroup /var/db/dnsmasq - ''; - serviceConfig.Type = "oneshot"; - serviceConfig.RemainAfterExit = true; - }; - - users.motd = '' - 0. Never touch a running system. - 1. Dokumentiere alle trotz 0 erfolgten Änderungen im Github-Repo: - https://github.com/openlab-aux/labnetz-doku - 2. Mit großer Macht geht große Verantwortung einher. - 3. So weit! - 4. ... - 5. Reisst dir Hannes den Arsch auf, wenn Du die Punkte 0-2 ignorierst. - ''; - - # TODO: This is a dummy, replace it once we know about the real root fs. - fileSystems."/".label = "root"; - boot.loader.grub.device = "nodev"; - - networking.useNetworkd = true; - networking.firewall.enable = false; - networking.nat.enable = true; - networking.nat.externalIP = routes.hotelturm.address; - networking.nat.externalInterface = "hotelturm"; - networking.nat.internalIPs = [ "172.16.0.1/24" ]; - networking.nat.internalInterfaces = [ internalIf ]; - - /* TODO! - services.openvpn.enable = true; - services.openvpn.servers.heinrich.config = '' - dev tun0 - remote 144.76.143.122 - ifconfig 10.9.8.2 10.9.8.1 - secret /etc/openvpn/priv.key - - comp-lzo - - keepalive 10 60 - ping-timer-rem - persist-tun - persist-key - - route 0.0.0.0 0.0.0.0 - ''; - */ - }; -} diff --git a/labernix/machines/labtop.nix b/labernix/machines/labtop.nix deleted file mode 100644 index bf376ba5..00000000 --- a/labernix/machines/labtop.nix +++ /dev/null @@ -1,72 +0,0 @@ -{ pkgs, ... }: - -let - greybird = pkgs.stdenv.mkDerivation { - name = "greybird-xfce-theme"; - - src = pkgs.fetchFromGitHub { - repo = "Greybird"; - owner = "shimmerproject"; - rev = "61ec18d22780aa87998381599c941e0cf4f7bfb5"; - sha256 = "03h8hba4lfp337a4drylcplrbggry9gz8dq1f3gjy25fhqkgvq05"; - }; - - phases = [ "unpackPhase" "installPhase" ]; - - installPhase = '' - mkdir -p "$out/share/themes/Greybird" \ - "$out/share/themes/Greybird-compact/xfwm4" - cp -vrt "$out/share/themes/Greybird" \ - gtk-* metacity-1 unity xfce-notify-4.0 xfwm4 - cp -vrt "$out/share/themes/Greybird-compact/xfwm4" \ - xfwm4_compact/* - ''; - }; - -in { - imports = [ ../common.nix ]; - - i18n = { - consoleFont = "lat9w-16"; - consoleKeyMap = "us"; - defaultLocale = "de_DE.UTF-8"; - }; - - # TODO: This is a dummy, replace it once we know about the real root fs. - fileSystems."/".label = "root"; - boot.loader.grub.device = "nodev"; - - environment.systemPackages = [ - greybird - #repetierhost <- TODO - pkgs.firefox - pkgs.gimp - pkgs.freecad - pkgs.openscad - #pkgs.pronterface <- TODO - pkgs.blender - pkgs.slic3r - pkgs.libreoffice - pkgs.inkscape - pkgs.filezilla - pkgs.gmpc - pkgs.vlc - ]; - - # TODO: Needed for slic3r right now. - nixpkgs.config.allowBroken = true; - - services.xserver.enable = true; - services.xserver.layout = "us"; - services.xserver.xkbOptions = "eurosign:e"; - - services.xserver.displayManager.auto.enable = true; - services.xserver.displayManager.auto.user = "openlab"; - services.xserver.desktopManager.xfce.enable = true; - - users.mutableUsers = false; - users.extraUsers.openlab = { - uid = 1000; - isNormalUser = true; - }; -} |