Étape 02 — Construire P&P-NONPROD
Créer l’environnement où l’équipe peut tester, casser et recommencer sans toucher aux utilisateurs réels.
Pour comprendre avant d’exécuter
Qu’allons-nous construire ?
NONPROD est le terrain d’apprentissage. Il contient une sandbox que l’on peut casser et une préproduction isolée. Aucun utilisateur réel ne dépend de cet environnement. Si une commande échoue ici, on s’arrête, on comprend l’erreur et on recommence : c’est précisément le but.
Règle de travail
Lire la section complète, copier une commande à la fois, vérifier le résultat attendu, puis seulement continuer.
Vocabulaire utile
- Sandbox : environnement d’essai libre.
- Préproduction : environnement destiné à valider une version candidate.
- Conteneur : processus isolé construit à partir d’une image Docker.
1. Préparer le VPS NONPROD
Créer un VPS Ubuntu 24.04 LTS dédié au non-production. Le dimensionnement initial du livre blanc est indicatif ; ajuster après mesure.
Hypothèse.Le guide suppose un Ubuntu 24.04 fraîchement installé et un compte disposant de
sudo.2. Mise à jour et outils de base
sudo apt update sudo apt upgrade -y sudo apt autoremove -y sudo apt install -y curl wget git ca-certificates gnupg jq unzip fail2ban
Résultat attenduToutes les commandes terminent sans erreur et aucune mise à jour bloquée n’est signalée.
3. Créer le compte d’administration
sudo adduser pnpadmin sudo usermod -aG sudo pnpadmin sudo install -d -m 700 -o pnpadmin -g pnpadmin /home/pnpadmin/.ssh sudo nano /home/pnpadmin/.ssh/authorized_keys sudo chmod 600 /home/pnpadmin/.ssh/authorized_keys sudo chown pnpadmin:pnpadmin /home/pnpadmin/.ssh/authorized_keys
Avant SSH.Ouvrir une deuxième session et vérifier la connexion par clé avant de désactiver l’authentification par mot de passe.
4. Durcir SSH
sudo tee /etc/ssh/sshd_config.d/99-pnp-security.conf >/dev/null <<'EOF' PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes X11Forwarding no AllowUsers pnpadmin EOF sudo sshd -t sudo systemctl restart ssh
Résultat attendu`sudo sshd -t` ne retourne aucune erreur et la deuxième session SSH fonctionne.
5. Installer Docker depuis le dépôt officiel
sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources >/dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run --rm hello-worldImportant.Ne pas ajouter automatiquement tous les administrateurs au groupe
docker : ce groupe donne pratiquement des privilèges root sur l’hôte.6. Préparer les deux stacks
sudo mkdir -p /srv/planplay/{sandbox,preprod,shared}
sudo chown -R pnpadmin:pnpadmin /srv/planplay
mkdir -p /srv/planplay/sandbox/{compose,secrets,data,logs}
mkdir -p /srv/planplay/preprod/{compose,secrets,data,logs}
chmod 700 /srv/planplay/sandbox/secrets /srv/planplay/preprod/secretsSandbox et préproduction ne doivent partager ni volume de données, ni secret, ni réseau Docker.
7. Créer des réseaux séparés
sudo docker network create pnp_sandbox_internal sudo docker network create pnp_preprod_internal sudo docker network ls | grep pnp_
Résultat attenduDeux réseaux distincts apparaissent : `pnp_sandbox_internal` et `pnp_preprod_internal`.