svn path=/configurations/trunk/tud/; revision=20322
svn path=/configurations/trunk/tud/; revision=20322
Eelco Dolstra committed
Mar 2, 2010 at 10:56 UTC
8ac73fc18433563946cd74ec992a74e906a2db63
2 files changed
+138
-30
build-db-dell-R410.nix
+137
-29
@@ -1,7 +1,16 @@
1
{ config, pkgs, ... }:
2
3
+let
4
+
5
+ ZabbixApacheUpdater = pkgs.fetchsvn {
6
+ url = https://www.zulukilo.com/svn/pub/zabbix-apache-stats/trunk/fetch.py ;
7
+ sha256 = "1q66x429wpqjqcmlsi3x37rkn95i55nj8ldzcrblnx6a0jnjgd2g";
8
+ rev = 94;
9
+ };
10
+
11
+in
12
+
13
{
4
-# require = [ ./build-machines-common.nix ];
14
require = [ ./common.nix ./couchdb.nix ] ;
15
16
boot.initrd.extraKernelModules = ["uhci_hcd" "ehci_hcd" "ata_piix" "mptsas" "usbhid" "ext3"];
@@ -20,15 +29,73 @@
29
30
environment.extraPackages = [ pkgs.hdparm ];
31
23
- services.couchdb = {
32
+ services.zabbixAgent.enable = true;
33
+ services.zabbixAgent.server = "buildfarm.st.ewi.tudelft.nl";
34
+ services.zabbixAgent.extraConfig = ''
35
+ UserParameter=mysql_threads,${pkgs.mysql}/bin/mysqladmin -uroot status|cut -f3 -d":"|cut -f1 -d"Q"
36
+ UserParameter=mysql_questions,${pkgs.mysql}/bin/mysqladmin -uroot status|cut -f4 -d":"|cut -f1 -d"S"
37
+ UserParameter=mysql_qps,${pkgs.mysql}/bin/mysqladmin -uroot status|cut -f9 -d":"
38
+ UserParameter=hydra.queue.total,${pkgs.postgresql}/bin/psql hydra -At -c 'select count(*) from builds where finished = 0'
39
+ UserParameter=hydra.queue.building,${pkgs.postgresql}/bin/psql hydra -At -c 'select count(*) from builds natural join BuildSchedulingInfo where finished = 0 and busy = 1'
40
+ '';
41
+
42
+ services.systemhealth = {
43
+ enable = true;
44
+ interfaces = [ "lo" "eth0" ];
45
+ drives = [
46
+ { name = "root"; path = "/"; }
47
+ { name = "data"; path = "/data"; }
48
+ ];
49
+ };
50
+
51
+ services.vsftpd = {
52
enable = true;
53
+ anonymousUser = true;
54
};
55
56
+ services.sitecopy = {
57
+ enable = true;
58
+ backups =
59
+ let genericBackup = { server = "webdata.tudelft.nl";
60
+ protocol = "webdav";
61
+ https = true ;
62
+ };
63
+ in [
64
+ ( genericBackup // { name = "ftp"; local = "/home/ftp"; remote = "/staff-groups/ewi/st/strategoxt/backup/ftp/ftp.strategoxt.org/"; } )
65
+ ( genericBackup // { name = "mysql"; local = config.services.mysqlBackup.location; remote = "/staff-groups/ewi/st/strategoxt/backup/mysql"; } )
66
+ ( genericBackup // { name = "tomcat"; local = config.services.tomcat.baseDir; remote = "/staff-groups/ewi/st/strategoxt/backup/tomcat"; } )
67
+ ( genericBackup // { name = "postgresql";
68
+ local = config.services.postgresqlBackup.location;
69
+ remote = "/staff-groups/ewi/st/strategoxt/backup/postgresql-webdsl.org";
70
+ } )
71
+ ];
72
+ };
73
+
74
services.mysql = {
75
enable = true;
76
+ package = pkgs.mysql51;
77
dataDir = "/data/mysql";
78
};
79
80
+ services.postgresqlBackup = {
81
+ enable = true;
82
+ databases = [ "hydra" ];
83
+ };
84
+
85
+ services.postgresql = {
86
+ enable = true;
87
+ enableTCPIP = true;
88
+ dataDir = "/data/postgresql";
89
+ authentication = ''
90
+ local all mediawiki ident mediawiki-users
91
+ local all all ident sameuser
92
+ host all all 127.0.0.1/32 md5
93
+ host all all ::1/128 md5
94
+ host all all 130.161.159.80/32 md5
95
+ host all all 130.161.158.181/32 md5
96
+ '';
97
+ };
98
+
99
services.httpd = rec {
100
enable = true;
101
adminAddr = "rob.vermaas@gmail.com";
@@ -37,46 +104,94 @@
104
logDir = "/data/www/logs";
105
logFormat = "combined";
106
107
+ extraConfig = ''
108
+ <Location /server-status>
109
+ SetHandler server-status
110
+ Allow from 127.0.0.1 # If using a remote host for monitoring replace 127.0.0.1 with its IP.
111
+ Order deny,allow
112
+ Deny from all
113
+ </Location>
114
+ ExtendedStatus On
115
+ '';
116
+
117
extraSubservices = [
118
{ serviceType = "tomcat-connector";
119
inherit logDir ;
120
stateDir = "/var/run/httpd";
121
}
122
];
46
-
47
- extraConfig = ''
48
- RewriteCond %{HTTP_HOST} ^www.researchr.org$ [NC]
49
- RewriteRule ^(.*)$ http://researchr.org/$1 [R=301,L]
50
- '';
123
};
124
125
services.tomcat = {
126
enable = true;
127
baseDir = "/data/tomcat";
56
- javaOpts = "-Dshare.dir=/nix/var/nix/profiles/default/share -Xms350m -Xmx2048m -XX:MaxPermSize=256M";
128
+ javaOpts = "-Dshare.dir=/nix/var/nix/profiles/default/share -Xms350m -Xmx2048m -XX:MaxPermSize=512M -XX:PermSize=512M -XX:-UseGCOverheadLimit";
129
+ logPerVirtualHost = true;
130
virtualHosts = [
58
- { name = "researchr.org"; aliases = ["www.researchr.org"] ;}
131
+ { name = "researchr.org";}
132
{ name = "webdsl.org"; }
133
{ name = "tweetview.net"; }
134
{ name = "pil-lang.org"; }
135
+ { name = "department.st.ewi.tudelft.nl"; }
136
+ { name = "phaedrus.webdsl.org"; }
137
+ { name = "book.webdsl.org"; }
138
+ { name = "yellowgrass.org"; }
139
+ { name = "www.yellowgrass.org"; }
140
];
141
};
142
143
services.mysqlBackup = {
144
enable = true;
145
user = "root";
68
- databases = [ "researchr" "twitterarchive" "webdslorg" "pilweb" ];
146
+ databases = [ "researchr" "twitterarchive" "webdslorg" "pilweb" "mysql" "yellowgrass" "department" ];
147
};
148
149
users = {
72
- extraUsers = [
150
+ extraUsers = let shell = "/var/run/current-system/sw/bin/bash"; in [
151
{ name = "rbvermaa";
152
uid = 1000;
153
group = "users";
154
extraGroups = [ "wheel" ];
155
description = "Rob Vermaas";
156
home = "/home/rbvermaa";
79
- shell = pkgs.bash + "/bin/bash";
157
+ inherit shell;
158
+ createHome = true;
159
+ }
160
+ { name = "zef";
161
+ uid = 1001;
162
+ group = "users";
163
+ extraGroups = [ "wheel" ];
164
+ description = "Zef Hemel";
165
+ home = "/home/zef";
166
+ inherit shell;
167
+ createHome = true;
168
+ }
169
+ { name = "eelcovisser";
170
+ uid = 1002;
171
+ group = "users";
172
+ extraGroups = [ "wheel" ];
173
+ description = "Eelco Visser";
174
+ home = "/home/eelcovisser";
175
+ inherit shell;
176
+ createHome = true;
177
+ }
178
+ { name = "sander";
179
+ uid = 1003;
180
+ group = "users";
181
+ extraGroups = [ "wheel" ];
182
+ description = "Sander van der Burg";
183
+ home = "/home/sander";
184
+ inherit shell;
185
+ createHome = true;
186
+ }
187
+ { name = "danny";
188
+ uid = 1004;
189
+ group = "users";
190
+ extraGroups = [ "wheel" ];
191
+ description = "Danny Groenewegen";
192
+ home = "/home/danny";
193
+ inherit shell;
194
+ createHome = true;
195
}
196
];
197
};
@@ -95,8 +210,11 @@
210
build-max-silent-time = 3600
211
'';
212
213
+ services.sshd.permitRootLogin = "no";
214
+
215
services.cron.systemCronJobs =
216
[ "15 03 * * * root ${pkgs.nixUnstable}/bin/nix-collect-garbage --max-freed $((32 * 1024**3)) > /var/log/gc.log 2>&1"
217
+ "* * * * * root ${pkgs.python}/bin/python ${ZabbixApacheUpdater} -z buildfarm.st.ewi.tudelft.nl -c webdsl"
218
];
219
220
networking = {
@@ -109,24 +227,14 @@
227
nameservers = [ "130.161.158.4" "130.161.158.133" ];
228
229
useDHCP = false;
112
- };
230
114
- services.vsftpd = {
115
- enable = true;
116
- anonymousUser = true;
231
+ defaultMailServer = {
232
+ directDelivery = true;
233
+ hostName = "smtp.st.ewi.tudelft.nl";
234
+ domain = "st.ewi.tudelft.nl";
235
+ };
236
+
237
};
238
119
- services.sitecopy = {
120
- enable = true;
121
- backups =
122
- let genericBackup = { server = "webdata.tudelft.nl";
123
- protocol = "webdav";
124
- https = true ;
125
- };
126
- in [
127
- ( genericBackup // { name = "ftp"; local = "/home/ftp"; remote = "/staff-groups/ewi/st/strategoxt/backup/ftp/ftp.strategoxt.org/"; } )
128
- ( genericBackup // { name = "mysql"; local = config.services.mysqlBackup.location; remote = "/staff-groups/ewi/st/strategoxt/backup/mysql"; } )
129
- ( genericBackup // { name = "tomcat"; local = config.services.tomcat.baseDir; remote = "/staff-groups/ewi/st/strategoxt/backup/tomcat"; } )
130
- ];
131
- };
239
+ environment.systemPackages = [ pkgs.strategoPackages018.strategoxt ];
240
}
common.nix
+1
-1
@@ -3,7 +3,7 @@
3
{
4
boot.kernelModules = [ "coretemp" ];
5
6
- environment.systemPackages = [ pkgs.emacs pkgs.subversion ];
6
+ environment.systemPackages = [ pkgs.emacs pkgs.subversion pkgs.sysstat ];
7
8
services.sshd.enable = true;
9