@cryptotaxi247 / infra-1 / commits / 8ac73fc1

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