Install Server: Difference between revisions
No edit summary |
No edit summary |
||
Line 40: | Line 40: | ||
==Hardware== | ==Hardware== | ||
Intel P4, 1024GB RAM, 160GB | little is needed. Intel P4, 1024GB RAM, 160GB HDD are sensible. More than can saturate available NIC is probably not useful. | ||
Two NICs | Two NICs | ||
===PROBLEMS=== | ===PROBLEMS=== | ||
Kept for nostalgia, the machine in question has gone missing: | |||
;GRUB is not properly installed, machine does not boot normally. Use grub-rescue prompt to boot: | ;GRUB is not properly installed, machine does not boot normally. Use grub-rescue prompt to boot: | ||
Line 58: | Line 59: | ||
:squid-deb-proxy | :squid-deb-proxy | ||
=== | ===Software=== | ||
DHCP server. Example uses isc-dhcp-server, dnsmasq is also alleged to work. | |||
TFTP server. For Debian this is tftpd-hpa. | |||
NFS server. nfs-kernel-server | |||
Optionally: caching proxy server for updates. Squid or apt-cacher or similar. | |||
==OS== | ==OS== | ||
Debian Wheezy | The examples here assume Debian Wheezy. | ||
==Files== | ==Files== | ||
Line 82: | Line 86: | ||
wpa-psk "whateveritis" | wpa-psk "whateveritis" | ||
</pre> | </pre> | ||
Make sure that wicd or NetworkManager or similar automaticity is disabled, or your manual settings are likely to suddenly stop working... | |||
*/etc/default/ | */etc/default/ | ||
Line 91: | Line 97: | ||
===/srv/=== | ===/srv/=== | ||
Top-level of files to be served. | Top-level of files to be served. | ||
*xubuntu-14.04-i386.iso - downloaded ISO image | *xubuntu-14.04-i386.iso - downloaded ISO image. | ||
*tmpmnt/ Directory for loop-mounting the iso images. You could serve the mounted images, but I prefer to copy the files. | *tmpmnt/ Directory for loop-mounting the iso images. You could serve the mounted images, but I prefer to copy the files. | ||
Revision as of 14:24, 31 October 2014
What's it for?
We have a chronic shortage of install media at FCS Workshops, so this is a project to mitigate the situation.
You set up a computer to boot from its network interface, plug in a network cable on the server's subnet, and boot into a Xubuntu Live session.
Status and To-Do
- Where is the server? It is not seen on the network and the physical location is UNKNOWN
- The server should have a flawless boot operation. Currently not the case.
- The server should have Xubuntu 14.04 (Trusty) boot/install. Currently it has (just) 12.04 (Precise)
- The server should be configured to auto-update to ensure security vulnerabilities are avoided.
- The server data & configuration should ideally be backed up somewhere
References
- https://wiki.debian.org/PXEBootInstall
- http://www.serenux.com/2010/05/howto-setup-your-own-pxe-boot-server-using-ubuntu-server/
- http://www.serenux.com/2010/05/howto-get-an-ubuntu-live-cd-to-boot-off-a-pxe-server/
- https://wiki.ubuntu.com/LiveCDNetboot
- http://www.syslinux.org/wiki/index.php/PXELINUX
- https://www.debian.org/releases/stable/i386/ch04s05.html.en
This will probably also come in handy:
- https://help.ubuntu.com/community/LiveCDCustomization
- https://wiki.ubuntu.com/TrustyTahr/ReleaseNotes
- http://cdimage.ubuntu.com/netboot/14.04/
- http://cdimage.ubuntu.com/xubuntu/releases/14.04/release/
Clients
Any computer with the following:
- Wired network interface supporting PXE (check BIOS)
- Enough RAM to support kernel + RAMdisk (currently >1 GiB, will be more with Ubuntu)
- Architecture supported by install image (currently i386)
Server
Hardware
little is needed. Intel P4, 1024GB RAM, 160GB HDD are sensible. More than can saturate available NIC is probably not useful. Two NICs
PROBLEMS
Kept for nostalgia, the machine in question has gone missing:
- GRUB is not properly installed, machine does not boot normally. Use grub-rescue prompt to boot
- http://gnu-linux.org/grub-rescue-commands.html
- https://www.gnu.org/software/grub/manual/html_node/GRUB-only-offers-a-rescue-shell.html
- https://www.gnu.org/software/grub/manual/html_node/Command_002dline-and-menu-entry-commands.html
- This may be due to incorrect BIOS / bus settings. There are only 2 SATA connectors on the mobo, and the drive only shows as Second Master or Fourth Master IIRC...
- Not currently configured to share internet access with DHCP clients.
- use squid?
- Synaptics touchpads don't seem to work with Trusty Tahr? Perhaps the iso is corrupt?
- Nope, it's a known bug in Trusty: https://bugs.launchpad.net/bugs/1265885
- Wishlist
- set up an APT cache.
- https://help.ubuntu.com/community/Apt-Cacher-Server
- squid-deb-proxy
Software
DHCP server. Example uses isc-dhcp-server, dnsmasq is also alleged to work. TFTP server. For Debian this is tftpd-hpa. NFS server. nfs-kernel-server
Optionally: caching proxy server for updates. Squid or apt-cacher or similar.
OS
The examples here assume Debian Wheezy.
Files
- /etc/network/interfaces
#wired allow-hotplug eth0 iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 #radio allow-hotplug wlan0 iface wlan0 inet dhcp wpa-ssid "FCSTEAMLAB" wpa-psk "whateveritis"
Make sure that wicd or NetworkManager or similar automaticity is disabled, or your manual settings are likely to suddenly stop working...
- /etc/default/
Edit isc-dhcp-server to specify which interface to use. Also found here is defaults for tftpd which so far do not need to be altered from what the package writes.
- /etc/exports
Config file for NFS. Run
exportfs -a
after editing this file.
/srv/
Top-level of files to be served.
- xubuntu-14.04-i386.iso - downloaded ISO image.
- tmpmnt/ Directory for loop-mounting the iso images. You could serve the mounted images, but I prefer to copy the files.
DHCP
isc-dhcp-server with the following configs:
/etc/dhcp/dhcpd.conf
# lines retained from default preceded by a comment (like this one) ddns-update-style none; # option definitions common to all supported networks... option domain-name "installment.local"; option domain-name-servers 8.8.8.8, 4.4.2.1; default-lease-time 600; max-lease-time 7200; allow booting; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.3 192.168.0.127; option broadcast-address 192.168.0.255; option routers 192.168.0.1; filename "pxelinux.0"; } group { next-server 192.168.0.1; host tftpclient { filename "pxelinux.0"; } }
/etc/default/isc-dhcp-server
INTERFACES="eth0"
TFTP
tftpd-hpa
http://releases.ubuntu.com/12.04.4/ubuntu-12.04.4-desktop-i386.iso http://archive.ubuntu.com/ubuntu/dists/trusty/main/installer-i386/current/images/netboot/
http://mirror.anl.gov/pub/ubuntu-iso/CDs-Xubuntu/14.04/release/xubuntu-14.04-desktop-i386.iso
- extract files from image
- place files in tftpd directory
mkdir -p /srv/tftp/ubuntu-livecd-boot/i386 mkdir -p /srv/ubuntu-livecd/i386 cp -av /media/cdrom/* /srv/ubuntu-livecd/i386 cp -av /media/cdrom/.disk /srv/ubuntu-livecd/i386 cp -av /media/cdrom/casper/initrd.lz /srv/tftp/ubuntu-livecd-boot/i386 cp -av /media/cdrom/casper/vmlinuz /srv/tftp/ubuntu-livecd-boot/i386
NOTE Only i386 works right now. Koanhead (talk)
/etc/default/tftpd
TFTP_DIRECTORY="/srv/tftp"
NFS
/etc/exports
# /etc/exports: the access control list for filesystems which may be exported # to NFS clients. See exports(5). # # Example for NFSv2 and NFSv3: # /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check) # # Example for NFSv4: # /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check) # /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check) # #Live ubuntu i386 /srv/nfs/live-files/i386 *(ro,async,no_root_squash,no_subtree_check) /srv/nfs/live-files/amd64 *(ro,async,no_root_squash,no_subtree_check)