Installing OpenGnsys Server 1.1.1 (Espeto)
==========================================

Before installation
-------------------

OpenGnsys Server 1.1.1 (codename Espeto) is meant to be installed under Ubuntu Server 18.04 LTS or newer (some tests have been done on CentOS 7-based systems).

Network connection is needed in order to download the required packages, the source code and the preconfigured client.

Minimum storage requirements:
- 100 MB in /tmp (for the installation process)
- 600 MB in /var/lib/tftpboot (or /srv/tftp on new systems) for every installed ogLive client.
- 250 MB in the installation folder (/opt/opengnsys) plus 600 MB for every downloaded ISO image.
- Enough disk space for the image repository in /opt/opengnsys/images (it is recommended to mount it on an independent file system)



Installing
----------

To install OpenGnsys, run opengnsys_installer.sh script after unpacking the release file (opengnsys-release.tar.gz) or after downloading it directly from https://raw.githubusercontent.com/opengnsys/OpenGnsys/main/installer/opengnsys_installer.sh

Unpacking example:
	tar xvzf opengnsys-VERSION.tar.gz
	cd opengnsys/installer

Downloading examples:

    * Download with wget.
	wget https://raw.githubusercontent.com/opengnsys/OpenGnsys/VERSION/installer/opengnsys_installer.sh

    * Download with curl.
	curl https://raw.githubusercontent.com/opengnsys/OpenGnsys/VERSION/installer/opengnsys_installer.sh -o opengnsys_installer.sh


You must be root to run the installation script:
	sudo bash opengnsys_installer.sh


The following information will be requested in order to configure the access to the service (a default value will be introduced if no parameter is indicated):
    * MySQL root password
    * Web console user and OpenGnsys Super Administrator
    * Web console user's password
    * Client's password for accessing remote services
    * Choose which ogLive clients to install.

The following processes will be carried out:
    * Gathering of the basic network parameters.
    * Checking installed packages.
    * Downloading and installing dependencies.
    * Creating OpenGnsys basic folder sctructure.
    * Downloading code from the repository to a temporal folder (/tmp/opengnsys_installer). In upcoming releases this process will not be necessary.
    * Compiling and installing OpenGnsys services.
    * Basic configuration of OpenGnsys network services (DHCP, PXE and Samba) using the existing configuration templates.
    * Copying additional server management files.
    * Creating database and configuring OpenGnsys administration console web server.
    * Copying administration console pages.
    * Copying OpenGnsys client folder structure.
    * Downloading OpenGnsys client initial image.
    * Basic configuration of OpenGnsys services using network parameters.

Once the installation process is finished, you can start working with the system:
    * Configuring DHCP.
    * Adding information in the administration console.
    * Customizing administration scripts.
    * Creating start menus for the clients.



Updating / upgrading
--------------------

Warning: if you are going to upgrade OpenGnsys from a version earlier than 1.1.1 (Espeto), you must first upgrade Ubuntu to version 18.04 LTS and restart the server.

There is a system self-upgrading script with the following features:
    * Network connection is needed to obtain the latest updates / upgrades.
    * If the script updates itself, then it must be run once again.
    * Services depending on the operating system will not be updated.
    * Configuration files will not be modified.

You must be root to run this script:
    sudo /opt/opengnsys/lib/opengnsys_update.sh
 


Uninstalling
------------

There is also an uninstallation script to remove the OpenGnsys components:
    * OpenGnsys files and database will be deleted.
    * Operating system packages and their configuration files will be preserved.
    * The image folder and its content will not be deleted.

You must be root to run this script:
    sudo /opt/opengnsys/lib/opengnsys_uninstall.sh

