== OS Installation == [[TOC( dSite*, depth=3)]] === Base OS installation === Our platform is built on top of [http://mirrors.mit.edu/ubuntu-releases/12.04.4/ Ubuntu 12.04.04]. The installation iso used was [http://mirrors.mit.edu/ubuntu-releases/12.04.4/ubuntu-12.04.4-server-amd64.iso ubuntu-12.04.4-server-amd64.iso]. The following settings were applied during the installation process: 1. Choose relevant language and keyboard settings 2. We expect '''eth2''' is the up-link interface (used to internet access and remote control) and should be interface chosen for installation. It is also expected that '''eth2''' will be connect to a network that will assign it a dhcp address. 3. Specify a local ''USERNAME/PASSWORD'' combo. Please keep track of this information, it will be required for all setup procedures later on. 4. Specify Manual partitioning and partition the disk as follows (be sure to unmount /dev/sda when asked to do so): || Number || Type || Size || Flags || File System || Mount Point || || 1 || Primary || 20GB || Bootable || Ext4 || / || || 2 || Primary || 20GB || || Ext4 || /home || || 3 || Primary || 116GB || || Ext4 || /export || || 4 || Primary || 4GB || || Swap || || 5. Leave the http Proxy field empty 6. specify '''NO AUTOMATIC UPDATES'''. This is important as the auto-update process may break some orbit packages. 7. Choose opensssh server in the task selection menu. All other tasks will be installed as seprate packages and do not need to be specified here. 8. Answer Yes to installing grub on the local boot disk 9. Remove the media (and the drive if needed) and reboot. '''Note:''' * If no explicit instruction is given for a setting, it's safe to assume the default should work. * This version of Ubuntu does not work well with USB flash disk installations, The best results are with a burned CD/DVD and a USB CD/DVD drive as a the boot medium,[https://lists.ubuntu.com/archives/foundations-bugs/2014-February/182463.html refrenced here]. === Configure Host Name === A important initial step specifying the hostname of the console. Many of the later services '''will depend''' heavily on this name resolution. It is assumed that the general form of the console's fully qualified domain name (FQDN) is ''console.geni.DOMAIN'', where ''DOMAIN'' comes from your organization. As an example the ''DOMAIN'' for Rutgers is ''rutgers.edu''. To set the host name edit the follow files (here we assumed that ''DOMAIN = rutgers.edu''): * ''/etc/hosts'' - Local file for name resolution. e.g. {{{ 127.0.0.1 localhost 127.0.1.1 console.geni.rutgers.edu console # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters }}} * ''/etc/hostname'' - Modify this file to properly resolve the hostname of the machine. e.g. {{{ console.geni.rutgers.edu }}} === Configure Networking === For proper operation, the console is expected to be connected to multiple networks. Their respective names and purposes are: * Data - For experiment traffic, Ideally this is in a separate switch plane to avoid mixing / clobbering control traffic (''default IP range: 10.20.X.Y'') * CM - Low speed network for soft control of power and terminal output of each node (''default IP range: 10.1.X.Y'') * Control - Management and control traffic to the Nodes. This network is used for imaging and is needs to be fast. Ideal on a non-blocking switch with good back plane throughput. (''default IP range: 10.10.X.Y'') * GENI Control - GENI-wide control network that provides global BS management services (''default IP range: 10.3.U.X'') * GENI Data - GENI-wide network for wireless client traffic (''default IP range: 10.43.U.Y'') * Outside - External access for the console. Mostly for remote control and package updates. The addresses for GENI networks have to confirm to the [wiki:/aaOperations#IPaddressassignment global address assignment]. To establish access to proper address spaces, we put appropriate rules in the ''/etc/network/interfaces'' file. We assume the following mapping of interfaces to subnets: ==== Single Basestation Site (all services on the console) ==== In this confgiuration, the console needs access to all 6 subnets and needs at least one interface to be configured as a trunk with multiple VLANs. In this example configuration file, VLAN 4004 is used for local Data subnet, VLAN 4002 is used for GENI Control and VLAN 4000 is used for GENI Data (note that this interface really doesn't need to have an IP address since it is used mainly for bridging outside world to the internal OVS/Click datapath ''switch''). {{{ # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The Control network interface auto eth3 iface eth3 inet static address 10.10.0.254 netmask 255.255.255.0 broadcast 10.10.0.255 # The Data network interface auto eth0.4004 iface eth0.12 inet static address 10.20.0.254 netmask 255.255.255.0 broadcast 10.20.0.255 # The GENI-Control network interface # The address assignment is given in # http://wimax.orbit-lab.org/wiki/aaOperations#IPaddressassignment auto eth0.4002 iface eth0.4000 inet static address 10.3.0.254 netmask 255.255.255.0 broadcast 10.3.0.255 # The GENI-Data network interface # The address assignment is given in # http://wimax.orbit-lab.org/wiki/aaOperations#IPaddressassignment auto eth0.4000 iface eth0.4000 inet manual pre-up ifconfig $IFACE up post-down ifconfig $IFACE down # The CM network interface auto eth1 iface eth1 inet static address 10.1.0.254 netmask 255.255.255.0 broadcast 10.1.0.255 # The primary outside access network interface #(assumes NAT-ed and firewall-ed configuration) auto eth2 iface eth2 inet static address 10.50.0.249 netmask 255.255.0.0 gateway 10.50.0.1 dns-nameservers 8.8.8.8 }}} ==== Multiple Basestations Site (separate BS controller server) ==== {{{ # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The Control network interface auto eth3 iface eth3 inet static address 10.10.0.254 netmask 255.255.255.0 broadcast 10.10.0.255 # The Data network interface auto eth0 iface eth0 inet static address 10.20.0.254 netmask 255.255.255.0 broadcast 10.20.0.255 # The CM network interface auto eth1 iface eth1 inet static address 10.1.0.254 netmask 255.255.255.0 broadcast 10.1.0.255 # The primary outside access network interface #(assumes NAT-ed and firewall-ed configuration) auto eth2 iface eth2 inet static address 10.50.0.249 netmask 255.255.0.0 gateway 10.50.0.1 dns-nameservers 8.8.8.8 }}} '''Note:''' The '''''dns-nameservers''''' is a temporary setting, we'll need to reconfigure the console to resolve against it self once the DNS service is installed === Additional Instructions when using 14.04 instead === Also edit /etc/default/grub, and make sure the lines match the below: GRUB_CMDLINE_LINUX_DEFAULT="biosdevname=0" GRUB_CMDLINE_LINUX="biosdevname=0" Then run sudo update-grub