Hi,
We use dab to generate a lot of template VM.
So we create a makefile template to minimize preconfigure debian lenny
- replace rsyslog by sysklogd
- replace postfix bu ssmtp
- set locales
- use predefined bash.bashrc
....
Global Makefile: (atuin_template/Systeme_Makefile)
Example for minimal debian lenny lamp
run with make all and if no error run make end to create openvz appliance
I hope this will be useful for other users
Sorry for my bad english
Cyril
We use dab to generate a lot of template VM.
So we create a makefile template to minimize preconfigure debian lenny
- replace rsyslog by sysklogd
- replace postfix bu ssmtp
- set locales
- use predefined bash.bashrc
....
Global Makefile: (atuin_template/Systeme_Makefile)
Code:
# Debian Lenny Atuin Minimal Systeme Global Makefile Install
ATUIN_TPMTL_PATH = ../atuin_template
BASEDIR:=$(shell dab basedir)
global: info/init_ok sysinst replacepkg addpkg removepkg config
end:
#
#
# ========================
# Create OpenVZ Appliance
# ========================
dab finalize
info/init_ok: dab.conf
dab init
touch $@
sysinst:
# =======================
# Sys Install
#========================
# Minimal debootstrap
@dab bootstrap --minimal
# locales
@dab install locales
@sed -e 's/^# fr_FR.UTF-8/fr_FR.UTF-8/' -i ${BASEDIR}/etc/locale.gen
@sed -e 's/^# fr_FR@euro/fr_FR@euro/' -i ${BASEDIR}/etc/locale.gen
@dab exec dpkg-reconfigure locales
# default locale to fr_FR UTF8
@echo "LANG=fr_FR.UTF-8" > ${BASEDIR}/etc/default/locale
# Set timezone to Europe/Paris
@echo "Europe/Paris" > ${BASEDIR}/etc/timezone
@dab exec rm -f /etc/localtime
@dab exec cp -f /usr/share/zoneinfo/Europe/Paris /etc/localtime
replacepkg:
#
#
# =======================
# Replace pkg
# =======================
# Replace postfix by ssmtp
@dab exec aptitude --purge -q remove postfix
@dab install ssmtp
#
# WARNING : You must edit ssmtp.conf before run make cmd
#
@install -m 0644 $(ATUIN_TPMTL_PATH)/ssmtp.conf ${BASEDIR}/etc/ssmtp/ssmtp.conf
# Replace debconf-i18n by debconf-english
@wget -q "$(shell fgrep "debconf-english_" ./info/available | grep ^url | cut -d " " -f2)" -O ${BASEDIR}/tmp/debconf-english.deb
@dab exec dpkg --purge --force-depends debconf-i18n
@dab exec dpkg -i /tmp/debconf-english.deb
# replace rsyslog (use ~27Mb of ram) by sysklogd
@wget -q "$(shell fgrep "/sysklogd_" ./info/available | grep ^url | cut -d " " -f2)" -O ${BASEDIR}/tmp/sysklogd.deb
@wget -q "$(shell fgrep "/klogd_" ./info/available | grep ^url | cut -d " " -f2)" -O ${BASEDIR}/tmp/klogd.deb
@dab exec dpkg --purge --force-depends rsyslog
@dab exec dpkg -i /tmp/sysklogd.deb /tmp/klogd.deb
@dab exec update-rc.d -f klogd remove
# remove download pkg
@rm -f ${BASEDIR}/tmp/*.deb
#
#
addpkg:
#
#
# =========================
# Add pkg
# =========================
# Add joe editor
@dab install joe
#
#
removepkg:
#
#
# =====================
# Remove sys packages
# =====================
@dab exec aptitude --purge -q remove tasksel-data tasksel vim-tiny vim-common postfix less nano gcc-4.2-base \
dmidecode liblocale-gettext-perl libtext-wrapi18n-perl netcat-traditional libtext-charwidth-perl info \
libtext-iconv-perl libconsole libsasl2-2 python openssl-blacklist ssl-cert python2.5 traceroute
# don't run ???
#@dab exec dpkg --purge $(shell chroot ${BASEDIR} dpkg -l | grep ^rc | awk '{print $2}')
@dab exec dpkg --purge tasksel-data tasksel vim-tiny vim-common postfix less nano gcc-4.2-base \
dmidecode liblocale-gettext-perl libtext-wrapi18n-perl netcat-traditional libtext-charwidth-perl info \
libtext-iconv-perl libconsole libsasl2-2 python openssl-blacklist ssl-cert python2.5 traceroute
#
#
config:
#
#
# =====================
# Sys Config
# =====================
install -m 0644 $(ATUIN_TPMTL_PATH)/profile ${BASEDIR}/etc/profile
install -m 0644 $(ATUIN_TPMTL_PATH)/bash.bashrc ${BASEDIR}/etc/bash.bashrc
install -m 0755 $(ATUIN_TPMTL_PATH)/diskclean ${BASEDIR}/usr/sbin/diskclean
# Network config sample
install -m 0644 $(ATUIN_TPMTL_PATH)/interfaces.ipfailover ${BASEDIR}/etc/network/interfaces.ipfailover
install -m 0644 $(ATUIN_TPMTL_PATH)/interfaces.dhcp ${BASEDIR}/etc/network/interfaces.dhcp
install -m 0644 $(ATUIN_TPMTL_PATH)/interfaces.static ${BASEDIR}/etc/network/interfaces.static
# Remove start of openssh$
@dab exec update-rc.d -f ssh remove
#
#
.PHONY: clean
clean:
dab clean
rm -f *~
.PHONY: dist-clean
dist-clean:
dab dist-clean
rm -f *~
Code:
# Include Global Makefile
[B]include ../atuin_template/Systeme_Makefile[/B]
lamp:
#
#
# =====================
# APACHE + MYSQL + PHP
# =====================
# Install Mysql
@dab task mysql --password random
# Install Apache 2
@dab install apache2-mpm-prefork apache2
# Remove Apache mods
#dab exec a2dismod alias
@dab exec a2dismod auth_basic
@dab exec a2dismod authn_file
@dab exec a2dismod authz_default
@dab exec a2dismod authz_groupfile
@dab exec a2dismod authz_user
@dab exec a2dismod cgi
@dab exec a2dismod status
# Install php5 --memlimit don't run here because we overwrite php.ini file after
@dab task php
@dab install php5-mysql
#
# php.ini recommended config with memory limit 64M & safe mode on
@dab exec mv /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini.sav
@dab exec cp /usr/share/doc/php5-common/examples/php.ini-recommended /etc/php5/apache2/php.ini
#@sed -e 's/^\s*memory_limit\s*=\s*128M/memory_limit = 64M/' -i ${BASEDIR}/etc/php5/apache2/php.ini
@sed -e 's/^\ssafe_mode\s*=\s*Off/safe_mode = On/' -i ${BASEDIR}/etc/php5/apache2/php.ini
#
#
pma:
#
#
# ======================
# PhpMyAdmin
# ======================
#
@dab install phpmyadmin
# Config for Apache2 and set Alias /pma for access to phpmyadmin
@dab exec cp /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf
@sed -e 's/^Alias \/phpmyadmin/Alias \/pma/' -i ${BASEDIR}/etc/apache2/conf.d/phpmyadmin.conf
#@dab exec a2enmod alias
#
#
all: global lamp pma
#
#
# =======================
# If no errors reported
# you can run "make end"
# to create OpenVZ template
# =======================
#
I hope this will be useful for other users
Sorry for my bad english
Cyril