Add remaining network settings from cartman to wendy
Rob Vermaas committed
Jun 7, 2013 at 15:15 UTC
439bb99a3466b8e58f957b18340bd542e3206e7c
2 files changed
+77
-2
delft/machines.nix
+1
-1
@@ -89,7 +89,7 @@ lib: with lib;
89
{ # 48-core NixOS machine for random hackery.
90
hostName = "wendy";
91
ipAddress = "192.168.1.26";
92
- ethernetAddress = "f0:4d:a2:40:1b:be";
92
+ ethernetAddress = "f0:4d:a2:40:1b:c0";
93
systems = [ "x86_64-linux" ];
94
}
95
delft/wendy.nix
+76
-1
@@ -1,4 +1,10 @@
1
{ config, pkgs, ... }:
2
+with pkgs.lib;
3
+let
4
+ myIP = "130.161.158.181";
5
+ machines = import ./machines.nix pkgs.lib;
6
+
7
+in
8
{
9
require = [ ./build-machines-dell-r815.nix ./delft-webserver.nix ];
10
@@ -109,7 +115,76 @@
115
ACTION=="add", SUBSYSTEM=="net", ATTR{address}=="f0:4d:a2:40:1b:c0", NAME="internal"
116
'';
117
112
- networking.firewall.allowedTCPPorts = [ 80 3000 3001 4000 5432 ];
118
+
119
+ networking = {
120
+ hostName = "wendy";
121
+ domain = "buildfarm";
122
+
123
+ interfaces.external =
124
+ { ipAddress = myIP;
125
+ prefixLength = 23;
126
+ };
127
+
128
+ interfaces.internal =
129
+ { ipAddress = (findSingle (m: m.hostName == "wendy") {} {} machines).ipAddress;
130
+ prefixLength = 22;
131
+ };
132
+
133
+ useDHCP = false;
134
+
135
+ defaultGateway = "130.161.158.1";
136
+
137
+ nameservers = [ "127.0.0.1" ];
138
+
139
+ extraHosts = "192.168.1.26 wendy";
140
+
141
+ firewall.allowedTCPPorts = [ 80 443 843 10051 5999 ];
142
+ firewall.allowedUDPPorts = [ 53 67 ];
143
+ firewall.extraCommands =
144
+ ''
145
+ ip46tables -I nixos-fw-accept -p tcp --dport 843 --syn -j LOG --log-level info --log-prefix "POLICY REQUEST: "
146
+ '';
147
+
148
+ nat.enable = true;
149
+ nat.internalIPs = "192.168.1.0/22";
150
+ nat.externalInterface = "external";
151
+ nat.externalIP = myIP;
152
+
153
+
154
+ };
155
+
156
+ jobs.dnsmasq =
157
+ let
158
+
159
+ confFile = pkgs.writeText "dnsmasq.conf"
160
+ ''
161
+ keep-in-foreground
162
+ no-hosts
163
+ addn-hosts=${hostsFile}
164
+ expand-hosts
165
+ domain=buildfarm
166
+ interface=internal
167
+
168
+ server=130.161.158.4
169
+ server=130.161.33.17
170
+ server=130.161.180.1
171
+ server=8.8.8.8
172
+ server=8.8.4.4
173
+
174
+ dhcp-range=192.168.1.150,192.168.3.200
175
+
176
+ ${flip concatMapStrings machines (m: optionalString (m ? ethernetAddress) ''
177
+ dhcp-host=${m.ethernetAddress},${m.ipAddress},${m.hostName}
178
+ '')}
179
+ '';
180
+
181
+ hostsFile = pkgs.writeText "extra-hosts"
182
+ (flip concatMapStrings machines (m: "${m.ipAddress} ${m.hostName}\n"));
183
+
184
+ in
185
+ { startOn = "started network-interfaces";
186
+ exec = "${pkgs.dnsmasq}/bin/dnsmasq --conf-file=${confFile}";
187
+ };
188
189
# Needed for the Nixpkgs mirror script.
190
environment.pathsToLink = [ "/libexec" ];