summaryrefslogtreecommitdiffstats
path: root/abs/core-testing/LinHES-config
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core-testing/LinHES-config')
-rwxr-xr-xabs/core-testing/LinHES-config/PKGBUILD43
-rwxr-xr-xabs/core-testing/LinHES-config/config_diskless_frontend.bash656
2 files changed, 39 insertions, 660 deletions
diff --git a/abs/core-testing/LinHES-config/PKGBUILD b/abs/core-testing/LinHES-config/PKGBUILD
index 27e5526..2998dfc 100755
--- a/abs/core-testing/LinHES-config/PKGBUILD
+++ b/abs/core-testing/LinHES-config/PKGBUILD
@@ -1,12 +1,14 @@
pkgname=LinHES-config
pkgver=2.0
-pkgrel=27
+pkgrel=28
conflicts=(MythVantage-config MythVantage-config-dev LinHES-config-dev )
pkgdesc="Install and configure your system"
depends=(bc libstatgrab mysql-python expect curl dnsutils parted sg3_utils nmbscan system-templates rsync python-parted ddcxinfo)
arch=('i686')
-source=(mv_install.py mv_config.py mythinstall.bin myth_user_call file_time_offset.py install-ui.xml install_proxy.sh install_functions.sh systemconfig.sh install_db_chroot.sh restore_default_settings.sh xconfig.sh timezip.py soundconfig.sh LinHES-release issue MythVantage.sh create_master.sh build_diskless.sh networkconfig.sh timezone.bin autocard.py restore_km_db_chroot.sh README mv_advanced.py mv_common.py mv_ir.py mv_misc.py mv_network.py mv_screensaver.py mv_smolt.py mv_software.py mv_webuser.py mv_hostype.py systemconfig.py)
+source=(mv_install.py mv_config.py
+#mythinstall.bin
+myth_user_call file_time_offset.py install-ui.xml install_proxy.sh install_functions.sh systemconfig.sh install_db_chroot.sh restore_default_settings.sh xconfig.sh timezip.py soundconfig.sh LinHES-release issue MythVantage.sh create_master.sh build_diskless.sh networkconfig.sh timezone.bin autocard.py restore_km_db_chroot.sh README mv_advanced.py mv_common.py mv_ir.py mv_misc.py mv_network.py mv_screensaver.py mv_smolt.py mv_software.py mv_webuser.py mv_hostype.py systemconfig.py)
install=LinHES.install
build() {
@@ -48,7 +50,6 @@ build() {
install -m 0755 mv_webuser.py $MVDIR/bin/
install -m 0755 mv_hostype.py $MVDIR/bin/
install -m 0755 systemconfig.py $MVDIR/bin/
- install -m 0755 config_diskless_frontend.bash $MVDIR/bin/
#README file displayed on install
install -m 0755 README $MVDIR/README
@@ -64,10 +65,44 @@ build() {
install -m 0755 install-ui.xml $startdir/pkg/usr/share/mythtv/themes/default/
#copy in the binaries
- install -m 4755 mythinstall.bin $MVDIR/bin/MythVantage
+# install -m 4755 mythinstall.bin $MVDIR/bin/MythVantage
cd $MVDIR/bin
ln -s MythVantage mythvantage
ln -s MythVantage mythinstall
cd -
}
+md5sums=('97a75e1c2d780881566d3388532ac0f7'
+ '40e3173b3f98beb1d94320eef3b60854'
+ 'e36da536dd651ef182e7642337889e77'
+ '3baa23764e1b6bcb2d66d7d859096940'
+ 'd6009f9a4ff3238aa911d6e61a8c675a'
+ 'd7a8cd4a0060399ae22e69f74e04eb07'
+ '0abe8d207147eeb306743640e33e4757'
+ 'f88d2fb88339a4bf8ec9217a3fbcdef7'
+ '8ac1cfd2eca0f641737da0d0aca416a7'
+ 'd8a4a1699e04eed9ee69d58616069f33'
+ '3a91b587179be4fecb2549e46821708e'
+ 'a02a7c0c59a1cc96d88137a41354c96a'
+ 'e459ed069317bccb20351f037a9df3d2'
+ 'd092238975aafaac4ec576d34303f762'
+ '6aff504ed5e860adc1b7317cd0780900'
+ '55fccb1da0417a896b724f7cfc32dd5a'
+ 'ab2aa42c2947148c2b1cac0ade6d1d55'
+ 'd429b59d3cfb37b0624c6a4a71a7c2c0'
+ 'a225143e3df6f56d451c2875e54ddbae'
+ '1ee558ee9efec54016cb4c87c61e569c'
+ '687555968d4ca688d8f95c8f13e1d8d4'
+ '3d1e4a119f38cff0498bf8a67e94e4b3'
+ 'e9cfd0ccad3a984520780947b2f420bd'
+ '5ad4a57fe6bd53ea6a5820751c476e4d'
+ 'cf0113438a4916a8d815a3b7bde50c42'
+ '4aa795a1f5d789d5532a752606eca4df'
+ '65d93f15ac85adf8299552581789a731'
+ 'a6c9cd6cf243daea737e4ed601c88567'
+ '32385482ecc1275409b71f08d8b03acc'
+ 'da0a2fb1e3cdbabac1f62e8b908c5d7f'
+ '30e527552ae86eb90d5c2169c6316fd1'
+ 'f19917bed3a1e00cbe08838bee18b4b7'
+ '08282647ebf7e563cb9f3bc2ad8aee14'
+ 'd53f305749abdf5fca176f50b40df4fc')
diff --git a/abs/core-testing/LinHES-config/config_diskless_frontend.bash b/abs/core-testing/LinHES-config/config_diskless_frontend.bash
deleted file mode 100755
index 21bf8a0..0000000
--- a/abs/core-testing/LinHES-config/config_diskless_frontend.bash
+++ /dev/null
@@ -1,656 +0,0 @@
-#!/bin/bash
-# This script configures your backend so that a diskless
-# frontend can boot from it.
-
-source /usr/local/bin/linhes_functions.bash
-
-must_be_root
-
-TITLE="Diskless FE Configuration"
-DOPTS=(--backtitle "$BT" --title "$TITLE" --trim --aspect 30 )
-
-DAEMON_LOG=/var/log/daemon.log
-BOOT_DEFAULT=/tftpboot/pxelinux.cfg/default
-
-unable_to_determine_mac_for_default_fe ()
-{
- if dialog "${DOPTS[@]}" --yes-label "Boot FE and try again" \
- --no-label "Delete $fe_nfsroot" \
- --yesno "Unable to automatically determine the MAC address of
- the current default frontend by interrogating $DAEMON_LOG.
- This may be because you have not yet booted the diskless FE. You can
- either boot the diskless FE and try running $0 again, or delete
- $fe_nfsroot and re-create it later." 0 0 ; then
- exit
- else
- rm -Rf $fe_nfsroot $BOOT_DEFAULT
- fi
- exit
-}
-
-find_existing_diskless_fes() {
-
- unset frontend_names
- unset frontend_nfsroots
- unset frontend_ips
- unset frontend_macs
-
- for frontend_config in $(ls /tftpboot/pxelinux.cfg 2> /dev/null) ; do
-
- frontend_name=$(basename $(
- grep append /tftpboot/pxelinux.cfg/$frontend_config |
- sed -e 's/.*nfsroot=//' | awk -F, '{print $1}' | awk -F/ '{print $NF}'))
- frontend_nfsroot=$(
- grep append /tftpboot/pxelinux.cfg/$frontend_config |
- cut -d ':' -f 2 | cut -d ',' -f 1)
- frontend_ip=\
-$((0x${frontend_config:0:2})).$((0x${frontend_config:2:2})).\
-$((0x${frontend_config:4:2})).$((0x${frontend_config:6:2}))
- frontend_mac=$(
- cat /etc/dhcpd.conf |
- grep "host $frontend_name" |
- sed 's/hardware ethernet /#/g' |
- cut -d '#' -f 2 |
- cut -d ';' -f 1)
-
- if [ -n "$frontend_name" -a -n "$frontend_nfsroot" -a \
- -n "$frontend_ip" -a -n "$frontend_mac" ] ; then
- frontend_names=( "${frontend_names[@]}" $frontend_name )
- frontend_nfsroots=( "${frontend_nfsroots[@]}" $frontend_nfsroot )
- frontend_ips=( "${frontend_ips[@]}" $frontend_ip )
- frontend_macs=( "${frontend_macs[@]}" $frontend_mac )
- fi
- done
-
-echo frontend_names="${frontend_names[@]}"
-echo frontend_nfsroots="${frontend_nfsroots[@]}"
-echo frontend_ips="${frontend_ips[@]}"
-echo frontend_macs="${frontend_macs[@]}"
-
-}
-
-check_for_default_fe () {
- # This function looks to see if there is a diskless FE that has only been
- # partially configured (i.e. it's MAC address has not been determined and
- # as a result it has not been allocated a fixed IP.
-
- if [ -e $BOOT_DEFAULT ] ; then
- # There is a $BOOT_DEFAULT config file that has not yet been set to a
- # fixed IP address. See if we can interrogate the log files to
- # determine what the MAC adderss of the FE is so that we can turn it
- # into a fixed ip node. This is the first step in allowing multiple
- # diskless frontends.
-
- # First determine from the default file, the nfsroot that it is for.
-
- fe_nfsroot=$(grep append $BOOT_DEFAULT | cut -d ':' -f 2 | cut -d ',' -f 1)
-
- if [ -z "$fe_nfsroot" ] ; then
- echo "Unable to determine the location of the nfsroot from" \
- $BOOT_DEFAULT
- exit
- fi
-
- echo fe_nfsroot=$fe_nfsroot
-
- # Now determine the IP address by looking for an instance in the
- # daemon log file for which the specified nfsroot was mounted.
-
- fe_ipaddress=$(
- grep "authenticated mount request from " $DAEMON_LOG |
- grep $fe_nfsroot |
- tail -1 |
- sed 's/authenticated mount request from /#/g' |
- cut -d '#' -f 2 |
- cut -d ':' -f 1)
-
- echo fe_ipaddress=$fe_ipaddress
-
- unset fe_macaddress
-
- if [ ! -z "$fe_ipaddress" ] ; then
- fe_macaddress=$(
- grep "DHCPACK on $fe_ipaddress" $DAEMON_LOG |
- tail -1 |
- sed 's/DHCPACK on '$fe_ipaddress' to /#/g' |
- cut -d '#' -f 2 |
- cut -d ' ' -f 1)
- fi
-
- echo fe_macaddress=$fe_macaddress
-
- if [ -z "$fe_macaddress" ] ; then
- unable_to_determine_mac_for_default_fe
- else
- if ! dialog "${DOPTS[@]}" --yesno "By interrogating $DAEMON_LOG,
- it appears that the $(basename $fe_nfsroot) frontend was
- last used by a host with MAC Address of $fe_macaddress which
- was allocated IP address $fe_ipaddress.
- Do you wish to allocate the IP to that host (so that you
- can configure another diskless FE)?" 0 0 ; then
- dialog "${DOPTS[@]}" --msgbox "Boot the correct diskless FE and
- run $0 again." 0 0
- exit
- fi
-
- # Setup dhcpd.conf so that the FE's MAC address always uses a fixed
- # ip address and the PXE configuration is fixed for that address.
-
- hex_ip_address=$(printf "%02X%02X%02X%02X" $(echo $fe_ipaddress |
- tr '.' ' '))
- echo hex_ip_address=$hex_ip_address
- mv -fv $BOOT_DEFAULT $(dirname $BOOT_DEFAULT)/$hex_ip_address
-
- cp -f /etc/dhcpd.conf /etc/dhcpd.conf.bak
- cat /etc/dhcpd.conf.bak |
- grep -v "host $(basename $fe_nfsroot)" > \
- /etc/dhcpd.conf
- echo "\
-host $(basename $fe_nfsroot) \
-{hardware ethernet $fe_macaddress; fixed-address $fe_ipaddress;}" \
- >> /etc/dhcpd.conf
-
- /sbin/sv restart dhcpd
-
- dialog "${DOPTS[@]}" --msgbox "The frontend $(basename $fe_nfsroot)
- with a MAC address of $fe_macaddress and an nfsroot directory of
- $fe_nfsroot has been configured with a fixed IP address of
- $fe_ipaddress." 0 0
- exit
- fi
- fi
-
-}
-
-get_network_interface() {
- NETDEVICES="$(cat /proc/net/dev |
- awk -F: '/ath.:|wlan.:|eth.:|tr.:/{print $1}')"
- echo NETDEVICES=$NETDEVICES
- NUM_DEVICES=$(echo $NETDEVICES | wc -w)
- echo NUM_DEVICES=$NUM_DEVICES
- if [ $NUM_DEVICES = 1 ] ; then
- INTERFACE=$NETDEVICES
- else
- DEVICELIST=""
- DEVNUM=0
- for DEVICE in $NETDEVICES
- do
- DEVNUM=$(($DEVNUM + 1))
- DEVICELIST="$DEVICELIST $DEVICE Interface${DEVNUM} "
- done
- echo DEVICELIST=$DEVICELIST
- TMP=/tmp/interface
- rm -Rf $TMP
- dialog "${DOPTS[@]}" --menu "Which network interface?" 18 70 12 \
- $DEVICELIST 2>$TMP || exit
- INTERFACE=$(cat $TMP)
- fi
- echo INTERFACE=$INTERFACE
-}
-
-validip(){
- echo "$1" | egrep -q -e '[0-9]+\.[0-9]+\.[0-9]+.[0-9]+'
- return $?
-}
-
-get_network_info() {
- BACKEND_IP=$(echo $(ifconfig $INTERFACE | grep "inet addr" | tr ':' ' ') |
- cut -d ' ' -f 3)
- echo BACKEND_IP=$BACKEND_IP
- NAMESERVERS="$(awk '/^nameserver/{printf "%s ",$2}' /etc/resolv.conf)"
- echo NAMESERVERS=$NAMESERVERS
- GATEWAY="$(LANG=C LC_ALL=C route -n | awk '/^0\.0\.0\.0/{print $2; exit}')"
- echo GATEWAY=$GATEWAY
- NETWORK="${BACKEND_IP%.*}"
- echo NETWORK=$NETWORK
- HOST="${BACKEND_IP##*.}"
- echo HOST=$HOST
- NETMASK="$(LANG=C LC_ALL=C ifconfig $INTERFACE |
- awk '/[Mm]ask/{FS="[: ]*";$0=$0; print $8; exit}')"
- echo NETMASK=$NETMASK
-
- # See if we can determine the range of IP addresses currently allowed in
- # dhcpd.conf
-
- IPRANGE=( $(grep ^[[:space:]]*range /etc/dhcpd.conf |
- sed 's/range//g' | tr -d ';') )
-
- echo ${IPRANGE[@]}
- if [ $(echo ${IPRANGE[@]} | wc -w) -eq 2 ] ; then
- START=$(echo ${IPRANGE[0]} | tr '.' '\t' | cut -f 4)
- END=$(echo ${IPRANGE[1]} | tr '.' '\t' | cut -f 4)
- echo START=$START
- echo END=$END
- fi
-
- # Could not
-
- if [ -z "$START" -o -z "$END" ] ; then
- if [ "$HOST" -lt "20" ] ; then
- START=21
- END=26
- else
- START=11
- END=16
- fi
- fi
-
- IPRANGE_FROM=""
- IPRANGE_TO=""
-
- while [ -z "$IPRANGE_FROM" -o -z "$IPRANGE_TO" -o -z "$IPRANGE" ]
- do
- IPRANGE="$NETWORK.$START $NETWORK.$END"
- rm -f /tmp/iprange
-
- if ! dialog "${DOPTS[@]}" --clear --inputbox "Please enter the desired
- IP-Range of addresses that should be allocated by clients,
- separated by a single space." 10 75 "$IPRANGE" \
- 2> /tmp/iprange ; then
- exit
- fi
-
- IPRANGE=$(cat /tmp/iprange)
- echo IPRANGE=$IPRANGE
- IPRANGE_FROM="${IPRANGE%% *}"
- IPRANGE_TO="${IPRANGE##* }"
-
- for i in "$IPRANGE_FROM" "$IPRANGE_TO"
- do
- validip "$i" || IPRANGE=""
- done
- done
-}
-
-setup_dhcpd() {
- # Generate dhcpd.conf from template
-
- if [ ! -f /etc/dhcpd.conf.orig ] ; then
- mv -f /etc/dhcpd.conf /etc/dhcpd.conf.orig
- fi
-
- ALLNAMESERVERS=""
- for i in $NAMESERVERS; do
- ALLNAMESERVERS="${ALLNAMESERVERS:+$ALLNAMESERVERS,} $i"
- done
- echo ALLNAMESERVERS=$ALLNAMESERVERS
-
- cat >/etc/dhcpd.conf <<EOT
-# dhcpd.conf for LinHES Diskless Frontend
-
-# global settings
-## POF allow booting;
-allow bootp;
-default-lease-time 600;
-max-lease-time 7200;
-
-subnet ${NETWORK}.0 netmask ${NETMASK} {
- next-server $BACKEND_IP;
- filename "pxelinux.0";
- option subnet-mask ${NETMASK};
- range ${IPRANGE_FROM} ${IPRANGE_TO};
- ${ALLNAMESERVERS:+option domain-name-servers $ALLNAMESERVERS;}
- ${GATEWAY:+option routers $GATEWAY;}
-}
-EOT
-
- for (( fe = 0 ; fe < ${#frontend_names[@]} ; fe++ )) ; do
- echo "host ${frontend_names[$fe]} \
-{hardware ethernet ${frontend_macs[$fe]}; \
-fixed-address ${frontend_ips[$fe]};}" >> \
- /etc/dhcpd.conf
- done
-
- /sbin/add_service.sh dhcpd
- /sbin/sv restart dhcpd
-}
-
-setup_tftpd() {
-
- /sbin/add_service.sh tftpd
- /sbin/sv restart tftpd
-}
-
-check_delete_of_existing_nfsroot() {
- if [ -d $NFSROOT ] ; then
- if dialog "${DOPTS[@]}" --yesno "\
-There is already a directory $NFSROOT. Do you want to delete it and \
-rebuild it from scratch?" 10 70 ; then
- echo Deleting $NFSROOT
- rm -Rf $NFSROOT
- else
- echo "OK then, bye."
- exit
- fi
- fi
-}
-
-enable_mysql_and_backend_networking() {
- # Enable mysql networking on the backend.
-
- /sbin/sv stop mythbackend
-
- if grep -q ^bind-address /etc/my.cnf ; then
- echo "Commenting out bind-address."
- cp /etc/my.cnf /etc/my.cnf~
- cat /etc/my.cnf~ | sed 's/^skip-networking/#skip-networking/g' > \
- /etc/my.cnf
- /sbin/sv restart mysql
- else
- echo "Already commented out skip-networking."
- fi
-
- # Make sure that the backend ip settings in the mythtv mysql database have
- # the actual IP address of the backend rather than the loopback address.
- # Otherwise the frontend will not be able to connect to the backend.
-
- echo "Setting backend IP in mythtv's mysql settings"
- echo "
-UPDATE settings SET data='$BACKEND_IP' WHERE value='BackendServerIP';
-UPDATE settings SET data='$BACKEND_IP' WHERE value='MasterServerIP';" |
- mysql mythconverg
-
- /sbin/sv start mythbackend
-}
-
-export_usr() {
- # Ensure that the /usr directory is read-only exported.
-
- if ! grep -q ^/usr[[:space:]] /etc/exports ; then
- echo "Adding line for /usr in /etc/exports"
- echo "/usr *(ro,async,no_subtree_check)" >> /etc/exports
- else
- echo "Already added line for /usr in /etc/exports"
- fi
-}
-
-enable_nfs() {
- # Enable NFS.
-
- /sbin/add_service.sh nfsd
-
-}
-
-restart_nfs (){
-
- /usr/sbin/exportfs -r
-}
-
-export_nfsroot() {
- # Ensure that the NFSROOT directory is appropriately exported.
-
- if ! grep -q ^$NFSROOT[[:space:]] /etc/exports ; then
- echo "Adding line for $NFSROOT in /etc/exports"
- echo "$NFSROOT *(rw,no_root_squash,async,no_subtree_check)" >> /etc/exports
- else
- echo "Already added line for $NFSROOT in /etc/exports"
- fi
-}
-
-create_tftpboot_directory() {
- # Create the directory with the tftp stuff.
-
- echo "Creating /tftpboot directories"
- mkdir -p /tftpboot/pxelinux.cfg
-
- if [ ! -e /tftpboot/pxelinux.0 ] ; then
- cp -fv /usr/lib/syslinux/pxelinux.0 /tftpboot/pxelinux.0
- fi
-
- if [ ! -e /tftpboot/vmlinuz26 ] ; then
- cp -fv /boot/vmlinuz26 /tftpboot/vmlinuz26
- fi
-
- if [ ! -e /tftpboot/kernel26.img ] ; then
-
- echo "Building kernel miniroot"
- if [ -z "$(awk -F\" '$1 ~ /^MODULES=/ && $2 ~ /nfs/' /etc/mkinitcpio.conf)" ] ; then
- cp /etc/mkinitcpio.conf /etc/mkinitcpio.conf~
- sed -e '/^MODULES=/s/\"$/ nfs\"/' < /etc/mkinitcpio.conf~ > /etc/mkinitcpio.conf
- fi
- if [ -z "$(awk -F\" '$1 ~ /^HOOKS=/ && $2 ~ /net/' /etc/mkinitcpio.conf)" ] ; then
- cp /etc/mkinitcpio.conf /etc/mkinitcpio.conf~
- sed -e '/^HOOKS=/s/\"$/ net\"/' < /etc/mkinitcpio.conf~ > /etc/mkinitcpio.conf
- fi
- /sbin/mkinitcpio -g /tftpboot/kernel26.img
- fi
-}
-
-create_default_pxelinux_entry() {
- echo "\
- default linux
-
- label linux
- kernel vmlinuz26
- append initrd=kernel26.img rootfstype=nfs root=/dev/nfs nfsroot=$BACKEND_IP:$NFSROOT,v3,rsize=16384,wsize=16384 init=/sbin/runit ip=dhcp" \
- > /tftpboot/pxelinux.cfg/default
-}
-
-create_new_nfsroot() {
- # Prompt the user for the name of the NFSROOT.
-
- FRONTEND=
- NFSROOT=
-
- while [ -z "$FRONTEND" ] ; do
- if ! dialog "${DOPTS[@]}" --inputbox "Enter the hostname of the new
- diskless FE:" 0 0 2> /tmp/frontend_hostname ; then
- exit
- fi
-
- FRONTEND=$(cat /tmp/frontend_hostname)
- done
-
- # Prompt the user for the location of the NFSROOT.
-
- while [ -z "$NFSROOT" ] ; do
- NFSROOT=/nfsroot/$FRONTEND
-
- if ! dialog "${DOPTS[@]}" --clear --inputbox "Enter the location of the
- NFSROOT for the diskless FE:" \
- 0 0 "$NFSROOT" 2> /tmp/nfsroot_location ; then
- exit
- fi
-
- NFSROOT=$(cat /tmp/nfsroot_location)
- done
-
- check_delete_of_existing_nfsroot
-
- # Create the nfsroot directory that the FE will use as its root filesystem.
-
- echo "Creating the $NFSROOT directory."
- mkdir -p $NFSROOT
- for DIR in /* ; do
- if [[ "$DIR" != /myth && \
- "$DIR" != /mnt && \
- "$DIR" != /bin && \
- "$DIR" != /sbin && \
- "$DIR" != /tmp && \
- "$DIR" != /data && \
- "$DIR" != /usr && \
- "$DIR" != /proc && \
- "$DIR" != /sys && \
- "$DIR" != /storage && \
- "$DIR" != /var && \
- "$DIR" != /nfsroot && \
- "$DIR" != /tftpboot && \
- "$DIR" != /cdrom ]]
- then
- echo " Copying $DIR to $NFSROOT"
- cp -ax $DIR $NFSROOT
- fi
- done
-
- cp -alx /bin $NFSROOT
- cp -alx /sbin $NFSROOT
-
- cd $NFSROOT
-
- # Exclude specific bits of /var
-
- tar c /var \
- --exclude=/var/lib/dhcpcd \
- --exclude=/var/lib/locate \
- --exclude=/var/lib/mlocate \
- --exclude=/var/lib/named \
- 2> /dev/null | tar x 2> /dev/null
-
- for DIR in /myth /mnt /tmp /usr /proc /sys /cdrom /var/lib/mlocate ; do
- echo " Creating $DIR"
- tar c $DIR --exclude=$DIR/* 2> /dev/null | tar x 2> /dev/null
- done
-
-
-# chroot $NFSROOT mount -t nfs localhost:/usr /usr
- chroot $NFSROOT /sbin/remove_service.sh dhcpd
- chroot $NFSROOT /sbin/remove_service.sh lighttpd
- chroot $NFSROOT /sbin/remove_service.sh mysql
- chroot $NFSROOT /sbin/remove_service.sh mythbackend
- chroot $NFSROOT /sbin/remove_service.sh nfsd
- chroot $NFSROOT /sbin/remove_service.sh nmbd
- chroot $NFSROOT /sbin/remove_service.sh smbd
- chroot $NFSROOT /sbin/remove_service.sh tftpd
-# chroot $NFSROOT umount /usr
-
- # Update the fstab.
-
- cp $NSFROOT/etc/fstab $NFSROOT/etc/fstab~
- cat $NFSROOT/etc/fstab~ | grep -v ext3 |
- grep -v ^UUID= > $NFSROOT/etc/fstab
-
- echo "\
-$BACKEND_IP:/nfsroot / nfs defaults,nolock,auto,noatime 0 2
-$BACKEND_IP:/usr /usr nfs defaults,nolock,auto,noatime 0 2
-$BACKEND_IP:/myth /myth nfs defaults,nolock,auto,noatime 0 0
-" >> $NFSROOT/etc/fstab
-
- cp $NFSROOT/etc/rc.sysinit $NFSROOT/etc/rc.sysinit~
- sed -e '/^\/sbin\/minilogd/s/$/\n\n# Mount NFS early\n\/bin\/mount -a -t nfs/' \
- < $NFSROOT/etc/rc.sysinit~ > $NFSROOT/etc/rc.sysinit
-
- # Update networking
-
- echo $FRONTEND > $NFSROOT/etc/hostname
-
- cp $NFSROOT/etc/hosts $NFSROOT/etc/hosts~
- echo "127.0.0.1 $FRONTEND localhost" > $NFSROOT/etc/hosts
- cat $NFSROOT/etc/hosts~ | grep -v 127.0.0.1 >> $NFSROOT/etc/hosts
-
- cp $NFSROOT/etc/net/ifaces/eth0/options $NFSROOT/etc/net/ifaces/eth0/options~
- sed -e 's/^BOOTPROTO=.*/BOOTPROTO=none/' < $NFSROOT/etc/net/ifaces/eth0/options~ \
- > $NFSROOT/etc/net/ifaces/eth0/options
-
- # Update mysql settings
-
- cp /usr/share/mythtv/mysql.txt $NFSROOT/home/mythtv/.mythtv/mysql.txt
-
- if grep -q DBHostName=localhost $NFSROOT/home/mythtv/.mythtv/mysql.txt ; then
- echo "Setting database host in frontend's mysql.txt."
- cp $NFSROOT/home/mythtv/.mythtv/mysql.txt \
- $NFSROOT/home/mythtv/.mythtv/mysql.txt.orig
- cat $NFSROOT/home/mythtv/.mythtv/mysql.txt.orig |
- sed 's/DBHostName=localhost/DBHostName='$BACKEND_IP'/g' > \
- $NFSROOT/home/mythtv/.mythtv/mysql.txt
- else
- echo "Already set Database host in frontend's mysql.txt."
- fi
-
- chown mythtv:mythtv $NFSROOT/home/mythtv/.mythtv/mysql.txt
-
-# echo > $NFSROOT/etc/mythtv/Cards
-
- create_default_pxelinux_entry
- export_nfsroot
- restart_nfs
-
- dialog "${DOPTS[@]}" --msgbox "Boot your diskless FE
- and then re-run this script ($0) so that the MAC address
- of the Diskless FE can be obtained." 0 0
-
-}
-
-
-
-##########################################
-##########################################
-##
-## MAIN BODY OF SCRIPT ##
-##
-##########################################
-##########################################
-
-
-
-check_for_default_fe
-find_existing_diskless_fes
-
-get_network_interface
-get_network_info
-setup_tftpd
-setup_dhcpd
-enable_mysql_and_backend_networking
-export_usr
-create_tftpboot_directory
-enable_nfs
-
-# Restart nfs so that the newly exported /usr directory can be mounted. This
-# is required to create a new frontend.
-
-restart_nfs
-
-if [ ${#frontend_names[@]} -eq 0 ] ; then
- create_new_nfsroot
-else
- for (( fe = 0 ; fe < ${#frontend_names[@]} ; fe++ )) ; do
- frontend_options=( "${frontend_options[@]}" \
- "${frontend_names[$fe]} (MAC:${frontend_macs[$fe]} \
-IP:${frontend_ips[$fe]})" "" )
- done
-
-echo 0=${frontend_names[0]}
-echo 1=${frontend_names[1]}
-echo 2=${frontend_names[2]}
-echo 3=${frontend_names[3]}
-
- if ! dialog "${DOPTS[@]}" --menu "Select a frontend to delete or to create
- a new one." 0 0 0 "${frontend_options[@]}" \
- "New Frontend" "" 2> /tmp/selected_fe; then
- exit
- fi
-
- selected_option=$(cat /tmp/selected_fe)
-
- if [ "$selected_option" = "New Frontend" ] ; then
- create_new_nfsroot
- exit
- fi
-
-echo $selected_option
-echo ${frontend_options[0]}
-echo ${frontend_options[2]}
-echo ${frontend_nfsroots[@]}
-
- for (( fe = 0 ; fe < ${#frontend_names[@]} ; fe++ )) ; do
- if [ "$selected_option" = "${frontend_options[$(($fe*2))]}" ] ; then
- if dialog "${DOPTS[@]}" --yesno "Do you wish to delete the frontend
- with nfsroot ${frontend_nfsroots[$fe]}?" 0 0 ; then
- # Delete the nfsroot directory.
- rm -Rfv ${frontend_nfsroots[$fe]}
-
- # Delete the tftpboot pxe boot config file.
-
- hex_ip_address=$(printf "%02X%02X%02X%02X" \
- $(echo ${frontend_ips[$fe]} | tr '.' ' '))
- rm /tftpboot/pxelinux.cfg/$hex_ip_address
-
- # Remove reference to the frontend from the dhcp.conf
- cp -fv /etc/dhcpd.conf /etc/dhcpd.conf.bak
- grep -v "host ${frontend_names[$fe]}" /etc/dhcpd.conf.bak > \
- /etc/dhcpd.conf
- /sbin/sv restart dhcpd
- fi
- fi
- done
-fi
-