BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Ports testen und Pakete erstellen mit einer Tinderbox Version 3.2

Mit einer Tinderbox können FreeBSD Ports getestet und Pakete aus den Ports erstellt werden. Möchte man Ports für FreeBSD-7.1, FreeBSD 7-STABLE oder FreeBSD 8-CURRENT testen, muss man auch eine solche Version installiert haben, da sich Aufgrund von ABI Änderungen, diese Versionen nicht mit FreeBSD-6.x testen lassen. Die Tinderbox Version 3.2 findet man in den aktuellen FreeBSD Ports unter ports-mgmt/tinderbox.:

# cd /usr/ports/ports-mgmt/tinderbox/ && make install clean

Im Konfigurationsmenü kann danach ausgewählt werden, was für eine Datenbank und was für ein Webserver verwendet wird und ob cvsup oder csup zum Aktualisieren der Quelldateien verwendet werden soll. Im folgenden Beispiel wird mySQL als Datenbank und ein Apache Webserver verwendet.

[ ] PGSQL           With pgsql
[X] MYSQL           With mysql
[X] CSUP            Use csup for updates
[ ] CVSUP           Use cvsup for updates
[X] WEBUI           Install web interface
[X] APACHE          Use Apache for web interface
[ ] LIGHTTPD        Use LightHTTPD for web interface
[X] CHECK_FOR_ROOT  Check it ./tc is run by uid 0 

Ist noch kein Datenbank-Server installiert, muss dieser auch noch installiert werden:

# cd /usr/ports/databases/mysql50-server && make install clean

Nun kann die Webserverkonfiguration den eigenen Wünschen angepasst werden:

# vi /usr/local/etc/apache/httpd.conf

Sollen die Datenbank und der Webserver bei einem Systemstart automatisch gestartet werden, müssen die benötigten Einträge in /etc/rc.conf gemacht werden:

mysql_enable="YES"
apache_enable="YES"

Nun können mySQL und der Apache gestartet werden:

# /usr/local/etc/rc.d/apache.sh start
# /usr/local/etc/rc.d/mysql-server start

Danach kann mit der Konfiguration der Tinderbox begonnen werden:

# cd /usr/local/tinderbox/scripts && ./tc Setup

Dabei müssen verschieden Angaben gemacht werden:

Welcome to the Tinderbox Setup script.  This script will guide you through
some of the automated Tinderbox setup steps.  Once this script completes ,
you should review the documentation in /usr/local/tinderbox/scripts/README
or on the web at http://tinderbox.marcuscom.com/ to complete your setup.

Hit <ENTER> to get started: <Enter>
INFO: Checking prerequisites ...
DONE.

INFO: Creating default configuration files ...
DONE.

INFO: Beginning database configuration.
Enter database driver (mysql pgsql): mysql
Does this host have access to connect to the Tinderbox database as a database administrator? (y/N)y
Enter database admin user [root]:<Benutzer>
Enter database host [localhost]:<DB Server>
Enter database name [tinderbox]:<Datenbankname>

Are these settings corrrect:
    Database Administrative User : root
    Database Host                : localhost
    Database Name                : tinderbox
(y/N)y
Do you want to cache root's password, and pass it to subsequent database command calls (note: this presents a security risk) (y/N) ?y
Enter root's password : <Passwort>
Confirm password for root : <Passwort>
INFO: Checking for prerequisites for mysql database driver ...
DONE.

Enter the desired username for the Tinderbox database : <Benutzername>
Enter the desired password for tinderbox : <Passwort>
Confirm password for tinderbox : <Passwort>
Are these the settings you want:
    Database username      : tinderbox
    Database user password : ****
(y/N) y
INFO: Checking to see if database tinderbox already exists on localhost ...
The next prompt will be for root's password to the tinderbox database.
Enter password: <Passwort> INFO: Database tinderbox does not exist.  Creating tinderbox on localhost
...
INFO: Creating user tinderbox on host localhost (if required) ...
DONE.

The next prompt will be for root's password to the tinderbox database.
Enter password: <Passwort>
INFO: Loading Tinderbox schema into tinderbox ...
The next prompt will be for root's password to the tinderbox database.
Enter password: <Passwort>
INFO: Adding permissions to tinderbox for tinderbox ...
The next prompt will be for root's password to the tinderbox database.
Enter password: <Passwort>
DONE.

INFO: Database configuration complete.

Congratulations!  The scripted portion of Tinderbox has completed successfully.
You should now verify the settings in /usr/local/tinderbox/scripts/tinderbox.ph
are correct for your environment, then run "/usr/local/tinderbox/scripts/tc
init" to complete the setup.  Be sure to checkout
http://tinderbox.marcuscom.com/ for further instructions

In der Datei /usr/local/tinderbox/scripts/tinderbox.ph müssen noch einige Variablen ausgefüllt werden:

# Configurable options
$TINDERBOX_HOST  = '<URL der Tinderbox>';
$TINDERBOX_URI   = '/tb';
$SUBJECT         = '<Betreff einer Tinderbox Mail>';
$SENDER          = '<Senderadresse>';
$SMTP_HOST       = '<Mailserver>';

Danach müssen noch zwei PHP Scripts kopiert und angepasst werden:

