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.
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.
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,
quadlogand 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.
NoteEditing 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
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_TIMEOUTcan 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
The system text editor nano is used, though choose your preferred editor.$ nano /etc/default/grubGRUB_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT=0 GRUB_CMDLINE_LINUX_DEFAULT=”transparent_hugepage=never quiet” GRUB_TERMINAL=console
Then update the GRUB bootloader.$ update-grub
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.confAutomaticLoginEnable = 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.
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.