Images des conteneurs utilisateurs

Pour l’environnement PROVISION, les machines ont besoin d’accéder aux images des conteneurs de travail qui seront déployés pour les utilisateurs.
Trois modes sont disponibles : Online, Proxy, Offline.
Choisissez un seul mode et définissez les variables avant la commande d’installation finale.

Principes généraux

Les variables de registre sont lues par le rôle Ansible reemo-provision.

  • REGISTRY_URL: l’url du registre (ex. registry.reemo.io)

  • REGISTRY_ENV: le préfixe permettant au rôle Ansible de construire les noms d’images au format REGISTRY_ENV chromium

  • REGISTRY_USERNAME: nom d’utilisateur fourni par le support Reemo

  • REGISTRY_PASSWORD: mot de passe fourni par le support Reemo

Exemple d’image résultante : registry.reemo.io/reemosbchromium:latest

Note

Optimisation : Le rôle Ansible permet de personnaliser finement le préchargement des images Docker (Relay, Provisioning, modes air-gapped). Pour configurer vos propres variables, reportez-vous directement à la section dédiée en bas de page : Préchargement d’images (Image Warmup).

Tip

Vérifiez l’espace disque sur chaque noeud. Le chargement d’images peut exiger plusieurs Go libres.

Mode Online

Toutes les machines joignent directement le registre Reemo.

Conditions

  • Sortie HTTPS ouverte vers registry.reemo.io:443.

  • Identifiants fournis par le support Reemo.

Inventaire minimal

all:
    vars:
        REGISTRY_URL: "registry.reemo.io"
        REGISTRY_ENV: "reemosb"
        REGISTRY_USERNAME: "user"
        REGISTRY_PASSWORD: "password"
        PROVISION_IMAGE_WARMUP: ["registry.reemo.io/reemosbchromium","registry.reemo.io/reemosbssh"]

Contrôles rapides

Vérifier la connexion au registre (depuis un noeud)

docker login registry.reemo.io

Vérifier le préfixe utilisé (exemple)

docker pull registry.reemo.io/reemosbchromium:latest

Confirmer la présence de l’image en local

docker image ls

Mode Proxy

Les noeuds accèdent au registre via un proxy HTTP/HTTPS.

Utilisez la même configuration d’inventaire que le mode Online.

Pour déclarer le proxy au niveau du service Docker:

  • Rajoutez la ligne suivante dans la section [Service] du fichier /usr/lib/systemd/system/docker.service

EnvironmentFile=/etc/default/docker
  • Créez le fichier /etc/default/docker et renseignez les infos suivantes:

http_proxy="http://< IP du serveur Proxy >:< Port du service Proxy >"
https_proxy="http://< IP du serveur Proxy >:< Port du service Proxy >"
  • Au niveau du proxy autorisez les 2 urls suivantes:

registry.reemo.io
registry-auth.reemo.io

Mode Offline

Une machine pont avec Internet récupère les images, puis vous les préchargez ailleurs (noeuds ou registre privé).

Scénario A : Tarballs distribués

Sur la machine pont :

docker login registry.reemo.io
docker pull registry.reemo.io/reemosbchrome:latest
docker save registry.reemo.io/reemosbchrome:latest > /tmp/reemosbchrome_latest.tar

Transférez les .tar vers les noeuds puis chargez les sur le noeud :

docker load < reemosbchrome_latest.tar

Scénario B : Registre privé intermédiaire

La machine pont pull depuis registry.reemo.io puis push vers votre registre privé.

Sur les noeuds, configurez :

REGISTRY_URL: "<votre_registre_prive>"
REGISTRY_ENV: "<votre_namespace>"
REGISTRY_USERNAME: "<user_si_requis>"
REGISTRY_PASSWORD: "<password_si_requis>"

Vous pouvez ensuite lancer l’installation en mode Online contre votre registre.

Préchargement d’images (Image Warmup)

Le rôle Ansible peut précharger (pull) les images Docker en amont du déploiement pour accélérer le démarrage des conteneurs et préserver la bande passante lors des phases critiques.

PROVISION_IMAGE_WARMUP

Liste des images à précharger pour les sessions isolées de provisioning.

Valeur par défaut :

PROVISION_IMAGE_WARMUP:
  - "registry.reemo.io/reemosbchromium"

Logique de ciblage dynamique : Contrairement à un groupe fixe, le rôle examine les groupes de l’hôte pour détecter son préfixe de provisioning (provision, provision1, provision2, etc.) et applique la règle suivante :

  • Si le groupe <prefix>_worker existe et contient des hôtes : seuls ces nœuds workers effectuent le préchargement.

  • Sinon (pas de worker défini) : ce sont les nœuds du groupe <prefix>_manager qui prennent le préchargement en charge.

Cela garantit que le warmup s’exécute uniquement sur les machines qui vont réellement lancer les conteneurs (que vous soyez sur une petite topologie Manager-only ou une architecture distribuée).

Exemples d’overrides

Surchargez ces variables dans vos group_vars ou host_vars pour gérer des versions de rollback ou un miroir privé avec des versions d’images fixes :

# group_vars/provision_worker.yml
PROVISION_IMAGE_WARMUP:
  - "registry.entreprise.local/reemosbchromium:2.8.0" # Miroir interne + version fixe
  - "registry.reemo.io/reemosbfirefox:2.8.0"          # Sandbox alternative

LOAD_IMAGE

Pour désactiver complètement le préchargement des images (notamment en environnement air-gapped sans accès Internet) :

LOAD_IMAGE: true

Par défaut, la variable est à false.

Tags Ansible

Utilisez les tags Ansible pour précharger les images en amont d’un déploiement, sans rejouer l’intégralité du playbook ni modifier le reste de la configuration.

# Précharger uniquement les composants Provisioning
ansible-playbook site.yml --tags provision_image_warmup

# Exécuter l'ensemble du warmup
ansible-playbook site.yml --tags provision_image_warmup