The project is based on the FAI (Fully Automatic Installation) project from Thomas Lange. FAI is a non-interactive system to install, customize and manage Linux operating-systems and software configurations on computers. For more information please visit fai-project.org.
The FAI-Administration-Tool is a simple web based application used to create client configurations for boot over PXE and afterwards installation with FAI. It has been developed with PHP, HTML, CSS, JavaScript and MySQL. For the design I used the CSS-Framework Bootstrap getbootstrap.com.
This project is just a test development. The following instructions and installation scripts are only tested with the Debian 8 release.
The FAI-Administration-Tool is free software, distributed under the terms of the GNU General Public License, version 3. There is no warranty, expressed or implied, associated with this product. Use at your own risk.
This project has been developed to simplify the use of FAI. The main functionality is to create some client configurations for PXE boot and configurations for installation with FAI. Moreover, you can monitor the installation over a frontend, which shows the current states during installation. The monitoring is based on the tool fai-monitor.
FAI packages from fai-project.org must be installed on the system. Furthermore the directory for PXE configurations must be on /srv/tftp/fai/pxelinux.cfg and the nfsroot directory on /srv/fai/nfsroot. If not, you must change the right paths in all files.
The frontend gets the Bootstrap files from a CDN. You also can download and host Bootstrap by yourself. For this you must change the link and sources in the header.php and the link in the index.php.
There is a script, configure.sh, that installs all missing packages for this tool (without FAI packages) and configures the environment. Use the script at your own risk, be careful. Executing the script leads to the following changes:
- It installs the webserver Apache, some PHP packages, the database MySQL and sudo.
- Package names: apache2 libapache2-mod-php5 php5 php5-common php5-json php5-ldap php5-mcrypt php5-mysql mysql-server sudo*
- It removes the index.html in /var/www/html/ and copy the frontend files to /var/www/html.
- If desired, it load a basic mysql-dump to the database.
- It adds a new group called fai and add the webserver user to it.
- It change permissions for the following directory to the group fai:
- /srv/tftp/fai/pxelinux.cfg
- /srv/fai/config/files/etc/network/interfaces
- /srv/fai/config/files/etc/hosts
- /srv/fai/config/class
For more information look at configure.sh. In case you are unsure whether you should use the script, you can of course perform the entire configuration by hand and step by step and only with the settings you want.
To allow the webserver user to start fai-monitor, you must add the following line to /etc/sudoers (use visudo):
- www-data ALL=(root) NOPASSWD: /usr/sbin/fai-monitor
It is possible to use LDAP to login to the frontend. You can edit the LDAP settings in login.php. If you don't want to use LDAP you can login without using a name or password.
On this side, you can create the client configurations. Note: The FAI-Classes you can add, are only the classes that won’t be added dynamically during installation. Currently the choice of a dynamic IP assignment doesn’t create a network and host configuration.
This is an overview of all classes in your database with a short description.
The monitoring view gives you feedback about the current state during the installation. With AJAX the states are continuously updated. This side is based on the tool fai-monitor. Furthermore, you see whether fai-monitor is running or not.
This view represents a table of all created client configurations. Note: The classes shown in this table are only the ones that have been added in the formular view (meaning: not dynamically added).