Arriver dans l'équipe DevOps
Tu reprends l'infrastructure ou tu viens aider ? Voici, dans l'ordre, les accès à demander, les outils à installer, et les vérifications pour savoir que tout marche.
1. Les accès à demander
| Accès | À qui | Pourquoi |
|---|---|---|
Membre du projet Google Cloud timemanager-eh28 | Elias Hounnou | Voir et gérer les VM, le pare-feu, les IP |
| Ta clé SSH ajoutée aux métadonnées du projet | Elias Hounnou, ou toi-même une fois membre | Te connecter aux VM et lancer Ansible |
| Le mot de passe du vault Ansible | Elias Hounnou, en main propre ou par un gestionnaire de mots de passe | Déchiffrer prod.yml et tooling.yml |
Le compte admin de Jenkins | Le mot de passe est dans le vault | ci.time.jostud.com |
| Le dépôt GitHub | L'organisation de l'école | Lire et pousser le code |
| La zone DNS chez Hostinger | Le propriétaire du domaine jostud.com | Seulement pour ajouter ou modifier un nom de domaine |
Jamais par écrit en clair
Le mot de passe du vault ne passe ni par un message, ni par un email, ni par un fichier du dépôt. Voir Secrets et accès.
2. Les outils à installer
| Outil | Pour | Installation |
|---|---|---|
| Git | Le dépôt | paquet du système |
| Ansible (paquet complet) | Configurer les machines | pipx install --include-deps ansible, ou le paquet du système |
| Google Cloud CLI | Gérer les VM | cloud.google.com/sdk |
| Docker | Tester des images en local (facultatif) | docs.docker.com |
bash
gcloud auth login
gcloud config set project timemanager-eh28Ajouter dans group_vars/all.yml ton propre utilisateur et ta clé, ou les passer en ligne de commande :
bash
ansible-playbook playbook.yml -u <ton-utilisateur> --private-key ~/.ssh/<ta-cle> --ask-vault-pass3. Vérifier que tout marche
Depuis timemanager-devops/ansible/ :
| Vérification | Commande | Résultat attendu |
|---|---|---|
| Ansible joint les deux VM | ansible all -m ping --ask-vault-pass | pong pour tm-prod et tm-tooling |
| Le vault s'ouvre | ansible-vault view group_vars/prod.yml | Le contenu en clair |
| Rien ne dérive de l'état voulu | ansible-playbook playbook.yml --check --diff --ask-vault-pass | Aucun changement, ou seulement ceux que tu attends |
| Les conteneurs tournent | ansible prod -b --ask-vault-pass -a "docker ps" | timemanager-traefik, -front, -back, -db en Up |
| Le site répond | curl -I https://time.jostud.com | 200 |
| L'API répond | curl -I https://api.time.jostud.com/api/auth/me | 401 (l'API marche, tu n'es pas connecté) |
| Jenkins répond | ouvrir ci.time.jostud.com | La page de connexion |
4. Ce qu'il faut lire, dans l'ordre
- Vue d'ensemble : les deux machines et leur rôle.
- Le trajet d'une requête : par où passe chaque requête.
- Infrastructure et Matrice des flux : ce qui est ouvert et pourquoi.
- D'un commit à la prod : comment une modification arrive en ligne.
- Secrets et accès : où sont les secrets.
- Opérations courantes et Si le site tombe : le quotidien.
- Limites et améliorations : ce qui reste à faire.
5. Les règles de l'équipe
| Règle | Pourquoi |
|---|---|
| Toute modification passe par le dépôt, puis Ansible | Les serveurs restent identiques à ce qui est écrit dans Git |
Ne jamais modifier un .env ou un fichier à la main sur un serveur | Le prochain playbook l'écraserait |
Toujours --check --diff avant un playbook sur la production | Voir ce qui va changer avant de le faire |
| Une seule personne lance Ansible à la fois | Deux playbooks en même temps peuvent se gêner |
| Prévenir l'équipe avant une opération qui coupe le service | Arrêt des VM, recréation de la base, changement de Traefik |