🍫 Chocolatey Factory : Packaging Windows
Vue d'ensemble
Formation complète sur Chocolatey, le gestionnaire de packages pour Windows. Apprenez à créer, déployer et gérer des packages d'applications Windows de manière automatisée, du poste de travail aux serveurs, avec un repository privé et une intégration CI/CD.
🎯 Objectifs pédagogiques
À l'issue de cette formation, vous serez capable de :
- ✅ Maîtriser le client Chocolatey : Installation, recherche, installation/désinstallation de packages
- ✅ Créer des packages : Packaging d'applications (MSI, EXE, ZIP) avec nuspec et PowerShell
- ✅ Déployer un repository privé : Chocolatey Server, Artifactory ou Nexus
- ✅ Automatiser les déploiements : Ansible, GPO, Intune, SCCM
- ✅ Gérer les versions : Update, pinning, rollback
- ✅ Sécuriser : Signatures, checksums, source validation
- ✅ Intégrer CI/CD : GitLab CI, GitHub Actions pour packager automatiquement
📚 Programme détaillé
Module 1 : Client & CLI Chocolatey
Durée estimée : 2h
- 🍫 Introduction à Chocolatey
- Pourquoi Chocolatey ? (vs winget, SCCM, scripts manuels)
- Architecture : Client → Repository (public/privé)
- Comparaison : chocolatey.org vs Chocolatey for Business
- 💻 Installation du client
- Installation via PowerShell (one-liner)
- Configuration : sources, proxy, cache
- Vérification :
choco --version
- 🔍 Commandes essentielles
choco search: Rechercher des packageschoco install: Installer (avec --yes, --force)choco upgrade: Mettre à jourchoco uninstall: Désinstallerchoco list --local-only: Lister les packages installés
- 🎓 Exercice : "The Workstation Setup"
- Installer Chocolatey sur Windows 11
- Installer 7zip, Git, VSCode, Chrome via Chocolatey
- Créer un script
setup-workstation.ps1pour automatiser
Module 2 : Création de Paquets (Packaging)
Durée estimée : 3h
- 📦 Anatomie d'un package Chocolatey
- Structure :
.nuspec(métadonnées) +tools\chocolateyInstall.ps1 - Manifest nuspec : id, version, authors, dependencies
- Script PowerShell : Install-ChocolateyPackage, Uninstall
- Structure :
- 🛠️ Créer un package MSI
- Étape 1 :
choco new myapp(génère le template) - Étape 2 : Éditer
myapp.nuspec - Étape 3 : Télécharger le MSI (ou embarquer localement)
- Étape 4 :
choco pack(génère myapp.1.0.0.nupkg) - Étape 5 : Tester avec
choco install myapp -source .
- Étape 1 :
- 🔒 Checksums & Sécurité
- Générer les checksums :
checksum -t sha256 -f installer.msi - Valider les téléchargements (éviter MITM attacks)
- Générer les checksums :
- 🎓 Exercice : "Package Notepad++"
- Créer un package pour Notepad++ 8.6.0
- Télécharger l'installer depuis GitHub Releases
- Générer le checksum SHA256
- Packager et tester l'installation
- Gérer la désinstallation proprement
Module 3 : Serveur Privé (Internal Repository)
Durée estimée : 2h30
- 🏢 Pourquoi un repository privé ?
- Contrôle des versions approuvées
- Packages internes (apps métier)
- Pas de dépendance Internet (air-gapped environments)
- 🖥️ Solutions de hosting
- Chocolatey Server (simple, gratuit, ASP.NET)
- Artifactory / Nexus (enterprise-grade)
- File Share (basique, SMB)
- 🚀 Déployer Chocolatey Server
- Installation sur Windows Server 2022
- Configuration IIS (port 80/443)
- Ajouter la source sur les clients :
choco source add -n internal -s http://choco.corp.local
- 📤 Pousser des packages
choco push myapp.1.0.0.nupkg -s http://choco.corp.local -k API_KEY
- 🎓 Exercice : "The Corporate Repository"
- Déployer Chocolatey Server sur un serveur
- Pousser 3 packages (7zip, Notepad++, Chrome)
- Configurer 5 clients pour utiliser le repo privé
- Installer les packages depuis le repo interne
Module 4 : Déploiement Automatisé
Durée estimée : 3h
- 🤖 Méthode 1 : Ansible
- Module
win_chocolatey: Install, upgrade, uninstall - Playbook : Déployer une stack complète (IIS, SQL, .NET)
- Module
- 📋 Méthode 2 : Group Policy (GPO)
- Scheduled Task via GPO (script PowerShell + choco install)
- Startup Script (Computer Configuration)
- Déploiement silencieux :
--yes --no-progress
- ☁️ Méthode 3 : Intune / SCCM
- Créer une app Intune avec Chocolatey wrapper
- Déployer sur des groupes AD (Dev, Test, Prod)
- 🎓 Exercice : "Mass Deployment"
- Créer un playbook Ansible pour déployer :
- Google Chrome
- 7zip
- Notepad++
- Git
- Tester sur 10 VMs Windows 11
- Vérifier avec
choco list --local-only
- Créer un playbook Ansible pour déployer :
Module 5 : TP Final - Chocolatey Factory Complète
Durée estimée : 4h
- 🏢 Scénario : DevOps Corp
- 200 postes de travail Windows 11
- 50 serveurs Windows Server 2022
- Besoin : Standardiser les apps installées
- 🚀 Mission
- Déployer Chocolatey Server (repository privé)
- Créer 10 packages d'applications métier :
- 7zip, Chrome, Firefox, VSCode, Git, Postman
- SQL Server Management Studio, Putty, WinSCP, FileZilla
- Configurer 3 "stacks" :
- Developer Stack : VSCode, Git, Postman, Docker Desktop
- Admin Stack : Putty, WinSCP, SSMS, Sysinternals
- User Stack : Chrome, 7zip, PDF Reader
- Déployer via Ansible sur les 200 postes
- Créer un pipeline GitLab CI pour auto-packager les nouvelles versions
- ✅ Validation
- Script
Test-ChocoFactory.ps1(10 checks) - 100% des postes avec les bonnes apps
- Repository privé opérationnel
- Script
🎓 Prérequis
Connaissances requises
- ✅ Administration Windows (niveau intermédiaire)
- ✅ PowerShell (niveau basique)
- ✅ Notions de packaging (MSI, EXE)
- ✅ Git (pour le TP CI/CD)
Environnement technique
- 💻 Serveur Chocolatey : Windows Server 2022 (2 vCPU, 4 GB RAM, 100 GB Disk)
- 💻 Clients de test : Windows 11 Pro (×5 minimum)
- 🌐 Accès Internet : Pour télécharger les installers
- 🔧 Optionnel : Ansible Control Node (Linux/WSL) pour automatisation
Laboratoire virtuel
Un environnement Vagrant est fourni avec 1 Chocolatey Server + 5 clients Windows 11.
📖 Méthodologie pédagogique
Chaque module suit la structure CoPrEx :
- 📘 Concept : Explication théorique avec architecture
- 💻 Pratique : Commandes CLI et scripts PowerShell commentés
- 🎓 Exercice : Mise en situation réaliste avec objectifs clairs
- ✅ Solution : Correction détaillée avec scripts complets
🔗 Références complémentaires
- Documentation officielle Chocolatey
- Chocolatey Community Repository
- Chocolatey for Business
- Packaging Best Practices
- Guide ShellBook : Windows Productivity
📑 Accès aux Modules
| Module | Titre | Durée |
|---|---|---|
| Module 1 | Client & CLI Chocolatey | 2h |
| Module 2 | Création de Paquets (Packaging) | 3h |
| Module 3 | Serveur Privé (Internal Repository) | 2h30 |
| Module 4 | Déploiement Automatisé | 3h |
| TP Final | Chocolatey Factory Complète | 4h |
🚀 Prêt à commencer ?
Rendez-vous au Module 1 : Client & CLI Chocolatey pour débuter la formation !
Besoin d'aide ?
Cette formation fait partie du parcours Écosystème Microsoft de ShellBook. Pour des questions ou suggestions, ouvrez une issue sur le dépôt GitHub.