Recherche sur le site Web

Comment j’automatise les tâches de base sur Linux avec des scripts bash - et pourquoi vous devriez l’essayer


Arrêtez de perdre du temps avec des tâches répétitives et laissez les scripts bash faire le travail pour vous.

Les scripts Bash sont un domaine de Linux qui contribue à en faire la merveille de flexibilité et d’efficacité qu’il est. J’ai utilisé des scripts bash pour à peu près tout, des sauvegardes à la création d’utilisateurs, et bien plus encore, mais il y a un domaine où les scripts bash brillent vraiment : l’automatisation.

Vous pensez peut-être que c’est trop difficile pour vos compétences, mais vous seriez surpris de voir à quel point cela peut être facile. Ce que je vais faire, c’est vous montrer comment utiliser les scripts bash et le terminal Linux pour mettre à jour plusieurs machines Linux à la fois.

Êtes-vous prêt pour cela? Faisons-le.

Comment utiliser les scripts bash pour automatiser les tâches sous Linux

Ce dont vous aurez besoin : Les seules choses dont vous aurez besoin pour cela sont au moins deux ou trois machines Linux (sur le même réseau local) et un utilisateur avec des privilèges sudo. C’est tout.

1. Rédigez le scénario

Ouvrez une fenêtre de terminal et créez le script avec la commande :

nano updates.sh 

Collez ce qui suit dans le fichier :

#!/bin/bash 

Define your remote servers with comma-separated IP addresses servers=("SERVER1", "SERVER2")

Define the update command (make sure to edit this to conform to your package manager) update_command="sudo apt-get update && sudo apt-get upgrade -y"

Loop through each server and execute the update command for server in "${servers[@]}"; do echo "Updating server $server..." ssh USER@$server "$update_command" done

echo "Updates completed on all servers."

Où SERVER1 et SERVER2 sont les adresses IP des machines distantes, et USER est votre nom d’utilisateur distant.

J’ai ajouté des commentaires dans le script pour aider à expliquer ce qui se passe.

Enregistrez et fermez le fichier.

2. Donnez au script des autorisations exécutables

Pour exécuter le script, vous devez lui donner des autorisations exécutables avec la commande :

chmod u+x update.sh 

3. Générer une paire de clés SSH

Si vous ne l’avez pas encore fait, nous devons générer une paire de clés SSH car nous utiliserons l’authentification par clé SSH. Pour créer votre clé, exécutez la commande suivante :

ssh-keygen -t rsa 

Vous serez invité à taper et à vérifier un mot de passe pour la clé. Assurez-vous de le faire.

4. Copiez votre clé publique sur les machines distantes

Pour que l’authentification de la clé SSH fonctionne, vous devez copier la clé publique sur tous les serveurs qui bénéficieront du script. Pour ce faire, donnez la commande :

ssh-copy-id USER@SERVER 

Où USER est votre nom d’utilisateur distant et SERVER est l’adresse IP du premier serveur.

Faites la même chose pour tous les serveurs auxquels vous vous connecterez à partir du script.

5. Exécutez ssh-agent

Pour que cela fonctionne avec succès, vous devez démarrer une session ssh-agent, qui enregistre temporairement le mot de passe de votre clé SSH afin que vous n’ayez pas à le taper pour tous les serveurs de la liste. Pour démarrer une session, émettez la commande

eval `ssh-agent` 

Ensuite, ajoutez votre mot de passe de clé SSH avec :

ssh-add ~/.ssh/id_rsa 

On vous demandera de saisir le mot de passe de votre clé SSH.

6. Exécutez le script

Vous pouvez maintenant exécuter le script avec la commande :

./update.sh 

On ne vous demandera pas votre mot de passe d’utilisateur à distance parce que vous êtes dans une session ssh-agent qui peut négocier le transfert du mot de passe pour vous. Peu importe le nombre de serveurs que vous avez configurés pour le script; tant qu’ils connaissent la paire de clés SSH et que vous avez ajouté le mot de passe à la session ssh-agent, tout se déroulera sans accroc.

Vous pouvez maintenant prendre ce script et le modifier comme vous le souhaitez, ou vous pouvez créer vos propres scripts et utiliser l’authentification par clé SSH et l’agent ssh pour simplifier le processus d’automatisation.

Articles connexes