Aller au contenu
JelinaJelina DocumentationDocumentation technique
Retour au site officiel

Applications natives et ProgramSet

De nombreux programmes industriels s’exécutent de manière traditionnelle : scripts d’acquisition, démons de conversion de protocoles et binaires tiers. Leur lancement manuel et leur fonctionnement isolé pouvaient laisser les défaillances inaperçues. JelinaOS les intègre dans une gestion déclarative unifiée, le ProgramSet, pour leur apporter une administration par configuration, une récupération automatique et un démarrage avec le système.

Un ProgramSet est un ensemble d’applications non conteneurisées. Chaque application est décrite par une configuration déclarative :

  • Démarrage : commande, répertoire de travail et identité d’exécution ;
  • Source : paquet téléchargé depuis l’adresse déclarée dans la Release ;
  • Exécution : stratégie de redémarrage, variables d’environnement et signal d’arrêt ;
  • Dépendances : ordre de démarrage, exclusions mutuelles et dépendances fortes ou faibles ;
  • Surveillance : limites de redémarrage, maintien après sortie et commandes avant ou après exécution.

Une fois configurées, les applications sont gérées par le système sans scripts de démarrage manuels.

Le ProgramSet se configure dans le cloud ou par l’interface locale ; l’agent en assure l’exécution :

Point d’entrée Contexte Description
Release cloud, recommandée Connexion à JelinaCloud Déclarer le ProgramSet à la création d’une Release et le distribuer en masse
Interface de gestion locale Environnement local ou isolé Transmettre la configuration cible par l’interface de l’équipement

Exemple de déclaration d’un ProgramSet dans une Release cloud, avec distribution du paquet par une adresse de téléchargement :

programs:
collector:
uri: http://files.example.com/collector/collector.tar.gz # Adresse de téléchargement du paquet
command: collector --config /data/collector.conf
running: true
restart: always
environment:
SITE_ID: plant-01
working_directory: /opt/collector
user: root
  • command : commande de démarrage, obligatoire ;
  • running : activation de l’exécution, true par défaut ;
  • restart : stratégie de redémarrage ; always permet une reprise automatique après sortie anormale ;
  • environment : variables d’environnement ;
  • working_directory : répertoire de travail.
Paramètre Description
uri Adresse de téléchargement du paquet
command Commande de démarrage obligatoire
running Exécution activée, true par défaut
restart Stratégie de redémarrage : no, on-failure, always, etc.
environment Variables d’environnement
working_directory Répertoire de travail
user / group Identité d’exécution
after / before, wants / requires, conflicts Dépendances et ordre
start_limit_*, remain_after_exit, exec_start_*, etc. Surveillance et récupération

Voir Compatibilité et extensions docker-compose pour tous les champs.

Configuration avancée : démarrage automatique et conditions

Section intitulée « Configuration avancée : démarrage automatique et conditions »
programs:
myapp:
command: run.sh
restart: always
Install:
WantedBy: multi-user.target # Démarrage automatique
Unit:
ConditionPathExists: /data/app/config.json # Condition : démarrer uniquement si le fichier de configuration existe

L’agent gère les applications du ProgramSet en tant que services système. Leurs noms suivent les conventions du système ; consultez les noms réels avec la commande d’état avant d’agir :

Terminal window
systemctl status <nom-service-programme> # Afficher l’état ; utiliser le nom de service indiqué par l’équipement
systemctl restart <nom-service-programme> # Redémarrer
systemctl stop <nom-service-programme> # Arrêter
  • Programmes industriels traditionnels : moderniser la gestion des démons d’acquisition, de contrôle et de communication ;
  • Scripts et outils : intégrer les scripts temporaires dans une gestion formelle avec récupération automatique ;
  • Architecture mixte : faire coopérer applications natives et conteneurs dans une même orchestration.
Besoin Recommandation
Accès direct au matériel, fortes exigences temps réel Application native, ProgramSet
Patrimoine de programmes existants, coût de migration sensible Application native, ProgramSet
Plusieurs langages et dépendances, isolation de l’environnement Application conteneurisée
Microservices modernes et itérations rapides Application conteneurisée