- Présentation de Jelina
- JelinaCloud
- Exemples de configuration
Exemple de déploiement applicatif sur un équipement
Cette page explique le déploiement d’applications avec JelinaCloud.
Les captures proviennent de documents réels du produit et montrent les configurations et points d’accès. Les noms d’équipements, versions et services sont ceux de l’exemple ; adaptez-les au projet.
Installez d’abord JelinaOS et ajoutez l’équipement à une flotte. Voir Ajouter un équipement.
Équipement utilisé
Section intitulée « Équipement utilisé »| Équipement | Version JelinaOS | Version Jelinvisor | Version du noyau |
|---|---|---|---|
| I.MX8MP EBC-RS08-A2 | imx8mmebcrs08a2 Debian-10 1.0.4 | 1.0.9 | 5.4.70-g62c07ec2f origin |
Procédure générale
Section intitulée « Procédure générale »
Publier une version
Section intitulée « Publier une version »Ouvrez la flotte de l’équipement, puis « Versions → Nouvelle version ». Choisissez le mode d’édition et passez à l’éditeur compose.yml.

Choisir le mode d’édition :
Le mode développeur permet d’éditer Compose ; le mode non-développeur utilise un formulaire de services. Des exemples des deux interfaces suivent.
Exemple en mode développeur
Dans l’éditeur compose.yml, définissez les services. Une même version peut contenir des conteneurs et des services natifs ; ils sont expliqués séparément ici pour plus de clarté.
Déployer un service conteneurisé
Section intitulée « Déployer un service conteneurisé »Recherchez l’image souhaitée sur Docker Hub (https://hub.docker.com/search?q=). Consultez la documentation de sa page pour les modalités de déploiement.
Exemple avec un conteneur Mysql :
- Rédigez la configuration.

version: 2services: #Nom du service db: # mysql : nom de l’image ; latest : dernière version, facultative, l’omission utilise par défaut la dernière image Docker Hub. Une version précise peut être indiquée, par exemple mysql:5.7 image: mysql:latest #Variables d’environnement environment: # Mot de passe du superadministrateur mysql MYSQL_ROOT_PASSWORD: '123456' #Ports mappés entre hôte et conteneur ports: - '3306:3306'-
Cliquez sur « Suivant → Enregistrer » pour sauvegarder la version.
-
Cliquez sur l’icône de fichier du service pour téléverser son paquet. Une image publique peut être téléchargée directement par Docker à partir de son nom ; son téléversement est donc facultatif.

- Après transfert, cliquez sur « operation → Publier » en haut à droite.
Déployer un service natif
Section intitulée « Déployer un service natif »- Écrivez un script de test helloworld.sh.
Il parcourt les nombres de 1 à 100. Lorsqu’un nombre est divisible par 10, il affiche hello world et attend 10 s. À la fin, il lit la variable name de l’équipement et l’affiche.
#!/bin/bash#Parcourir 1 à 100 ; pour chaque multiple de 10, afficher hello world dans la console puis attendre 10sfor((i=1;i<=100;i++));do if [ $(expr $i % 10) == 0 ] then echo "hello world $i" sleep 10done#Lire la variable d’équipement name, définie à jack, et l’afficher. Remarque : l’utilisateur définit name dans les variables communes de flotte ou privées d’équipement. Voir la section ##Configuration des équipements et variables de service## ci-dessousecho "name:$name"Empaquetez ensuite helloworld.sh dans helloworld.tar.gz.
- Rédigez et enregistrez la configuration.
version: 2programs: #Nom du service helloworld: program: helloworld #Politique de redémarrage : relancer le service en cas d’échec restart: on-failure #Commande de démarrage du service command: /usr/bin/bash helloworld.sh- Cliquez sur l’icône de fichier du service pour téléverser le paquet.

- Après transfert, publiez via « operation → Publier » en haut à droite.
Mode non-développeur
Ce mode permet de définir un service en renseignant simplement son nom et sa commande de démarrage :
Cliquez sur « Ajouter des données », double-cliquez sur « – » pour modifier et saisissez les paramètres.
Cliquez sur « Suivant » pour enregistrer. Le téléversement du paquet et la publication suivent ensuite les mêmes étapes qu’en mode développeur.

Affecter la version à l’équipement
Section intitulée « Affecter la version à l’équipement »Par défaut, la flotte suit la dernière version, mais le basculement peut prendre environ 15 minutes. Une affectation manuelle permet de l’accélérer.
Dans la vue d’ensemble, choisissez « operation → Affecter une version », sélectionnez la nouvelle version et confirmez avec « Affecter une version ».
Vérifier l’état du déploiement
Section intitulée « Vérifier l’état du déploiement »Attention : l’équipement doit être connecté et communiquer normalement.
Vérification dans JelinaCloud
Section intitulée « Vérification dans JelinaCloud »Après démarrage, consultez l’état du service dans la liste du tableau de bord.

Quatre états courants :
- Running : en cours d’exécution
- Failed : échec du service
- Restarting : redémarrage en cours
- Exited : service terminé
Vérification sur l’équipement
Section intitulée « Vérification sur l’équipement »- Ouvrez un terminal SSH depuis l’accès distant de la page de détails, ou utilisez votre client SSH.

Vérifier le conteneur
Section intitulée « Vérifier le conteneur »Dans le terminal, exécutez docker ps pour afficher les conteneurs actifs.
Vérifiez que le conteneur cible figure dans la liste avec STATUS à Up. Sinon, examinez la Release cible, le téléchargement d’image et les journaux.
Le nom du conteneur est imposé : nom du service _ ID image _ ID version _ Commit version.
Vérifiez que le service db de cet exemple est actif.
Vérifier le service natif
Section intitulée « Vérifier le service natif »Consultez les journaux avec journalctl -u jelina-jelinvisor -f pour vérifier l’état de l’application.
Comparez les démarrages et sorties consignés par l’agent à l’état affiché dans le cloud.
L’équipement remonte périodiquement son état. Tenez compte de sa période réelle de remontée et de l’état effectif du service pour confirmer son fonctionnement.
Vérifier le résultat du service
Section intitulée « Vérifier le résultat du service »Vérifier le conteneur MySQL
Section intitulée « Vérifier le conteneur MySQL »Ouvrez Navicat et connectez-vous au MySQL déployé. Renseignez l’adresse, le compte administrateur, son mot de passe défini dans compose.yml et le port :
| Paramètre | Valeur dans l’exemple |
|---|---|
| Adresse | Adresse IP accessible de l’équipement |
| Port | Port hôte mappé dans Compose, 3306 ici |
| Utilisateur | root ou un utilisateur métier déjà créé |
| Mot de passe | Mot de passe de base de données dans la configuration applicative |
Cliquez sur « Tester la connexion ». Un succès confirme que l’application est déployée et accessible.
D’autres paramètres MySQL, comme les comptes, peuvent être définis dans les variables privées de l’équipement ou partagées de la flotte.
Vérifier le script natif helloworld
Section intitulée « Vérifier le script natif helloworld »Après son lancement, les sorties helloworld apparaissent dans les journaux du tableau de bord et dans le terminal distant :
Tableau de bord JelinaCloud :

Terminal distant :
Exemple de sortie du script ; les nombres varient selon son avancement :
hello world 10hello world 20...name:jackLa sortie finale name:jack indique que le script a lu la variable de service name. Si la valeur diffère, vérifiez son périmètre et sa valeur effective.
Configuration des équipements et variables de service
Section intitulée « Configuration des équipements et variables de service »Priorité : configuration de l’équipement > configuration de la flotte
Configuration
Section intitulée « Configuration »- Flotte : par défaut, tous ses équipements utilisent cette configuration.

Équipements couverts : équipements de la flotte utilisant cette configuration.
- Équipement : chaque équipement peut définir ses propres valeurs.

Variables de service
Section intitulée « Variables de service »-
Variables partagées de flotte : par défaut, elles définissent l’environnement des services de tous les équipements.
Par exemple, définir a, b et name pour tous les services les rend présentes sur tous les équipements.

Vous pouvez également choisir un service d’image précis :

-
Variables privées d’équipement : chaque équipement peut définir ses valeurs et remplacer celles de la flotte avec « override ».
Par exemple, remplacez name, a et b : les nouvelles valeurs ne s’appliquent qu’à cet équipement et n’affectent pas les autres.

Remarques complémentaires
Section intitulée « Remarques complémentaires »-
L’équipement exécute uniquement les services de sa version actuelle.
-
Modifier une variable partagée ou privée redémarre les services de l’équipement concerné.
-
Un service natif terminé passe à l’état
Exited. -
La stratégie native par défaut est
restart: always. Avecalways, le système tente un redémarrage après interruption anormale. Des redémarrages répétés dans une même période entraînent l’étatFailed. Plusieurs stratégies sont disponibles selon les besoins.
restart: Options : no,on-success,on-failure,on-abnormal,on-watchdog,on-abort,always ; par défaut always-
Les conteneurs privés et services natifs nécessitent un paquet téléversé ; sinon, leur version ne peut pas être publiée.
-
Pour qu’un service natif conserve les données de l’ancienne version, son nom doit rester identique dans la nouvelle.
-
Pour la persistance des conteneurs, déclarez un volume dans
compose.ymlà la création de la version. Le montage par chemin explicite n’est pas pris en charge. -
Le nom du conteneur est imposé :
nom du service _ ID image _ ID version _ Commit version. Il ne peut donc pas être redéfini aveccontainer_namedanscompose.yml. -
Le mode développeur offre davantage de possibilités de configuration que le mode non-développeur.
-
Une valeur Volumes vide dans
compose.ymlsignifie qu’aucun volume n’est monté et n’empêche pas le déploiement normal du conteneur.