JLinux



JLinux is an operating system based on linux designed for central management of software with an infinite and continuous lifecycle.
The software is tested and maintained in accordance with ISO27001 and NIS2. Maintenance is performed automatically during each servers configured maintenance window. During this maintenance window, which can be for a second or minutes, the monitoring system automatically pauses alerts.
If an update failed, the management system is notified in real time triggering alerts via JService.

JLinux uses multifactor authentication based on JID.

JLinux is maintained by the package manager jlinux-update which is supervised by JService.
Jlinux-update can run in central orchestrated or local stand-alone mode. In central mode all services and bootstrap config is configured from the orchestration portal.


To update software manually:
jlinux-update update

To update software and deployments when in orchestrated mode:
jlinux-update all

To check if there are pending updates:
jlinux-update check

To install a package it can either be added to /etc/app/jlinux/updatelist for continuous updates, or installed one-type using:
jlinux-update install <package> (optional version)




JLinux package structure

A package can contain anything from a single application to a collection of many. It is preferable to not make a huge monolithic/static package containing every single dependency because this will make it more time consuming to update and maintain the system.
The folder structure of this package is as following

/usr/app/testpackage/1.0/

For software using autoconf, the above structure can easily be achieved using
# configure --prefix=/usr/app/<NAME>/<VERSION> --sysconfdir=/etc/app/<NAME> --localstatedir=/var/app/<NAME>

This folder structure is not required, but suggested in order to structure standard packages.

Deploying JLinux packages

Deploying new packages to the repository is done using the jlinux-deploy tool.

jlinux-deploy <username> <password> <path to private key> <.tar.gz file or package root path> <package name> <package version> <description>

A package can be either public or private. Public means that anyone can download it, while private is filtered on servers belonging to customer /  service ID.