| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| cicd [2025/11/24 21:09] – [Automatisation de déploiement] superadmin | cicd [2026/03/03 21:53] (Version actuelle) – [Gitlab] superadmin |
|---|
| ====== Automatisation & CI/CD ====== | ====== Automatisation & CI/CD ====== |
| |
| Méthodes CI/CD et outils d'automatisation de tâches. | Méthodes et outils de Développement et d'Intégration Continue et Automatisation de tâches d'administration. |
| |
| ===== Versionning ===== | ===== Versionning ===== |
| [[https://www.it-connect.fr/comment-generer-une-paire-de-cles-ssh-et-lutiliser-avec-gitlab/#II_Generer_les_cles_SSH|Générer des clés SSH pour gitlab]] | [[https://www.it-connect.fr/comment-generer-une-paire-de-cles-ssh-et-lutiliser-avec-gitlab/#II_Generer_les_cles_SSH|Générer des clés SSH pour gitlab]] |
| |
| | [[Sauvegarder et restaurer une instance GitLab]] |
| |
| ===== Orchestration / Gestion de configuration ===== | ===== Intégration continue ===== |
| | |
| | ==== Jenkins ==== |
| | |
| | Jenkins est un outil d'intégration continue open source. Il permet d'automatiser le workflow d'intégration d'un logiciel étape par étape : |
| | |
| | {{ :exemple_workflow_cicd.png?1000 |Exemple de workflow d'intégration logicielle automatisé avec Jenkins}} |
| | |
| | Dans l'exemple ci-dessus, un programme Java est en cours de développement. Jenkins détecte de nouvelles modifications sur le dépôt GitLab et récupère la dernière version du code produite et testée localement par le développeur. Maven intervient pour le compiler, puis effectue les tests unitaires afin de vérifier que le programme fonctionne correctement. Un second intervenant, SonarQube, analyse la qualité du code dans le but de déceler des vulnérabilités ou des problèmes de performance. Enfin, Jenkins génère un artefact du programme, prêt à être déployé, et le met à disposition des intégrateurs. Ce pipeline est exécuté à chaque nouveau push de code sur le dépôt et notifie le développeur de l'issue de celui-ci (s'il y a erreur ou pas). |
| | |
| | ==== SonarQube ==== |
| | |
| | SonarQube est un outil open source d'analyse de code. Il permet de vérifier la qualité d'un code source afin d'y déceler des vulnérabilités ou des problèmes de performances. |
| | ===== Orchestration de configurations ===== |
| |
| ==== Ansible ==== | ==== Ansible ==== |
| * Maintenabilité : Les playbooks sont plus faciles à maintenir et à faire évoluer que des scripts shell complexes. | * Maintenabilité : Les playbooks sont plus faciles à maintenir et à faire évoluer que des scripts shell complexes. |
| |
| [[https://openclassrooms.com/fr/courses/2035796-utilisez-ansible-pour-automatiser-vos-taches-de-configuration|Apprendre à utiliser Ansible (OpenClassRoom)]] | === Formations / tutoriels === |
| |
| [[https://blog.microlinux.fr/formation-ansible/|Apprendre à utiliser Ansible (MicroLinux)]] | [[https://openclassrooms.com/fr/courses/2035796-utilisez-ansible-pour-automatiser-vos-taches-de-configuration|📕 Apprendre à utiliser Ansible (OpenClassRoom)]] |
| | |
| | [[https://blog.microlinux.fr/formation-ansible/|📕 Apprendre à utiliser Ansible (MicroLinux)]] |
| | |
| | [[https://gist.github.com/Tes3awy/dd73fdf0cd7e650d55a89d254a0005aa|Installer Ansible sous WSL (debian/ubuntu)]] |
| | |
| | [[Créer un utilisateur pour Ansible sur les machines clientes]] |
| | |
| | === Debug === |
| |
| [[https://stackoverflow.com/questions/42462435/ansible-provisioning-error-using-a-ssh-password-instead-of-a-key-is-not-possibl|Using a SSH password instead of a key is not possible]] | [[https://stackoverflow.com/questions/42462435/ansible-provisioning-error-using-a-ssh-password-instead-of-a-key-is-not-possibl|Using a SSH password instead of a key is not possible]] |
| | |
| | === Outils === |
| |
| [[https://github.com/haidaraM/ansible-playbook-grapher|Ansible Playbook Grapher : représenter un playbook ansible sous forme de Graph]] | [[https://github.com/haidaraM/ansible-playbook-grapher|Ansible Playbook Grapher : représenter un playbook ansible sous forme de Graph]] |
| ==== Vagrant ==== | ==== Vagrant ==== |
| |
| Vagrant est un utilitaire de déploiement et de provisionnement automatique de machines virtuelles. Il permet de créer des environnements de tests ou de formation très rapidement à partir d'images systèmes existantes. | Vagrant est un utilitaire de déploiement et de provisionnement automatique de machines virtuelles locales. Il permet de créer des environnements de tests ou de formation très rapidement à partir d'images systèmes existantes (générées avec Packer). |
| |
| [[https://learn.hashicorp.com/collections/vagrant/getting-started|Commencer avec Vagrant]] | [[https://learn.hashicorp.com/collections/vagrant/getting-started|Commencer avec Vagrant]] |