P&P Project & Deployment Guide v2.0

Étape 02 — Construire P&P-NONPROD

Créer l’environnement où l’équipe peut tester, casser et recommencer sans toucher aux utilisateurs réels.

Semaines 3–4Ubuntu 24.04Docker
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-world
Important.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/secrets

Sandbox 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`.

8. Gate de sortie