summaryrefslogblamecommitdiffstats
path: root/data/install_server.sh
blob: ca67a6edd7274212a65ffa5f8760876918124575 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12

         
                                               








                                                   






















































                                                                                                        


                               












































                                                                                               


                                                


                     











                                                      
#!/bin/sh

TOOLS="git squashfs-tools rsync lighttpd tftpd"

for tool in $TOOLS; do
	echo " ###### Installiere $tool ##########"
	apt-get install -y $tool
done

# lighttpd konfigurieren
# konfig: www-root = /srv/openslx/www

# damit es keinen Ärger wg. noch nicht vorhandenem docroot gibt
echo "Konfiguriere lighttpd ..."
echo "Stoppe installierten lighttpd ..."
/etc/init.d/lighttpd stop
ERR=$?
if [ "$ERR" -gt 0 ]; then
	echo "Konnte lighttpd nicht anhalten - Abbruch!"
	exit 1
fi

# lighttpd-Konfiguration patchen

echo "Passe lighttpd-Konfiguration an ..."
cp -p /etc/lighttpd/lighttpd.conf /etc/lighttpd/lighttpd.conf.orig
ERR=$?
if [ "$ERR" -gt 0 ]; then
        echo "Konnte alte lighttpd-Konfiguration nicht sichern - Abbruch!"
        exit 1
fi

cat /etc/lighttpd/lighttpd.conf|sed 's/\/var\/www/\/srv\/openslx\/www/g'>/etc/lighttpd/lighttpd.conf.tmp
ERR=$?
if [ "$ERR" -gt 0 ]; then
        echo "Konnte lighttpd-Konfiguration nicht patchen - Abbruch!"
        exit 1
fi

mv  /etc/lighttpd/lighttpd.conf.tmp  /etc/lighttpd/lighttpd.conf
ERR=$?
if [ "$ERR" -gt 0 ]; then
        echo "Konnte neue lighttpd-Konfiguration nicht speichern - Abbruch!"
        exit 1
fi

# neues docroot (/srv/openslx/www) prüfen und ggf. erzeugen - ggf. altes docroot löschen?
echo "Prüfe docroot für lighttpd (/srv/openslx/www) ..."
if [ ! -d /srv/openslx/www ] ; then
	echo "Erzeuge neues docroot für lighttpd (/srv/openslx/www) ..."
	mkdir -p  /srv/openslx/www
	ERR=$?
	if [ "$ERR" -gt 0 ]; then
        	echo "Konnte kein lighttpd-docroot-Verzeichnis erstellen - Abbruch!"
	        exit 1
	fi
fi

# ... und lighttpd wieder hochziehen:
echo "Starte installierten lighttpd ..."
/etc/init.d/lighttpd start
ERR=$?
if [ "$ERR" -gt 0 ]; then
        echo "Konnte lighttpd nicht starten - Abbruch!"
        exit 1
fi

# tftpd konfigurieren
# tftp root = /srv/openslx/tftp

echo "Konfiguriere tftpd ..."
# neues docroot (/srv/openslx/tftp) prüfen und ggf. erzeugen - ggf. altes docroot löschen?
echo "Prüfe docroot für tftpd (/srv/openslx/tftp) ..."
if [ ! -d /srv/openslx/tftp ] ; then
        echo "Erzeuge neues docroot für tftpf (/srv/openslx/tftp) ..."
        mkdir -p  /srv/openslx/tftp
        ERR=$?
        if [ "$ERR" -gt 0 ]; then
                echo "Konnte kein tftpd-docroot-Verzeichnis erstellen - Abbruch!"
                exit 1
        fi
fi

echo "Halte xinetd an ..."
# Erstmal xinetd (kam mit tftpd) anhalten
/etc/init.d/xinetd stop		# besser wäre zB service xinetd stop, aber wg. Kompatibilität
ERR=$?
if [ "$ERR" -gt 0 ]; then
        echo "Konnte xinetd nicht anhalten - Abbruch!"
        exit 1
fi

# tftpd-Konfiguration einschreiben
cat>/etc/xinetd.d/tftp<<HEREEND		# 
service tftp
{
protocol        = udp
port            = 69
socket_type     = dgram
wait            = yes
user            = nobody
server          = /usr/sbin/in.tftpd
server_args     = /srv/openslx/tftp
disable         = no
}
HEREEND

echo "starte xinetd ..."
/etc/init.d/xinetd start
ERR=$?
if [ "$ERR" -gt 0 ]; then
        echo "Konnte xinetd nicht starten - Abbruch!"
        exit 1
fi


echo " ##### Klone das mltk repository ########"

mkdir -p /opt/openslx
cd /opt/openslx

git clone git://git.openslx.org/openslx-ng/tm-scripts

echo "....Fertig"
echo "mltk liegt nun im Verzeichnis $(pwd)/tm-scripts"
echo "Extrahieren und Erstellen der Basissystemdaten:"
echo "./mltk remote stage31 -b"
echo "./mltk remote stage32 -b"
echo "Verpacken der Daten als initramfs:"
echo "./mltk server local stage31 -e stage31"
echo "./mltk server local stage32 -e stage32"
echo "."