# cp /usr/local/tinderbox/scripts/webui/inc_ds.php.dist /usr/local/tinderbox/scripts/webui/inc_ds.php
# cp /usr/local/tinderbox/scripts/webui/inc_tinderbox.php.dist /usr/local/tinderbox/scripts/webui/inc_tinderbox.php

Einträge in der /usr/local/tinderbox/scripts/webui/inc_ds.php:

$DB_DRIVER = 'mysql';
#$DB_DRIVER = 'pgsql';
$DB_HOST = '<DB Server>';
$DB_NAME = '<DB Name>';
$DB_USER = '<DB User>';
$DB_PASS = '<DB Passwort>';

Einträge in der /usr/local/tinderbox/scripts/webui/inc_tinderbox.php. Möchte man das paefchen-Webui-Frontend verwenden, so kann die template_dir-Variable auf 'paefchen' gesetzt werden:

$tinderbox_name  = '<Tinderbox Name>';
$tinderbox_title = '<Tinderbox Titel>';
[...]
# Comment out the next line, and uncomment the line after it to enable
# the paefchen frontend template.
#$template_dir   = 'default';
$template_dir   = 'paefchen'

Jetzt kann die Tinderbox initialisiert werden:

# cd /usr/local/tinderbox/scripts && ./tc init
Enter a default cvsup host [cvsup12.FreeBSD.org]: <CVSup Server>
Enter a default update type or command [CSUP]: Enter
Default update host and type have been set.  These can be changed later by
modifying /usr/local/tinderbox/scripts/etc/env/GLOBAL.

Möchte man die Tinderbox über das Web-GUI steuern, muss noch der tinderd Dienst aktiviert werden:

# echo 'tinderd_enable="YES"' >> /etc/rc.conf
# echo 'tinderd_directory="/usr/local/tinderbox/scripts"' >> /etc/rc.conf
# echo 'tinderd_flags="-nullfs"' >> /etc/rc.conf
# /usr/local/etc/rc.d/tinderbox start

Nun muss noch ein Benutzer für das Web-GUI erstellt werden:

# cd /usr/local/tinderbox/scripts && ./tc addUser -u <Benutzername> -e <E-Mailadresse> -p <Passwort> -w
# ./tc setWwwAdmin -u <Benutzername>

Nun müssen noch die Einträge in der /usr/local/etc/apache/httpd.conf gemacht werden:

 Alias /tb/logs/ "/usr/local/tinderbox/logs/"
 Alias /tb/packages/ "/usr/local/tinderbox/packages/"
 Alias /tb/errors/ "/usr/local/tinderbox/errors/"
 Alias /tb/ "/usr/local/tinderbox/scripts/webui/"
 <Directory "/usr/local/tinderbox/">
         Order allow,deny
         Allow from all
 </Directory>

Danach kann der Apache neu gestartet werden:

# /usr/local/etc/rc.d/apache.sh restart

Als erstes wird ein Portbaum mit der Bezeichnung FreeBSD erstellt:

# cd /usr/local/tinderbox/scripts
# ./tc createPortsTree -p FreeBSD -u CSUP -d "FreeBSD ports tree" -w http://www.freebsd.org/cgi/cvsweb.cgi/ports/

Mit einer Tinderbox können Packet für verschieden FreeBSD Versionen erstellt werden. Folgender Befehl erstellt eine Tinderbox-Jail für FreeBSD 6.4:

# ./tc createJail -j 6.4 -d "FreeBSD 6.4" -t RELENG_6_4

Nun wird der Tinderbox-Jail dem Portbaum zugewiesen:

# ./tc createBuild -b 6.4-FreeBSD -j 6.4 -p FreeBSD -d "6.4-RELEASE with FreeBSD ports tree"

Es können nun auch weiter Tinderbox-Jails mit anderen FreeBSD Versionen und unterschiedliche Portbäume erstellt werden.

Danach können schon Ports, in diesem Beispiel www/fluxcms, getestet und Pakete dafür erstellt werden:

# ./tc addPort -b 6.4-FreeBSD -d www/fluxcms
# ./tc tinderbuild -nullfs -b 6.4-FreeBSD www/fluxcms

Die Logdateien und die Pakete können ganz einfach über das Web-GUI gefunden werden. Dieses ist über http://tinderboxserver/tb/ erreichbar.

Auch lassen sich bestehende Portbaume aktualisieren. Folgender Befehl aktualisiert den Portbaum welcher FreeBSD benannt wurde:

# ./tc updatePortsTree -p FreeBSD

Mehr Informationen zur Tinderbox findet man auf der Homepage http://tinderbox.marcuscom.com/. Eine Installationsanleitung für die Tinderbox Version 2.4.x findet man hier: http://www.chruetertee.ch/blog/archive/2007/11/10/ports-testen-und-pakete-erstellen-mit-einer-tinderbox.html

Related Entries:
Tinderbox aufräumen
Wartezeit von tinderd ändern
Quellcode in der Tinderbox speichern
Tinderbox-Jail ohne Kompilieren erstellen
RSS-Feed der zuletzt gebauten Ports einer Tinderbox
 Permalink

Comments

No new comments allowed (anymore) on this post.