Cheat Sheet DevOps

Référence ultra-compacte des commandes essentielles pour tous les outils DevOps.

Linux

Fichiers & Navigation
ls -laLister avec détails
cd /cheminChanger de dossier
pwdDossier courant
cp -r src dstCopier (récursif)
mv src dstDéplacer / renommer
rm -rf dirSupprimer (récursif)
find . -name "*.log"Chercher des fichiers
Permissions
chmod 755 fichierDroits rwxr-xr-x
chown user:group fChanger propriétaire
sudo commandeExécuter en root
Processus & Réseau
ps aux | grep procChercher un processus
kill -9 PIDForcer l'arrêt
top / htopMoniteur système
ss -tlnpPorts en écoute
curl -I URLEn-têtes HTTP
Texte & Logs
grep -r "mot" .Recherche récursive
tail -f fichier.logSuivre un log en direct
cat f | sort | uniq -cTrier et dédupliquer
awk '{print $1}'Extraire une colonne

Git

Bases
git initCréer un dépôt
git clone URLCloner un dépôt
git statusÉtat des fichiers
git add .Stager tout
git commit -m "msg"Committer
git push origin mainPousser
git pullRécupérer et fusionner
Branches
git branch featureCréer une branche
git checkout -b featCréer + basculer
git merge featureFusionner
git rebase mainRebaser
git branch -d featSupprimer la branche
Historique & Correction
git log --onelineHistorique compact
git diff HEAD~1Diff avec le commit précédent
git stashMettre de côté
git stash popRestaurer le stash
git reset --hard HEADAnnuler tout
git revert SHAAnnuler un commit (safe)

Docker

Images
docker build -t nom:tag .Construire une image
docker imagesLister les images
docker pull nginxTélécharger une image
docker rmi IMAGESupprimer une image
docker push nom:tagPousser sur un registry
Conteneurs
docker run -d -p 80:80 nginxLancer en arrière-plan
docker run -it ubuntu bashShell interactif
docker ps -aLister tous les conteneurs
docker stop NOMArrêter un conteneur
docker rm NOMSupprimer un conteneur
docker exec -it NOM bashEntrer dans le conteneur
docker logs -f NOMSuivre les logs
Compose
docker compose up -dDémarrer les services
docker compose downArrêter et supprimer
docker compose logs -fLogs en direct
docker compose buildReconstruire les images
docker compose psÉtat des services

Kubernetes

Ressources
kubectl get pods -ATous les pods
kubectl get svc,deployServices et déploiements
kubectl describe pod NOMDétails d'un pod
kubectl apply -f fichier.yamlAppliquer une config
kubectl delete -f fichier.yamlSupprimer des ressources
Debug
kubectl logs -f NOMLogs d'un pod
kubectl exec -it NOM -- bashShell dans un pod
kubectl port-forward pod/NOM 8080:80Tunnel local
kubectl top podsConsommation des ressources
kubectl events --sort-by=.metadata.creationTimestampÉvénements récents
Gestion
kubectl scale deploy/NOM --replicas=3Changer le nombre de réplicas
kubectl rollout restart deploy/NOMRedémarrer un déploiement
kubectl rollout undo deploy/NOMRollback
kubectl config use-context NOMChanger de cluster
kubectl create ns mon-nsCréer un namespace

Terraform

Workflow
terraform initInitialiser le projet
terraform planPrévisualiser les changements
terraform applyAppliquer les changements
terraform apply -auto-approveAppliquer sans confirmation
terraform destroyDétruire les ressources
État & Debug
terraform showAfficher l'état actuel
terraform state listLister les ressources
terraform outputAfficher les outputs
terraform validateValider la syntaxe
terraform fmtFormatter les fichiers
TF_LOG=DEBUG terraform applyMode debug

Ansible

Commandes
ansible all -m pingTester la connectivité
ansible-playbook play.ymlLancer un playbook
ansible-playbook play.yml -CDry-run (check mode)
ansible-playbook play.yml -vMode verbeux
ansible-vault encrypt secrets.ymlChiffrer des secrets
ansible-galaxy install roleInstaller un rôle
Modules courants
ansible.builtin.copyCopier des fichiers
ansible.builtin.templateDéployer un template Jinja2
ansible.builtin.serviceGérer un service systemd
ansible.builtin.packageInstaller des paquets
ansible.builtin.userGérer les utilisateurs

GitHub Actions

Structure YAML
on: [push, pull_request]Déclencheurs
on: workflow_dispatchDéclenchement manuel
jobs.build.runs-on: ubuntu-latestRunner
steps: - uses: actions/checkout@v4Checkout du code
steps: - run: npm testExécuter une commande
Actions utiles
actions/setup-node@v4Installer Node.js
actions/cache@v4Mettre en cache les dépendances
docker/build-push-action@v6Builder et pousser une image
actions/upload-artifact@v4Publier un artifact
${{ secrets.MON_SECRET }}Utiliser un secret
if: github.ref == 'refs/heads/main'Condition de branche

GitLab CI

Structure .gitlab-ci.yml
stages: [build, test, deploy]Définir les stages
image: node:20Image Docker du job
script: - npm installCommandes du job
only: [main]Filtrer la branche
rules: - if: $CI_COMMIT_BRANCHConditions avancées
Fonctionnalités
cache: paths: [node_modules/]Cache entre jobs
artifacts: paths: [dist/]Partager des fichiers
needs: [build]Dépendance entre jobs
$CI_REGISTRY_IMAGERegistry GitLab intégré
$VARIABLEVariable CI/CD
environment: productionDéploiement avec environnement

Monitoring

Prometheus
rate(http_requests_total[5m])Taux de requêtes/s
up == 0Cibles down
sum by (job) (metric)Agréger par label
histogram_quantile(0.99, ...)Percentile 99
absent(metric)Alerte si métrique absente
Commandes système
curl localhost:9090/metricsScraper les métriques
journalctl -u service -fLogs systemd en direct
df -h / du -sh *Espace disque
free -hMémoire disponible
vmstat 1CPU / mémoire / I/O