Skip to content

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À quiPourquoi
Membre du projet Google Cloud timemanager-eh28Elias HounnouVoir et gérer les VM, le pare-feu, les IP
Ta clé SSH ajoutée aux métadonnées du projetElias Hounnou, ou toi-même une fois membreTe connecter aux VM et lancer Ansible
Le mot de passe du vault AnsibleElias Hounnou, en main propre ou par un gestionnaire de mots de passeDéchiffrer prod.yml et tooling.yml
Le compte admin de JenkinsLe mot de passe est dans le vaultci.time.jostud.com
Le dépôt GitHubL'organisation de l'écoleLire et pousser le code
La zone DNS chez HostingerLe propriétaire du domaine jostud.comSeulement 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 ​

OutilPourInstallation
GitLe dépôtpaquet du système
Ansible (paquet complet)Configurer les machinespipx install --include-deps ansible, ou le paquet du système
Google Cloud CLIGérer les VMcloud.google.com/sdk
DockerTester des images en local (facultatif)docs.docker.com
bash
gcloud auth login
gcloud config set project timemanager-eh28

Ajouter 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-pass

3. Vérifier que tout marche ​

Depuis timemanager-devops/ansible/ :

VérificationCommandeRésultat attendu
Ansible joint les deux VMansible all -m ping --ask-vault-passpong pour tm-prod et tm-tooling
Le vault s'ouvreansible-vault view group_vars/prod.ymlLe contenu en clair
Rien ne dérive de l'état vouluansible-playbook playbook.yml --check --diff --ask-vault-passAucun changement, ou seulement ceux que tu attends
Les conteneurs tournentansible prod -b --ask-vault-pass -a "docker ps"timemanager-traefik, -front, -back, -db en Up
Le site répondcurl -I https://time.jostud.com200
L'API répondcurl -I https://api.time.jostud.com/api/auth/me401 (l'API marche, tu n'es pas connecté)
Jenkins répondouvrir ci.time.jostud.comLa page de connexion

4. Ce qu'il faut lire, dans l'ordre ​

  1. Vue d'ensemble : les deux machines et leur rôle.
  2. Le trajet d'une requête : par où passe chaque requête.
  3. Infrastructure et Matrice des flux : ce qui est ouvert et pourquoi.
  4. D'un commit à la prod : comment une modification arrive en ligne.
  5. Secrets et accès : où sont les secrets.
  6. Opérations courantes et Si le site tombe : le quotidien.
  7. Limites et améliorations : ce qui reste à faire.

5. Les règles de l'équipe ​

RèglePourquoi
Toute modification passe par le dépôt, puis AnsibleLes serveurs restent identiques à ce qui est écrit dans Git
Ne jamais modifier un .env ou un fichier à la main sur un serveurLe prochain playbook l'écraserait
Toujours --check --diff avant un playbook sur la productionVoir ce qui va changer avant de le faire
Une seule personne lance Ansible à la foisDeux playbooks en même temps peuvent se gêner
Prévenir l'équipe avant une opération qui coupe le serviceArrêt des VM, recréation de la base, changement de Traefik