Ceci est un texte traduit automatiquement qui peut contenir des erreurs !
Si vous avez effectué la même tâche pour la troisième fois, il est temps de l’automatiser. Le scripting consiste à laisser la machine effectuer le travail fastidieux à votre place, plus rapidement et sans rien oublier.
Pourquoi automatiser ?
Certaines tâches dans l’exploitation informatique sont effectuées fréquemment :
- Mettre à jour les serveurs
- Créer des utilisateurs
- Effectuer des sauvegardes
- Redémarrer les services après une mise à jour
- Vérifier que les services fonctionnent
Effectuer ces tâches manuellement à chaque fois prend du temps, et il est facile d’oublier une étape. Un script fait la même chose à chaque fois, sans se plaindre.
Nouveau sur Proxmox ou la configuration de machines virtuelles ?
[[Virtuelisation Niveau 1 - Tutoriel VM|🖥️ Virtuelisation]] montre comment créer et configurer une machine virtuelle dans Proxmox – vous avez besoin d’une machine virtuelle fonctionnelle pour les tâches de cette matière.
Bash : Scripting sous Linux
Bash est le shell (terminal) dans la plupart des distributions Linux, et il peut également exécuter des scripts. Un script Bash est simplement un fichier texte contenant des commandes qui sont exécutées séquentiellement.
Votre premier script
Créez un fichier nommé oppdater.sh :
#!/bin/bash
# Met à jour la liste des paquets et installe les mises à jour
echo "Met à jour le système..."
sudo apt update
sudo apt upgrade -y
echo "Terminé !"
Rendez le fichier exécutable et exécutez-le :
chmod +x oppdater.sh
./oppdater.sh
# Ceci rend le script exécutable.
# Ceci exécute le script.
#!/bin/bash
La première ligne s’appelle un shebang. Elle indique au système d’exploitation que le fichier doit être exécuté avec Bash. Sans cela, le système ne sait pas quel programme doit interpréter le script.
Variables et entrées
#!/bin/bash
BRUKERNAVN=$1
if [ -z "$BRUKERNAVN" ]; then
echo "Utilisation: ./lag_bruker.sh <nom_utilisateur>"
exit 1
fi
sudo adduser "$BRUKERNAVN"
sudo usermod -aG sudo "$BRUKERNAVN"
echo "Utilisateur $BRUKERNAVN créé avec l'accès sudo."
Voici le script qui prend un nom d’utilisateur en argument ($1 est le premier argument). Si vous exécutez ./lag_bruker.sh ola, cela créera l’utilisateur ola et lui donnera l’accès sudo.
Concepts Bash Utiles
| Concept | Exemple | Ce qu’il fait |
|---|---|---|
| Variable | NAVN="Ola" | Stocke une valeur |
| Argument | $1, $2 | Entrée de la ligne de commande |
| Vérification If | if [ -f "fil.txt" ]; then | Vérifie si un fichier existe |
| Boucle For | for f in *.log; do | Effectue une action pour chaque fichier correspondant |
| Pipe | cat logg.txt \| grep "ERROR" | Envoie la sortie d’une commande à une autre |
PowerShell : Scripting sous Windows
PowerShell est la réponse de Windows à Bash, mais il est plus orienté objet. Il travaille avec des objets plutôt qu’avec du simple texte, ce qui le rend puissant pour l’administration des systèmes Windows.
Exemple : Vérifier l’espace disque
# Vérifier l'espace disque disponible
Get-PSDrive -PSProvider FileSystem | Select-Object Name,
@{Name="Utilisé (GB)"; Expression={[math]::Round($_.Used / 1GB, 2)}},
@{Name="Libre (GB)"; Expression={[math]::Round($_.Free / 1GB, 2)}}
Exemple : Installer des logiciels avec Winget
# Installer plusieurs programmes à la fois
winget install Mozilla.Firefox
winget install Microsoft.VisualStudioCode
winget install Git.Git
winget install Python.Python.3.12
C’est beaucoup plus rapide que de télécharger et d’installer tout manuellement. Vous pouvez enregistrer la liste dans un script et l’exécuter à chaque fois que vous configurez une nouvelle machine.
Chocolatey – une alternative à Winget
Chocolatey est un gestionnaire de paquets tiers pour Windows, ayant le même objectif que Winget : choco install firefox au lieu de winget install Mozilla.Firefox. Winget est intégré dans Windows et couvre le même besoin, donc vous n’avez pas besoin des deux pour comprendre le concept.
Exercice 1 - Créer un script de mise à jour
Écrivez un script Bash qui :
- Met à jour la liste des paquets
- Installe toutes les mises à jour disponibles
- Redémarre Nginx (ou un autre service que vous avez en cours d’exécution)
- Affiche un message une fois terminé
Exécutez-le sur l’une de vos VM et vérifiez qu’il fonctionne.
Vous n’avez pas encore de serveur Nginx ou d’autre service en cours d’exécution ?
[[Utilisation des conteneurs Niveau 1 - Exécuter et inspecter un conteneur|Exécutez et inspectez un conteneur]] configure un conteneur Nginx que vous pouvez utiliser pour cette tâche.
Exercice 2 - Automatiser la configuration d’une machine
Créez un script PowerShell (.ps1) ou une simple liste de commandes winget install pour tous les programmes dont vous avez besoin sur un nouvel ordinateur. Réfléchissez à :
- Quels programmes installez-vous toujours ?
- Pouvez-vous également configurer certains paramètres avec le script ?
La prochaine fois que vous configurerez une machine, exécutez simplement le script au lieu de passer une heure à l’installation manuelle.
Souhaitez-vous plutôt écrire des scripts en Python ?
Bash et PowerShell sont les plus courants pour le script système, mais Python fonctionne également très bien. [[Python 1 Nivau 1 - Introduction à Python|🐍 Python]] et les niveaux suivants vous fourniront les bases, et des bibliothèques comme os et subprocess vous permettent d’accomplir beaucoup des mêmes tâches que ici.
Résumé
- Si vous faites quelque chose de plus de deux fois, envisagez de l’automatiser
- Bash (Linux) et PowerShell (Windows) sont les outils les plus courants pour le scripting
- Les scripts Bash sont des fichiers texte contenant des commandes qui sont exécutées séquentiellement
- PowerShell travaille avec des objets et est puissant pour l’administration Windows
- Les variables, les arguments, les vérifications if et les boucles sont les principaux éléments constitutifs