Tissu - Automatisez vos tâches d'administration Linux et vos déploiements d'applications sur SSH

Tissu - Automatisez vos tâches d'administration Linux et vos déploiements d'applications sur SSH

En ce qui concerne la gestion des machines distantes et le déploiement des applications, il existe plusieurs outils de ligne de commande, bien que beaucoup aient un problème commun de manque de documentation détaillée.

Dans ce guide, nous couvrirons les étapes pour introduire et commencer à utiliser le tissu pour améliorer l'administration de groupes de serveurs.

Automatiser les tâches d'administration Linux à l'aide de tissu

Tissu est une bibliothèque Python et un puissant outil de ligne de commande pour effectuer des tâches d'administration système telles que l'exécution de commandes SSH sur plusieurs machines et déploiement d'applications.

Lire aussi: Utilisez des scripts shell pour automatiser les tâches de maintenance du système Linux

Avoir une connaissance pratique de Python peut être utile lors de l'utilisation Tissu, mais peut certainement ne pas être nécessaire.

Raisons pour lesquelles vous devriez choisir du tissu plutôt que d'autres alternatives:

  1. Simplicité
  2. Il est bien documenté
  3. Vous n'avez pas besoin d'apprendre une autre langue si vous êtes déjà un gars python.
  4. Facile à installer et à utiliser.
  5. Il est rapide dans ses opérations.
  6. Il prend en charge l'exécution à distance parallèle.

Comment installer l'outil d'automatisation des tissus dans Linux

Une caractéristique importante sur le tissu est que les machines distantes dont vous avez besoin pour administrer n'ont besoin que du serveur OpenSSH standard. Vous n'avez besoin que de certaines exigences installées sur le serveur à partir duquel vous administrez les serveurs distants avant de pouvoir commencer.

Exigences:

  1. Python 2.5+ avec les en-têtes de développement
  2. Python-secuptools et pip (facultatif, mais préféré) gcc

Tissu est facilement installé en utilisant pépin (fortement recommandé), mais vous préférez également choisir votre gestionnaire de package par défaut Yum, DNF ou APT-get pour installer un package de tissu, généralement appelé tissu ou python.

Pour Rhel/ /Centos Distributions basées, vous devez faire installer le référentiel EPEL et activé sur le système pour installer le package de tissu.

# yum install tissu [sur les systèmes basés sur RedHat] # DNF Install Fabric [sur les versions Fedora 22+] 

Pour Debian Et ce sont des dérivés tels que Ubuntu et menthe Les utilisateurs peuvent simplement faire apt-get Pour installer le package de tissu comme indiqué:

# tissu d'installation apt-get 

Si vous souhaitez installer la version de développement de tissu, vous pouvez utiliser pépin Pour prendre la branche maîtresse la plus récente.

# yum install python-pip [sur les systèmes basés sur redhat] # dnf installer python-pip [sur les versions Fedora 22+] # apt-get install python-pip [sur les systèmes basés sur Debian] 

Une fois que PIP a été installé avec succès, vous pouvez utiliser PIP pour saisir la dernière version de tissu comme indiqué:

# PIP Installer le tissu 

Comment utiliser le tissu pour automatiser les tâches d'administration Linux

Alors, commençons comment vous pouvez utiliser le tissu. Pendant le processus d'installation, un script Python appelé fabuleux a été ajouté à un répertoire sur votre chemin. Le fabuleux Le script fait tout le travail lors de l'utilisation du tissu.

Exécution des commandes sur la machine Linux locale

Par convention, vous devez commencer par créer un fichier python appelé fabfile.py Utilisation de votre éditeur préféré. N'oubliez pas que vous pouvez donner à ce fichier un nom différent comme vous le souhaitez, mais vous devrez spécifier le chemin du fichier comme suit:

# tissu --fabfile / path / to / the / fichier.py 

Utilisations de tissu fabfile.py Pour exécuter des tâches. Le Fabfile doit être dans le même répertoire où vous exécutez l'outil de tissu.

Exemple 1: Créons un base Bonjour le monde d'abord.

# VI Fabfile.py 

Ajouter ces lignes de code dans le fichier.

Def Hello (): Print («Hello World, Tecmint Community») 

Enregistrez le fichier et exécutez la commande ci-dessous.

# Fab Hello 
Utilisation de l'outil de tissu

Regardons maintenant un exemple de fabfile.py Pour exécuter le durée de la baisse commande sur la machine locale.

Exemple 2: Ouvrir un nouveau fabfile.py Fichier comme suit:

# VI Fabfile.py 

Et collez les lignes de code suivantes dans le fichier.

#! / usr / bin / env python de tissu.API Import Local Def Uptime (): local ('Uptime') 

Ensuite, enregistrez le fichier et exécutez la commande suivante:

# Fab Uptime 
Tissu: vérifier la disponibilité du système

Exécuter des commandes sur les machines Linux distantes pour automatiser les tâches

Le API de tissu utilise un dictionnaire de configuration qui est l'équivalent de Python d'un tableau associatif appelé env, qui stocke les valeurs qui contrôlent ce que fait le tissu.

