Talk:Install Server
I'm going to post a really basic shell script here to replicate the setup I have on headwaiter (the install on which this article is based). I will also place the file in the Special:ListFiles section so it will be wget-able. Later there will be a more refined, general-purpose script on our github.
install-server-setup.sh
!#/bin/bash # run this as root, but READ IT FIRST. # BEFORE you run this, edit the ./interface-changes.txt file. # if you don't see that file, don't run this script, it won't work without that file present. But it WILL break things. apt-get install isc-dhcp-server tftpd-hpa nfs-kernel-server cp /etc/network/interfaces /etc/network/interfaces.old cat ./interface-changes > /etc/network/interfaces echo 'INTERFACES="eth0" >> /etc/default/isc-dhcp-server echo '/srv/nfs/live-files/i386' >> /etc/exports mkdir /srv mkdir /srv/tftp mkdir /srv/nfs mkdir /srv/images #set up tftp boot mkdir /srv/tftp/i386 cd /srv/images/ wget -R -c7 http://archive.ubuntu.com/ubuntu/dists/trusty/main/installer-i386/current/images/netboot/ cp -av ./netboot ../tftp/i386 cd /srv/tftp/i386/pxelinux.cfg touch default echo "include trusty-bootmenu.cfg" >> default echo "default ubuntu-installer/i386/boot-screens/vesamenu.c32" >> default echo "prompt 0" >> default echo "timeout 100" >> default cd /srv/tftp/ touch trusty-bootmenu.cfg echo "menu hshift 13" >>trusty-bootmenu.cfg echo "menu width 49" >>trusty-bootmenu.cfg echo "menu margin 8" >>trusty-bootmenu.cfg echo "menu title Trusty NetBoot Menu" >>trusty-bootmenu.cfg echo "include ubuntu-installer/i386/boot-screens/stdmenu.cfg" >>trusty-bootmenu.cfg echo "menu begin Cool options" >>trusty-bootmenu.cfg echo " default livei386" >>trusty-bootmenu.cfg echo " label livei386" >>trusty-bootmenu.cfg echo " menu label Xubuntu 14.04 Live 32bit" >>trusty-bootmenu.cfg echo " kernel ubuntu-livecd-boot/i386/vmlinuz" >>default echo " append boot=casper netboot=nfs nfsroot=192.168.0.1:/srv/nfs/live-files/i386 initrd=ubuntu-livecd-boot/i386/initrd.lz -- splash quiet" >>trusty-bootmenu.cfg echo " label liveamd64" >>trusty-bootmenu.cfg echo " menu label Xubuntu 14.04 Live 64bit" >>trusty-bootmenu.cfg echo " kernel ubuntu-livecd-boot/amd64/vmlinuz" >>trusty-bootmenu.cfg echo " append boot=casper netboot=nfs nfsroot=192.168.0.1:/srv/nfs/live-files/amd64 initrd=ubuntu-livecd-boot/amd64/initrd.lz -- echo "splash quiet" >>trusty-bootmenu.cfg echo "menu end" >>trusty-bootmenu.cfg #configure dhcpd cd /etc/dhcp mv dhcp.conf dhcp.conf.old echo "ddns-update-style none; " >>dhcp.conf echo "# option definitions common to all supported networks..." >>dhcp.conf echo -e "option domain-name \"$HOSTNAME.local\";" >>dhcp.conf echo "option domain-name-servers 8.8.8.8, 4.4.2.1;" >>dhcp.conf echo "default-lease-time 600;" >>dhcp.conf echo "allow booting;" >>dhcp.conf echo "subnet 192.168.0.0 netmask 255.255.255.0 {" >>dhcp.conf echo " range 192.168.0.3 192.168.0.127;" >>dhcp.conf echo " option broadcast-address 192.168.0.255;" >>dhcp.conf echo " option routers 192.168.0.1;" >>dhcp.conf echo -e " filename \"pxelinux.0\";" >>dhcp.conf echo "}" >>dhcp.conf echo "group {" >>dhcp.conf echo " next-server 192.168.0.1;" >>dhcp.conf echo " host tftpclient {" >>dhcp.conf echo -e " filename \"pxelinux.0\";" >>dhcp.conf echo " }" >>dhcp.conf echo "}" >>dhcp.conf #configure NFS cd /srv/images/ wget http://releases.ubuntu.com/12.04.4/ubuntu-12.04.4-desktop-i386.iso mkdir /srv/nfs/live-files/i386/ touch i386-temp mount -o loop ubuntu-12.04.4-desktop-i386.iso i386-temp cp -av i386-temp/ /srv/nfs/live-files/i386/ echo "/srv/nfs/live-files/i386 *(ro,async,no_root_squash,no_subtree_check)" >> /etc/exports #configuration complete, (re)start servers service tftpd-hpa restart service isc-dhcp-server restart exportfs -a
interface-change.sh
#wired - services listen on this iface auto allow-hotplug eth0 iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 up /etc/init.d/tftpd-hpa start up /etc/init.d/isc-dhcp-server start up exportfs -a #radio - connected to internets allow-hotplug wlan0 iface wlan0 inet dhcp wpa-ssid "Network-essid" wpa-psk "wpa-password"