Aller au contenu

Données préservées au redéploiement

Référence des données que la plateforme préserve lors d'un redéploiement de conteneur — fichiers système, chemins spécifiques au stack, fichiers et dossiers personnalisés via /etc/jelastic/redeploy.conf et conventions de fichiers de sauvegarde.

Quand vous redéployez un conteneur sur Stack Harbor PaaS, la plateforme remplace le système de fichiers du conteneur par une copie fraîche de l’image cible. Pour éviter que la configuration personnalisée et les données du client soient perdues, la plateforme préserve automatiquement un ensemble défini de fichiers et dossiers. Cette page documente ce qui est préservé par défaut, comment ajouter vos propres fichiers à la liste de préservation et les conventions de fichiers de sauvegarde utilisées lors du redéploiement.

Ce qui est préservé par défaut

La liste de préservation par défaut couvre quatre catégories :

  • Configuration de conteneur personnalisée — commandes de lancement, liens, variables d’environnement, mappages de ports.
  • Volumes par défaut et personnalisés — tout le contenu de volume survit intact.
  • Configuration AutoFS et NFS — /etc/autofs.jelastic, /etc/auto.master, /etc/exports.
  • Configuration pare-feu — /etc/nftables/container-defined.nft, /etc/nftables/user-defined.nft, /etc/sysconfig/iptables-custom, /etc/sysconfig/iptables4-jelastic, /etc/sysconfig/iptables6-jelastic, /etc/iptables/rules.v4.
  • Données d’accès SSH — /root/.ssh/authorized_keys, /root/.ssh/authorized_keys2, /root/.ssh/id_rsa.

Le fichier redeploy.conf

Chaque conteneur infogéré par la plateforme est livré avec /etc/jelastic/redeploy.conf. Il liste les fichiers et dossiers spécifiques au stack que la plateforme préserve lors du redéploiement. Le fichier est divisé en deux sections :

  • Fichiers et dossiers système — infogérés par la plateforme. Ne modifiez pas sauf si vous savez exactement ce que vous faites.
  • Fichiers et dossiers personnalisés — vos propres ajouts.

Vous pouvez ouvrir le fichier via le gestionnaire de fichiers du tableau de bord (un raccourci Favorites est disponible) ou via SSH.

Entrées système communes

Chaque conteneur inclut un ensemble de base d’entrées indépendamment du stack :

  • /etc/jelastic/redeploy.conf — le fichier lui-même, pour que la liste de préservation survive à chaque redéploiement.
  • ${home}/.bash_profile — paramètres shell SSH par défaut.
  • /etc/nftables/container-defined.nft — règles pare-feu spécifiques à l’image.
  • /etc/nftables/user-defined.nft — règles pare-feu définies par l’utilisateur.
  • /var/lib/jelastic/keys — clés SSH privées téléversées utilisées pour l’accès SSH et la communication inter-conteneurs.

Pour les conteneurs CentOS 7 hérités, les configs pare-feu sont /etc/sysconfig/iptables et /etc/sysconfig/iptables-custom.

Chemins préservés spécifiques au stack

Chaque stack ajoute ses propres entrées. Un sous-ensemble de la liste par stack :

StackChemins clés
Tomcat/opt/tomcat/conf/jelastic-ha.xml, /opt/tomcat/conf/jelastic-ssl.xml, /opt/tomcat/conf/tomcat-env.sh, /opt/tomcat/conf/variables.conf, /opt/tomcat/temp/, /var/spool/cron/tomcat
TomEE/opt/tomcat/temp/, /var/spool/cron/tomcat
GlassFish/opt/glassfish/glassfish/domains/domain1/applications, /opt/glassfish/glassfish/domains/domain1/config/admin-keyfile, /opt/glassfish/glassfish/domains/domain1/config/domain.xml, /opt/glassfish/hazelcast.xml, /opt/glassfish/glassfish/domains/domain1/docroot, /var/spool/cron/glassfish, /var/lib/jelastic/hooks
Spring Boot/home/jelastic/conf, /home/jelastic/APP, /var/lib/jelastic/keys, /var/spool/cron/jvm
Apache PHPbackup:/etc/php.ini, /etc/php.d/, /var/spool/cron/apache, /var/www/.ssh/
NGINX PHPbackup:/etc/php-fpm.conf, backup:/etc/php.ini, /etc/php.d/, /etc/sysconfig/php-fpm, /var/lib/nginx/.ssh/, /var/spool/cron/nginx
NGINX (LB)/etc/dhcp/dhcpd.conf, /etc/nginx/conf.d, /etc/nginx/neighbors, /etc/nginx/nginx-jelastic.conf, /etc/nginx/tcpmaps/mappings.xml, /etc/nginx/upstreams, /var/lib/jelastic/SSL
Node.js/home/jelastic//.ssh, /home/jelastic//.ssh2, /var/spool/cron/nodejs, /home/jelastic/ROOT
MySQL / MariaDB/etc/my.cnf, /etc/php.ini, /var/lib/mysql/.ssh/, /var/spool/cron/mysql
PostgreSQL/etc/php.ini, /var/lib/pgsql/.ssh/, /var/spool/cron/postgres, ${home}/lib/, ${home}/share/
WildFly/opt/contexturl, /home/jelastic/.ssh/, /var/spool/cron/wildfly, /opt/wildfly/domain, /opt/wildfly/standalone, /opt/wildfly/welcome-content/index.html, /var/lib/jelastic/hooks

La liste complète par stack est visible en ouvrant /etc/jelastic/redeploy.conf dans le conteneur.

Ajouter des fichiers et dossiers personnalisés

Pour préserver un fichier ou dossier absent de la liste par défaut :

  1. Ouvrez /etc/jelastic/redeploy.conf.
  2. Ajoutez le chemin complet à la section custom files and folders, une entrée par ligne.

Pour des données — fichiers téléversés, actifs générés, contenu de base de données — utilisez plutôt un volume. redeploy.conf est destiné aux fichiers de configuration nécessaires au bon fonctionnement du conteneur. Les volumes passent mieux à l’échelle et survivent aussi bien à la migration de conteneur qu’au redéploiement.

Convention de fichier de sauvegarde

Pour les fichiers qui devraient être préservés mais où vous voulez aussi conserver une sauvegarde de la version intégrée dans la nouvelle image, préfixez le chemin avec backup: :

backup:/path/to/file

Cela fonctionne pour les fichiers seulement — pas les dossiers.

Après le redéploiement, trois noms de fichiers peuvent exister à côté de l’entrée :

  • {file_name} — le fichier de la nouvelle étiquette d’image.
  • {file_name}.{timestamp} — une sauvegarde créée juste avant le redéploiement. Un fichier séparé est créé pour chaque redéploiement vers une étiquette différente.
  • {file_name}.backup — la sauvegarde la plus récente. Remplace automatiquement toute sauvegarde précédente du même nom.

Les fichiers de sauvegarde permettent de comparer les configurations entre versions ou de revenir en arrière en renommant le fichier de sauvegarde par-dessus le nouveau.

Voir aussi