Operating System Configuration

QuadlogSCADA is currently tested to operate on a Debian GNU/Linux, both stable and testing versions. In time, it is expected testing will be extended to other systems such as Mac OS X and BSD variants. It is not expected that QuadlogSCADA will operate on Microsoft Windows due to Windows not supporting certain modules.

Server and Display Client

It is possible to have a computer configured as a SCADA server as well being a display client. In this instance, it is advised that a separate user account is created for the display client, to maintain some degree of isolation between the display client user and QuadlogSCADA components. The user name for the display client can be anything appropriate, and is generally only used to run a web browser to view the local SCADA system.

Headless Server

Alternatively, the SCADA server may reside on its own stand-alone system, headless with no keyboard or display. In this case, a display client user must then connect to the SCADA server via another system connected by network or Internet. All administrative functions must also be performed remotely, generally via SSH protocol.

OS Install

This installation follows the former, where the computer requires a display and keyboard/ long-tailed rodent, so a fairly typical computer hardware setup.

Download and install latest stable Debian GNU/Linux with desktop environment as appropriate. Install according to the instructions outlined on the Debian site.

Setup quadlog account

During the operating system installation, set up the main account, quadlog and with root privileges. This will be the main administrative account for the quadlogSCADA install and where the installation of various software components will take place.

Alternatively, if your system is already set up, then create the quadlog account. The quadlog account needs to be in the sudoers group to allow administrative functions.

Note

Editing system files requires administrative permissions, such as root.
As such, proceed each console command with sudo.
$ useradd -m quadlog
$ usermod -a -G sudo quadlog

Perform the remainder of this installation logged in as user quadlog.

SSH

During installation of the operating system, it is also possible to enable the SSH server. SSH access is always a worthwhile thing to do, especially for any server to allow remote access. For headless servers, having SSH is virtually a must.

GRUB Boot Loader

To facilitate a faster boot time on system power up, the GRUB boot loader can be modified. Firstly, the wait period for user interaction, GRUB_TIMEOUT can be set to zero seconds. Additionally, include GRUB_HIDDEN_TIMEOUT=0. Secondly, GRUB can be confgured to use a simple console based screen rather than a graphical screen.

While editing the GRUB configuration, place in there a command that is generally required by Redis-Server, transparent_hugepage = never.

For a little distraction or if you just wish to know more about GRUB. https://en.wikipedia.org/wiki/GNU_GRUB

Hint

The system text editor nano is used, though choose your preferred editor.

$ nano /etc/default/grub
GRUB_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_CMDLINE_LINUX_DEFAULT=”transparent_hugepage=never quiet”
GRUB_TERMINAL=console

Then update the GRUB bootloader.

$ update-grub

Auto Login

If the system is to be configured as a dedicated full time server, then there some options around how the system boots up.

If the display client user is required to be logged in at all times, then set this user to be automatically logged in on system boot. If not, then the display client user will need to manually log in.

To have a display client automatically logged in during system boot, edit the display manager daemon configuration file. By default, Debian uses the ‘lightdm’ display manager, though it is possible to use other display managers such as ‘gdm3’ as well.

While ‘gdm3’ is light-weight and is a lovely greeter display manager, it will need to unlock the keyring during login, which can make auto login of the client user more problematic.

Preference is for the default ‘lightdm’ as it works well for this situation.

For example, if using gdm3, edit

$ nano /etc/gdm3/daemon.conf
AutomaticLoginEnable = true
AutomaticLogin = user, where user is the display client user.

Or alternatively, configure a timed login which then allows admin or other users to grab the login greeter on system boot.

Network Interface

To be able to remotely access this system via SSH and since this system will be a HTTP web server, a static IP address will be need to be configured.

TODO - Explain how to do this.