Le env.hôtes est une liste de serveurs sur lesquels vous voulez exécuter des tâches de tissu. Si votre réseau est 192.168.0.0 et souhaite gérer l'hôte 192.168.0.2 et 192.168.0.6 avec votre fabfile, vous pouvez configurer le env.hôtes comme suit:

#!/ usr / bin / env python de tissu.API Import Env Env.hôtes = ['192.168.0.2 ',' 192.168.0.6 '] 

La ligne de code ci-dessus spécifie uniquement les hôtes sur lesquels vous exécuterez des tâches de tissu mais ne faites rien de plus. Par conséquent, vous pouvez définir certaines tâches, le tissu fournit un ensemble de fonctions que vous pouvez utiliser pour interagir avec vos machines distantes.

Bien qu'il existe de nombreuses fonctions, les plus couramment utilisées sont:

  1. courir - qui exécute une commande shell sur une machine distante.
  2. local - qui exécute la commande sur la machine locale.
  3. Sudo - qui exécute une commande shell sur une machine distante, avec des privilèges racines.
  4. Obtenir - qui télécharge un ou plusieurs fichiers à partir d'une machine distante.
  5. Mettre - qui télécharge un ou plusieurs fichiers sur une machine distante.

Exemple 3: Pour faire écho à un message sur plusieurs machines, créez un fabfile.py comme celui ci-dessous.

#!/ usr / bin / env python de tissu.API import env, exécuter env.hôtes = ['192.168.0.2 ',' 192.168.0.6 '] def echo (): run ("echo -n' bonjour, vous êtes à l'écoute de tecmint '") 

Pour exécuter les tâches, exécutez la commande suivante:

# Fab Echo 
Tissu: automatiser les tâches Linux sur Linux distant

Exemple 4: Vous pouvez améliorer le fabfile.py que vous avez créé plus tôt pour exécuter le durée de la baisse commande sur la machine locale, afin qu'il exécute le durée de la baisse commande et vérifie également l'utilisation du disque à l'aide de la commande df sur plusieurs machines comme suit:

#!/ usr / bin / env python de tissu.API import env, exécuter env.hôtes = ['192.168.0.2 ',' 192.168.0.6 '] def uptime (): run (' Uptime ') def disk_space (): run (' df -h ') 

Enregistrez le fichier et exécutez la commande suivante:

# Fab Uptime # Fab Disk_space 
Tissu: automatiser les tâches sur plusieurs systèmes Linux

Déployez automatiquement la pile de lampe sur le serveur Linux distant

Exemple 4: Regardons un exemple de déploiement LAMPE (Linux, Apache, MySQL / MARIADB et PHP) sur un serveur Linux distant.

Nous rédigeons une fonction qui permettra à l'installation de lampe à distance en utilisant des privilèges racine.

Pour Rhel / Centos et Fedora
#!/ usr / bin / env python de tissu.API import env, exécuter env.hôtes = ['192.168.0.2 ',' 192.168.0.6 '] def deploy_lamp (): run ("yum install -y httpd mariaDb-server php php-mysql") 
Pour Debian / Ubuntu et Linux Mint
#!/ usr / bin / env python de tissu.API import env, exécuter env.hôtes = ['192.168.0.2 ',' 192.168.0.6 '] def deploy_lamp (): sudo ("apt-get install -q apache2 mysql-server libapache2-mod-php5 php5-mysql") 

Enregistrez le fichier et exécutez la commande suivante:

# fab deploy_lamp 

Note: En raison d'une grande sortie, il n'est pas possible pour nous de créer un screencast (GIF animé) pour cet exemple.

Vous pouvez maintenant automatiser les tâches de gestion des serveurs Linux en utilisant le tissu et ses fonctionnalités et exemples donnés ci-dessus…

Quelques options utiles à utiliser avec le tissu

  1. Tu peux courir fab-help Pour afficher les informations d'aide et une longue liste des options de ligne de commande disponibles.
  2. Une option importante est -Fabfile = chemin qui vous aide à spécifier un fichier de module Python différent à importer autrement alors fabfile.py.
  3. Pour spécifier un nom d'utilisateur à utiliser lors de la connexion aux hôtes distants, utilisez le -utilisateur = utilisateur option.
  4. Pour utiliser le mot de passe pour l'authentification et / ou Sudo, Utilisez le -mot de passe = mot de passe option.
  5. Pour imprimer des informations détaillées sur le nom de la commande, utilisez -affichage = nom option.
  6. Pour afficher les formats à utiliser -liste Option, choix: court, normal, imbriqué, utilisez le -liste de format = format option.
  7. Pour imprimer la liste des commandes possibles et sortir, incluez le -liste option.
  8. Vous pouvez spécifier l'emplacement du fichier de configuration à utiliser en utilisant le -config = chemin option.
  9. Pour afficher une sortie d'erreur colorée, utilisez -colorize-errors.
  10. Pour afficher le numéro de version du programme et sortir, utilisez le -version option.

Résumé

Le tissu est un outil puissant et est bien documenté et offre une utilisation facile aux débutants. Vous pouvez lire la documentation complète pour en savoir plus. Si vous avez des informations à ajouter ou à encourir les erreurs que vous rencontrez lors de l'installation et de l'utilisation, vous pouvez laisser un commentaire et nous trouverons des moyens de les réparer.

Référence: documentation en tissu