Comment utiliser ANSIBLE LINEINFILE

Comment utiliser ANSIBLE LINEINFILE
ANSIBLE est un outil d'automatisation open source gratuit capable de gérer un ou des centaines d'hôtes éloignés. Son utilisation principale est la gestion des configurations, le déploiement de serveurs distants, la gestion des applications et des services, et bien d'autres. Il fonctionne également sur les systèmes UNIX et UNIX, ainsi que sur Windows.

Hors de la boîte, ANIBLE a de nombreux outils et fonctionnalités. L'un d'eux est le module LineInfile. Ce module vous permet de gérer une seule ligne dans un fichier situé sur un hôte distant.

Il prend en charge les fonctionnalités telles que le remplacement du contenu sur un fichier, la mise à jour du contenu dans une ligne, l'ajout de contenu sur une ligne, et plus.

Ce guide illustrera comment utiliser le module ANSIBLE LINEInfile pour gérer les fichiers sur des hôtes distants.

Exigences

Pour suivre le concept de ce tutoriel, assurez-vous d'avoir les exigences de base suivantes:

  1. Un nœud de contrôle anible
  2. Un hôte distant à gérer
  3. Accès SSH à l'hôte distant

Confirmer si une entrée spécifique existe

Pour nous assurer qu'une entrée spécifique est présente dans un fichier, nous pouvons utiliser le module LineInfile et préparer la scène pour présenter.

Considérez l'exemple de playbook ci-dessous:

---
- hôtes: tout
rassemble_facts: oui
devenir: oui
Tâches:
- Nom: Vérifiez si / etc / hôtes contient 127.0.0.1"
LineInfile:
Chemin: "/ etc / hôtes"
État: présent
Ligne: "127.0.0.1"
Check_Mode: Oui
Enregistrer:

L'exemple ci-dessus vérifiera si l'entrée existe dans le fichier spécifié et l'ajoutera s'il n'existe pas.

Créer un fichier et ajouter une nouvelle ligne

Nous pouvons utiliser le module LineInfile pour créer un fichier et ajouter une nouvelle ligne au fichier créé.

Considérez l'exemple de playbook ci-dessous:

---
- hôtes: tout
rassemble_facts: non
Tâches:
- Nom: Créez un fichier et ajoutez la ligne
LineInfile:
dest: / home / ubuntu / exemple.confli
Ligne: il s'agit d'une nouvelle entrée dans le fichier
État: présent
Créer: vrai

Dans l'exemple Playbook ci-dessus, nous utilisons le paramètre dest pour spécifier le chemin du fichier.

Ensuite, nous utilisons le paramètre de ligne pour définir la ligne pour ajouter au fichier. Nous utilisons cela conjointement avec l'état: paramètre actuel.

Enfin, nous définissons le paramètre Créer sur True, qui indique à Ansible de créer le fichier s'il existe.

Si vous exécutez le playbook deux fois, il n'effectuera aucune action car le fichier et la ligne spécifiés existent.

Ajouter une ligne avant / après une entrée

Pour ajouter une ligne avant ou après une entrée particulière, vous pouvez utiliser les paramètres d'insertion ou d'insertion avant.

Jetez un œil à l'exemple ci-dessous:

---
- hôtes: tout
rassemble_facts: non
Tâches:
- Nom: Ajouter une ligne avant / après
LineInfile:
chemin: / etc / apache2 / apache2.confli
regex: '^ serverroot'
insertafter: '^ # serverroot'
Ligne: serverroot "/ etc / apache2"

Après la ligne commentée, le module LineInfile ajoutera l'entrée de serverroot "/ etc / apache2".

Suppression d'une ligne

Pour supprimer une entrée d'un fichier, définissez l'état sur l'absence comme indiqué dans l'exemple de playbook ci-dessous:

---
- hôtes: tout
rassemble_facts: non
Tâches:
- Nom: Supprimer une ligne
LineInfile:
chemin: / etc / apache2 / apache2.confli
regex: '^ # serverroot'
État: absent

L'exemple ci-dessus utilise une expression régulière simple pour correspondre à la ligne à partir de #serverroot.

Commentant une ligne

Pour commenter une ligne, utilisez le paramètre ANSIBLE LINEINFILE Backrefs. Jetez un œil à l'exemple de playbook ci-dessous:

---
- hôtes: tout
rassemble_facts: non
Tâches:
- Nom: Supprimer une ligne
LineInfile:
chemin: / etc / apache2 / apache2.confli
ligne 1'
Regex: '^ # écouter 8080'
Backrefs: oui

Dans l'exemple ci-dessus, nous utilisons une expression régulière pour correspondre à la ligne que nous souhaitons commenter.

Nous utilisons ensuite le contenu de la ligne de correspondance et ajoutons un personnage de commentaire.

Fichier de sauvegarde avant de changer

Il est bon de vous assurer de sauvegarder une copie de vos fichiers avant de les modifier pour faciliter la restauration des fichiers en cas d'erreurs.

Pour sauvegarder un fichier à l'aide du module LineInfile, nous pouvons définir l'option de sauvegarde sur true.

Considérez l'exemple de playbook ci-dessous:

---
- hôtes: tout
rassemble_facts: non
Tâches:
- Nom: Supprimer une ligne
LineInfile:
chemin: / etc / apache2 / apache2.confli
regex: '^ # serverroot'
État: absent
Sauvegarde: oui

Conclusion

Le module ANSIBLE LINEInfile est bénéfique lors de la modification des fichiers de configuration sur les hôtes distants à l'aide de livres de play-books anibles.

Merci pour la lecture!