eganja - 2009-11-01

I have just found a nice application called dab

dab' is a script to automate the creation of OpenVZ appliances. It is basically a rewrite of debootstrap in perl, but uses OpenVZ instead of chroot and generates OpenVZ templates. Another difference is that it supports multi-stage building of templates. That way you can execute arbitrary scripts between package installation steps to accomplish what you want.

So it was a pleasure to create a virtualmin/webmin appliance on top of debian lenny

you need a file called dab.conf
Suite: lenny
CacheDir: ../cache
Mirror: =>
Architecture: amd64
Name: webmin-lenny
Version: 5.0-1
Section: system
Maintainer: webmin
Description: Debian 5.0 (webmin)
A small Debian Lenny system including all standard packages.

and the following Makefile

BASEDIR:=$(shell dab basedir)

all: info/init_ok

        dab bootstrap
        dab task mysql -password achanger
        dab install apache2-mpm-prefork htop mc postfix postfix-pcre ruby rubygems snmp  bind9utils bind9 libapache2-mod-ruby libxml-simple-perl libcrypt-ssleay-perl
        dab task php
        sed -e 's/^\s*display_errors\s*=\s*On/display_errors = Off/' -i ${BASEDIR}/etc/php5/apache2/php.ini
        dab install php5-mysql
        dab install libnet-ssleay-perl  libauthen-pam-perl libio-pty-perl libmd5-perl  webalizer snmpd chkrootkit rkhunter fail2ban logwatch chkconfig squirrelmail subversion gcc make
        dab install libtest-exception-perl libsub-uplevel-perl libtest-simple-perl libwrap0-dev dovecot proftpd  dovecot-common dovecot-imapd dovecot-pop3d
        install -m 0644 webmin_1.490_all.deb ${BASEDIR}/root/
        dab exec dpkg -install /root/webmin_1.490_all.deb
        install -m 0644 virtual-server-3.74.gpl.wbm.gz ${BASEDIR}/root/
        install -m 0644 virtual-server-theme-7.5.wbt.gz ${BASEDIR}/root/
        echo /bin/false >>${BASEDIR}/etc/shells
        echo "virtual_alias_maps = hash:/etc/postfix/virtual" >> ${BASEDIR}/etc/postfix/
        dab finalize

info/init_ok: dab.conf
        dab init
        touch $@

.PHONY: clean
        dab clean
        rm -f *~

.PHONY: dist-clean
        dab dist-clean
        rm -f *~

it could be nice if the developper team designed their own official appliance and certify it

eric lapaille