Comment utiliser des livres de jeu ANSIBL pour automatiser les tâches complexes sur plusieurs serveurs distants - partie 2

Comment utiliser des livres de jeu ANSIBL pour automatiser les tâches complexes sur plusieurs serveurs distants - partie 2

Dans l'article précédent de cette série ANNIBLE, nous avons expliqué qu'Anible est un outil sans agent qui vous permet de gérer rapidement et efficacement plusieurs machines (également appelées nœuds - et d'y effectuer également des déploiements) à partir d'un seul système.

Utilisez des livres de jeu ANSIBL pour automatiser les tâches complexes sur Linux - partie 2

Après avoir installé le logiciel dans la machine du contrôleur, créant les clés de la connexion sans mot de passe et les copiant aux nœuds, il est temps d'apprendre à optimiser le processus de gestion de ces systèmes distants en utilisant Anable.

Environnement de test anable

Tout au long de cet article, ainsi que le prochain, nous utiliserons l'environnement de test suivant. Tous les hôtes sont Centos 7 des boites:

Machine de contrôleur (où ANIBLE est installé): 192.168.0.19 Node1: 192.168.0.29 Node2: 192.168.0.30 

De plus, veuillez noter que les deux nœuds ont été ajoutés dans la section des serveurs Web du local / etc / anible / hôtes déposer:

Fichier hôte anable

Cela dit, commençons avec le sujet à portée de main.

Présentation des livres de jeu anibles

Comme décrit dans le guide précédent, vous pouvez utiliser le anable utilitaire pour exécuter les commandes dans les nœuds distants comme suit:

# anible -a "/ bin / hostnamectl - statique" webservers 
ANNIBLE: Exécutez les commandes sur Linux distant

Dans l'exemple ci-dessus, nous avons couru hostNamectl --statique sur node1 et node2. Il ne faut pas longtemps pour que l'on se rende compte que cette méthode d'exécution des tâches sur les ordinateurs distants fonctionne bien pour les courtes commandes, mais peut rapidement devenir lourde ou désordonné pour des tâches plus complexes qui nécessitent d'autres paramètres de configuration bien structurés ou des interactions avec d'autres services

Par exemple, la configuration et la configuration Wordpress sur plusieurs hôtes - que nous couvrirons dans le prochain article de cette série). C'est ici que Manuels entrer en scène.

Tout simplement, Manuels sont des fichiers texte brut écrit dans le Yaml format et contenir une liste avec des éléments avec une ou plusieurs paires de clés / valeur (également connues sous le nom de «hacher"Ou un"dictionnaire»).

À l'intérieur de chaque manuel, vous trouverez un ou plusieurs groupes d'hôtes (chacun de ces groupes est également appelé jouer) où les tâches souhaitées doivent être effectuées.

Un exemple des documents officiels nous aidera à illustrer:

1. hôtes: Ceci est une liste de machines (selon / etc / anible / hôtes) où les tâches suivantes seront effectuées.

2. télécommande: compte distant qui sera utilisé pour effectuer les tâches.

3. varbac: Variables utilisées pour modifier le comportement du ou des systèmes distants (s).

4. Les tâches sont exécutées dans l'ordre, une à la fois, contre toutes les machines qui correspondent aux hôtes. Dans une pièce, tous les hôtes vont obtenir les mêmes directives de tâches.

Si vous devez exécuter un ensemble différent de tâches associées pour un hôte spécifique, créez un autre jeu dans le courant Livre de jeu (En d'autres termes, le but d'un jeu est de cartographier une sélection spécifique d'hôtes aux tâches bien définies).

Dans ce cas, commencez une nouvelle pièce en ajoutant la directive des hôtes en bas et recommençant:

--- - Hôtes: Webservers Remote_user: ROOT VARS: Variable1: Value1 Variable2: Value2 Remote_User: Root Tasks: - Nom: Description pour Task1 Task1: Parameter1 = Value_For_Parameter1 Parameter2 = Value_For_Parameter2 - Nom: Description pour Task1 Task2: Parameter1 = Value_For_Parameter1 Paramètre2 = Value_For_ParAmEter2 Nom: Description du gestionnaire 1 Service: name = name_of_service state = service_status - hôtes: dbservers Remote_User: root vars: variable1: Value1 variable2: value2… 

5. Les gestionnaires sont des actions qui sont déclenchées à la fin de la section des tâches dans chaque pièce, et sont principalement utilisées pour redémarrer les services ou déclencher des redémarrages dans les systèmes distants.

# mkdir / etc / anible / playbooks 

Et un fichier nommé apache.YML À l'intérieur de là avec le contenu suivant:

--- - Hôtes: Webservers vars: http_port: 80 max_clients: 200 Remote_user: Tâches racine: - Nom: Assurez-vous qu'Apache est à la dernière version yum: pkg = httpd state = le dernier - Nom: Remplacer l'index par défaut.Copie de fichier html: src = / static_files / index.html dest = / var / www / html / mode = 0644 notify: - redémarrer apache - name: assurez-vous qu'Apache est en cours d'exécution (et activez-le au démarrage) Service: name = httpd state = démarré activé = oui des gestionnaires: - nom: redémarrez apache Service: name = httpd state = redémarré 

Deuxièmement, créez un répertoire / static_files:

# mkdir / static_files 

où vous rangerez la coutume indice.html déposer:

       

Apache a été lancé dans cet hôte via ANSIBLE


Vous a apporté par Tecmint.com

Cela dit, il est maintenant temps d'utiliser ce livre de jeu pour effectuer les tâches mentionnées plus tôt. Vous noterez qu'Anible passera par chaque tâche par l'hôte, une à la fois, et rendra compte de l'état de ces tâches:

# anible-playbook / etc / anible / playbooks / apache.YML 
ANSIBLE: Automatiser les tâches dans Linux

Voyons maintenant ce qui se passe lorsque nous ouvrons un navigateur et le pointez vers 192.168.0.29 et 192.168.0.30:

ANSIBLE: confirmez les tâches automatisées

Allons plus loin et arrêtons manuellement et désactivons Apache sur node1 et node2:

# systemctl stop httpd # systemctl disable httpd # systemctl is-active httpd # systemctl IS-compatible httpd 
Arrêt et désactiver le service Apache

Puis courez à nouveau,

# anible-playbook / etc / anible / playbooks / apache.YML 

Cette fois, la tâche rapporte que le serveur Web Apache a été démarré et activé sur chaque hôte:

ANSIBLE: Démarrez le serveur Web

Veuillez considérer l'exemple ci-dessus comme un aperçu de la puissance d'Anble. Bien qu'il s'agisse de tâches relativement faciles lorsqu'elles sont effectuées sur un petit nombre de serveurs, cela peut devenir très fastidieux et long si vous devez faire de même dans plusieurs (peut-être des centaines) de machines.

Résumé

Dans cet article, nous avons décrit comment exécuter des commandes et exécuter des tâches complexes sur plusieurs hôtes distants en utilisant simultanément. La documentation officielle et le référentiel GitHub fournissent de nombreux exemples et guides sur la façon d'utiliser ANMIBLE pour réaliser presque toutes les tâches imaginables.

Alors que vous commencez à apprendre à automatiser les tâches sur des hôtes Linux distants en utilisant Anible, nous aimerions entendre vos pensées. Les questions, commentaires et suggestions sont également toujours les bienvenus, alors n'hésitez pas à nous contacter en utilisant le formulaire ci-dessous à tout moment.