Install Server

From Free Geek Seattle
Revision as of 21:49, 18 April 2014 by Koanhead (talk | contribs)

We have a chronic shortage of install media at FCS Workshops, so this is a project to mitigate the situation.

What it does

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.

NOTE: currently the server is not configured as a Router. so netinst will not work. --Koanhead (talk) 12:47, 13 April 2014 (PDT)

References

This will probably also come in handy:


Clients

Any computer with the following:

  1. Wired network interface supporting PXE (check BIOS)
  2. Enough RAM to support kernel + RAMdisk (currently >1 GiB, will be more with Ubuntu)
  3. Architecture supported by install image (currently i386)

Server

Hardware

Requirements:

  1. At least one wired network interface
  2. Enough storage to hold OS, servers, and install images (currently fits in 8GiB)


OS

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"
  • /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. Will be removed from test server (remember, it's tiny) but probably a good idea to keep it on the production machine.
  • tmpmnt/ Directory for loop-mounting the iso images. You could serve the mounted images, but I prefer to copy the files.

tftp/

Files to be served over TFTP at boot. These include the kernel and initrd to boot into.

nfs/

Files to serve over NFS. Contents of the Trusty Tahr liveCD, basically.


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
  1. extract files from image
  2. 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: Currently debian netinst is set up, but none of the above ubuntu stuff is. Koanhead (talk) 14:49, 13 April 2014 (PDT)

/etc/default/tftpd

TFTP_DIRECTORY="/srv/tftp"