= GRAM Offline Installation Guide For Juno Version = [[PageOutline(2-100,Table of Contents,inline,unnumbered)]] == Introduction == Refer to the Online Installation. This document will only talk about what is different if you are trying an installation where you are not connected to the internet. It is important that NTP is configured on your rack and that DNS or the host files are functioning on the nodes correctly. == GRAM and !OpenStack Installation and Configuration == 1. '''Install fresh Ubuntu 14.04 image on control, network and N compute nodes''' - From among the rack nodes, select one to be the 'control', one to be the network and others to be the compute nodes. The control node should have at least 4 NIC's and the network and compute should have at least 3 NIC's. - Install Ubuntu 14.04 image on each selected rack. Server version is preferred and the biosdevname=0 passed on booting for the kernel. * When installing the operating system, before installing the server, hit F6 (Other Options) and type "biosdevname=0" and continue with installation. - Create 'gram' user with sudo/admin privileges - If there are additional admin accounts, you must manually install omni for each of these accounts. - set up ssh keys to allow access to the network node from the control node. On the control node: {{{ ssh-keygen }}} Then copy the the contents of /home/gram/.ssh/id_rsa.pub of the control node to /home/gram/.ssh/authorized_keys on the network node, and change the permissions of this file as follows: {{{ cat id_rsa.pub >> authorized_keys chmod 600 /home/gram/.ssh/authorized_keys }}} 1a. ''' Set up dummy addresses on network interfaces and check connectivity with pings''' 1b. ''' Set up a local repository with the packages and dependencies''' You will get a tar file with all the dependencies necessary for GRAM - one for the control node, another for the network node, and another one for the compute node. You will also get a tar file of python dependencies for the control node that somehow are not captured by the dependency package. - unpack gram_pkgs.gz {{{ cd /home/gram/ tar -zxvf gram_pkgs.tar.gz }}} - add gram_pkgs to the list of repositories: Edit "/etc/apt/sources.list" add the line {{{ deb file:/home/gram/pkgs ./ }}} and comment off all other sources. - run the command {{{ sudo apt-get update }}} - unpack gram_python.tgz Flask needed this python dependencies and needed to installed with pip in this order. {{{ cd /home/gram tar xvzf ARL-PYTHON.tgz (should get an ARL-PYTHON directory) pip install ./ARL-PYTHON/Werkzeug-0.9.6.tar.gz pip install ./ARL-PYTHON/itsdangerous-0.24.tar.gz pip install ./ARL-PYTHON/Jinja2-2.7.3.tar.gz pip install ./ARL-PYTHON/Flask-0.10.1.tar.gz }}} 2. '''Continue with the instructions on the wiki:GENIRacksHome/OpenGENIRacks/InstallationGuideJuno''' 3. '''Installing OS Images : Only on the Control Node''' At this point, OS images must be placed in !OpenStack Glance (the image repository service) to support creation of virtual machines. Since you are offline you must be able to provide the images via USB or CD. == Notes useful for Offline Installation == * To create a tar file for offline Ubuntu installation, follow the instructions on this page [wiki:MakeLocalUbuntuRepo Create Local Ubuntu Repository] * To create a tar file for offline CentOS installation, follow the instructions on this page [wiki:MakeLocalCentOSRepo Create Local CentOS Repository] . * To create a tar file for offline python package installation, follow the instructions on this page [wiki:MakeLocalPythonRepo Create Local Python Repository]