5d494a0f0ce76868f55f17dd8f77d916b0578c3b
[myplc.git] / plc_config.xml
1 <?xml version="1.0"?>
2 <!DOCTYPE configuration PUBLIC "-//PlanetLab Central//DTD PLC configuration//EN" "configuration.dtd">
3
4 <configuration>
5   <variables>
6     <category id="plc">
7       <name>System</name>
8       <description>Basic system variables. Be sure that the values of
9       these variables are the same across all machines in your
10       installation.</description>
11
12       <variablelist>
13         <variable id="name" type="string">
14           <name>Name</name>
15           <value>PlanetLab Test</value>
16           <description>The name of this PLC installation. It is used in
17           the name of the default system site (e.g., PlanetLab Central)
18           and in the names of various administrative entities (e.g.,
19           PlanetLab Support).</description>
20         </variable>
21
22         <variable id="slice_prefix" type="string">
23           <name>Slice Prefix</name>
24           <value>pl</value>
25           <description>The abbreviated name of this PLC
26           installation. It is used as the prefix for system slices
27           (e.g., pl_conf). Warning: Currently, this variable should
28           not be changed.</description>
29         </variable>
30
31         <variable id="root_user" type="password">
32           <name>Root Account</name>
33           <value>root@test.planet-lab.org</value>
34           <description>The name of the initial administrative
35           account. We recommend that this account be used only to create
36           additional accounts associated with real
37           administrators, then disabled.</description>
38         </variable>
39
40         <variable id="root_password" type="password">
41           <name>Root Password</name>
42           <value>root</value>
43           <description>The password of the initial administrative
44           account. Also the password of the root account on the Boot
45           CD.</description>
46         </variable>
47
48         <!-- The following are not actually meant to be configurable
49              as variables. The web interface should allow the file to
50              be downloaded, or its contents replaced by a file upload,
51              but the actual <value> shouldn't need to be changed.  -->
52
53         <variable id="root_ssh_key_pub" type="file">
54           <name>Root SSH Public Key</name>
55           <value>/etc/planetlab/root_ssh_key.pub</value>
56           <description>The SSH public key used to access the root
57           account on your nodes.</description>
58         </variable>
59
60         <variable id="root_ssh_key" type="file">
61           <name>Root SSH Private Key</name>
62           <value>/etc/planetlab/root_ssh_key.rsa</value>
63           <description>The SSH private key used to access the root
64           account on your nodes.</description>
65         </variable>
66
67         <variable id="debug_ssh_key_pub" type="file">
68           <name>Debug SSH Public Key</name>
69           <value>/etc/planetlab/debug_ssh_key.pub</value>
70           <description>The SSH public key used to access the root
71           account on your nodes when they are in Debug mode.</description>
72         </variable>
73
74         <variable id="debug_ssh_key" type="file">
75           <name>Debug SSH Private Key</name>
76           <value>/etc/planetlab/debug_ssh_key.rsa</value>
77           <description>The SSH private key used to access the root
78           account on your nodes when they are in Debug mode.</description>
79         </variable>
80
81         <variable id="root_gpg_key_pub" type="file">
82           <name>Root GPG Public Keyring</name>
83           <value>/etc/planetlab/pubring.gpg</value>
84           <description>The GPG public keyring used to sign the Boot
85           Manager and all node packages.</description>
86         </variable>
87
88         <variable id="root_gpg_key" type="file">
89           <name>Root GPG Private Keyring</name>
90           <value>/etc/planetlab/secring.gpg</value>
91           <description>The SSH private key used to access the root
92           account on your nodes.</description>
93         </variable>
94       </variablelist>
95     </category>
96
97     <category id="plc_net">
98       <name>Network</name>
99       <description>Network environment.</description>
100
101       <variablelist>
102         <variable id="dns1" type="ip">
103           <name>Primary DNS Server</name>
104           <value>128.112.136.10</value>
105           <description>Primary DNS server address.</description>
106         </variable>
107
108         <variable id="dns2" type="ip">
109           <name>Secondary DNS Server</name>
110           <value>128.112.136.12</value>
111           <description>Secondary DNS server address.</description>
112         </variable>
113       </variablelist>
114     </category>
115
116     <category id="plc_mail">
117       <name>Mail</name>
118       <description>Many maintenance scripts, as well as the API and
119       web site themselves, send e-mail notifications and
120       warnings.</description>
121
122       <variablelist>
123         <variable id="enabled" type="boolean">
124           <name>Enable Mail</name>
125           <value>false</value>
126           <description>Set to false to suppress all e-mail notifications
127           and warnings.</description>
128         </variable>
129
130         <variable id="support_address">
131           <name>Support Address</name>
132           <value>root@localhost</value>
133           <description>This address is used for support
134           requests. Support requests may include traffic complaints,
135           security incident reporting, web site malfunctions, and
136           general requests for information. We recommend that the
137           address be aliased to a ticketing system such as Request
138           Tracker.</description>
139         </variable>
140
141         <variable id="boot_address">
142           <name>Boot Messages Address</name>
143           <value>root@localhost</value>
144           <description>The API will notify this address when a problem
145           occurs during node installation or boot. If a domain is not
146           specified, the default system domain will be used
147           name.</description>
148         </variable>
149       </variablelist>
150     </category>
151
152     <category id="plc_db">
153       <name>Database Server</name>
154       <description>Database server definitions.</description>
155
156       <variablelist>
157         <variable id="enabled" type="boolean">
158           <name>Enabled</name>
159           <value>true</value>
160           <description>Enable the database server on this
161           machine.</description>
162         </variable>
163
164         <variable id="type" type="string">
165           <name>Type</name>
166           <value>postgresql</value>
167           <description>The type of database server. Currently, only
168           postgresql is supported.</description>
169         </variable>
170
171         <variable id="host" type="hostname">
172           <name>Hostname</name>
173           <value>localhost</value>
174           <description>The fully qualified hostname or IP address of
175           the database server. This hostname must be resolvable and
176           reachable by the rest of your installation.</description>
177         </variable>
178
179         <variable id="name" type="string">
180           <name>Database Name</name>
181           <value>planetlab3</value>
182           <description>The name of the database to access.</description>
183         </variable>
184
185         <variable id="user" type="string">
186           <name>Database Username</name>
187           <value>pgsqluser</value>
188           <description>The username to use when accessing the
189           database.</description>
190         </variable>
191
192         <variable id="password" type="password">
193           <name>Database Password</name>
194           <value></value>
195           <description>The password to use when accessing the
196           database. If left blank, one will be
197           generated.</description>
198         </variable>
199       </variablelist>
200     </category>
201
202     <category id="plc_api">
203       <name>API Server</name>
204       <description>API (XML-RPC) server definitions.</description>
205
206       <variablelist>
207         <variable id="enabled" type="boolean">
208           <name>Enabled</name>
209           <value>true</value>
210           <description>Enable the API server on this
211           machine.</description>
212         </variable>
213
214         <variable id="debug" type="boolean">
215           <name>Debug</name>
216           <value>false</value>
217           <description>Enable verbose API debugging. Do not enable on
218           a production system!</description>
219         </variable>
220
221         <variable id="host" type="hostname">
222           <name>Hostname</name>
223           <value>localhost</value>
224           <description>The fully qualified hostname or IP address of
225           the API server. This hostname must be resolvable and
226           reachable by the rest of your installation, as well as your
227           nodes.</description>
228         </variable>
229
230         <variable id="port" type="int">
231           <name>Port</name>
232           <value>80</value>
233           <description>The TCP port number through which the API
234           should be accessed. Warning: SSL (port 443) access is not
235           fully supported by the website code yet. We recommend that
236           port 80 be used for now and that the API server either run
237           on the same machine as the web server, or that they both be
238           on a secure wired network.</description>
239         </variable>
240
241         <variable id="path" type="string">
242           <name>Path</name>
243           <value>/PLCAPI/</value>
244           <description>The base path of the API URL.</description>
245         </variable>
246
247         <variable id="maintenance_user" type="string">
248           <name>Maintenance User</name>
249           <value>maint@test.planet-lab.org</value>
250           <description>The username of the maintenance account. This
251           account is used by local scripts that perform automated
252           tasks, and cannot be used for normal logins.</description>
253         </variable>
254
255         <variable id="maintenance_password" type="password">
256           <name>Maintenance Password</name>
257           <value></value>
258           <description>The password of the maintenance account. If
259           left blank, one will be generated. We recommend that the
260           password be changed periodically.</description>
261         </variable>
262
263         <variable id="maintenance_sources" type="hostname">
264           <name>Authorized Hosts</name>
265           <value></value>
266           <description>A space-separated list of IP addresses allowed
267           to access the API through the maintenance account. If left
268           blank, the API, web, and boot servers are
269           allowed.</description>
270         </variable>
271
272         <!-- The following are not actually meant to be configurable
273              as variables. The web interface should allow the file to
274              be downloaded, or its contents replaced by a file upload,
275              but the actual <value> shouldn't need to be changed.  -->
276
277         <variable id="ssl_crt" type="file">
278           <name>SSL Certificate</name>
279           <value>/etc/planetlab/api_ssl.crt</value>
280           <description>The signed SSL certificate to use for HTTPS
281           access. If not specified or non-existent, a self-signed
282           certificate will be generated.</description>
283         </variable>
284
285         <variable id="ssl_key" type="file">
286           <name>SSL Key</name>
287           <value>/etc/planetlab/api_ssl.key</value>
288           <description>The corresponding SSL private key used for
289           signing the certificate, and for signing slice tickets. If
290           not specified or non-existent, one will be
291           generated.</description>
292         </variable>
293
294         <variable id="ssl_key_pub" type="file">
295           <name>SSL Key</name>
296           <value>/etc/planetlab/api_ssl.pub</value>
297           <description>The corresponding SSL public key. If not
298           specified or non-existent, one will be
299           generated.</description>
300         </variable>
301       </variablelist>
302     </category>
303
304     <category id="plc_www">
305       <name>Web Server</name>
306       <description>Web server definitions.</description>
307
308       <variablelist>
309         <variable id="enabled" type="boolean">
310           <name>Enabled</name>
311           <value>true</value>
312           <description>Enable the web server on this
313           machine.</description>
314         </variable>
315
316         <variable id="debug" type="boolean">
317           <name>Debug</name>
318           <value>false</value>
319           <description>Enable debugging output on web pages. Do not
320           enable on a production system!</description>
321         </variable>
322
323         <variable id="host" type="hostname">
324           <name>Hostname</name>
325           <value>localhost</value>
326           <description>The fully qualified hostname or IP address of
327           the web server. This hostname must be resolvable and
328           reachable by the rest of your installation, as well as your
329           nodes.</description>
330         </variable>
331
332         <variable id="port" type="int">
333           <name>Port</name>
334           <value>80</value>
335           <description>The TCP port number through which the
336           unprotected portions of the web site should be
337           accessed.</description>
338         </variable>
339
340         <variable id="ssl_port" type="int">
341           <name>SSL Port</name>
342           <value>443</value>
343           <description>The TCP port number through which the protected
344           portions of the web site should be accessed.</description>
345         </variable>
346
347         <!-- The following are not actually meant to be configurable
348              as variables. The web interface should allow the file to
349              be downloaded, or its contents replaced by a file upload,
350              but the actual <value> shouldn't need to be changed.  -->
351
352         <variable id="ssl_crt" type="file">
353           <name>SSL Certificate</name>
354           <value>/etc/planetlab/www_ssl.crt</value>
355           <description>The signed SSL certificate to use for HTTPS
356           access. If not specified or non-existent, a self-signed
357           certificate will be generated.</description>
358         </variable>
359
360         <variable id="ssl_key" type="file">
361           <name>SSL Key</name>
362           <value>/etc/planetlab/www_ssl.key</value>
363           <description>The corresponding SSL private key. If not
364           specified or non-existent, one will be
365           generated.</description>
366         </variable>
367       </variablelist>
368     </category>
369
370     <category id="plc_boot">
371       <name>Boot Server</name>
372       <description>Boot server definitions. Multiple boot servers
373       may be brought up for load balancing, but we recommend that a
374       single DNS round-robin system be implemented so that the
375       following variables are the same across all of
376       them.</description>
377
378       <variablelist>
379         <variable id="enabled" type="boolean">
380           <name>Enabled</name>
381           <value>true</value>
382           <description>Enable the boot server on this
383           machine.</description>
384         </variable>
385
386         <variable id="host" type="hostname">
387           <name>Hostname</name>
388           <value>localhost</value>
389           <description>The fully qualified hostname or IP address of
390           the boot server. This hostname must be resolvable and
391           reachable by the rest of your installation, as well as your
392           nodes.</description>
393         </variable>
394
395         <variable id="port" type="int">
396           <name>Port</name>
397           <value>80</value>
398           <description>The TCP port number through which the
399           unprotected portions of the boot server should be
400           accessed.</description>
401         </variable>
402
403         <variable id="ssl_port" type="int">
404           <name>SSL Port</name>
405           <value>443</value>
406           <description>The TCP port number through which the protected
407           portions of the boot server should be
408           accessed.</description>
409         </variable>
410
411         <!-- The following are not actually meant to be configurable
412              as variables. The web interface should allow the file to
413              be downloaded, or its contents replaced by a file upload,
414              but the actual <value> shouldn't need to be changed.  -->
415
416         <variable id="ssl_crt" type="binary">
417           <name>SSL Certificate</name>
418           <value>/etc/planetlab/boot_ssl.crt</value>
419           <description>The signed SSL certificate to use for HTTPS
420           access. If not specified, or non-existent a self-signed
421           certificate will be generated.</description>
422         </variable>
423
424         <variable id="ssl_key" type="binary">
425           <name>SSL Key</name>
426           <value>/etc/planetlab/boot_ssl.key</value>
427           <description>The corresponding SSL private key. If not
428           specified or non-existent, one will be
429           generated.</description>
430         </variable>
431       </variablelist>
432     </category>
433   </variables>
434
435   <comps>
436     <group>
437       <id>plc</id>
438       <name>PlanetLab Central</name>
439       <default>true</default>
440       <description>PlanetLab Central Packages</description>
441       <uservisible>true</uservisible>
442       <packagelist>
443         <!-- Sending mail -->
444         <packagereq type="mandatory">sendmail</packagereq>
445         <packagereq type="mandatory">sendmail-cf</packagereq>
446
447         <!-- (Optional) Synchronizing with PLC -->
448         <packagereq type="mandatory">rsync</packagereq>
449
450         <!-- Cron jobs -->
451         <packagereq type="mandatory">vixie-cron</packagereq>    
452
453         <!-- Other utilities -->
454         <packagereq type="mandatory">cvs</packagereq>
455         <packagereq type="mandatory">curl</packagereq>
456         <packagereq type="mandatory">wget</packagereq>
457
458         <!-- yum >=2.2 uses a new repository format -->
459         <packagereq type="mandatory">createrepo</packagereq>
460
461         <!-- For mkpasswd -->
462         <packagereq type="mandatory">expect</packagereq>
463
464         <!-- Almost all scripts are written in Python -->
465         <packagereq type="mandatory">python</packagereq>
466
467         <!-- For various Python scripts that access the API -->
468         <packagereq type="mandatory">plcapilib</packagereq>
469
470         <!-- Database server -->
471         <packagereq type="mandatory">postgresql</packagereq>
472         <packagereq type="mandatory">postgresql-server</packagereq>
473         <packagereq type="mandatory">postgresql-python</packagereq>
474
475         <!-- (Secure) web server -->
476         <packagereq type="mandatory">httpd</packagereq>
477         <packagereq type="mandatory">mod_ssl</packagereq>
478
479         <!-- Web pages are written primarily in PHP. A few pages still
480              access the DB directly. -->
481         <packagereq type="mandatory">php</packagereq>
482         <packagereq type="mandatory">php-pgsql</packagereq>
483         <packagereq type="mandatory">php-xmlrpc</packagereq>
484
485         <!-- Need GD for ImageCreate(), etc. -->
486         <packagereq type="mandatory">gd</packagereq>    
487         <packagereq type="mandatory">php-gd</packagereq>        
488
489         <!-- API server is implemented in mod_python -->
490         <packagereq type="mandatory">mod_python</packagereq>
491
492         <!-- API server uses a few non-standard packages -->
493         <packagereq type="mandatory">PyXML</packagereq>
494
495         <!-- API server uses SSL to sign tickets -->
496         <packagereq type="mandatory">xmlsec1</packagereq>
497         <packagereq type="mandatory">xmlsec1-openssl</packagereq>
498         <packagereq type="mandatory">openssl</packagereq>
499
500         <!-- bootcd is generated using mkisofs -->
501         <packagereq type="mandatory">mkisofs</packagereq>
502
503         <!-- bootcd and bootmanager images are signed using GPG -->
504         <packagereq type="mandatory">gnupg</packagereq>
505
506         <!-- bootmanager requires uuencode -->
507         <packagereq type="mandatory">sharutils</packagereq>
508       </packagelist>
509     </group>
510
511   </comps>
512
513 </configuration>