Tutoriel de module de fichier anible

Tutoriel de module de fichier anible
ANSIBLE est un utilitaire d'automatisation incroyable qui est rempli de fonctionnalités et d'outils pour gérer les hôtes distants. Il fonctionne en implémentant des modules pour effectuer des tâches et des opérations spécifiques.

Un module pratique dans Ansible est le module de fichier. Ce module est responsable de l'exécution de tâches telles que la création de fichiers et de répertoires, de supprimer des fichiers et des répertoires, la création de liens symboliques doux et durs, l'ajout et la modification des autorisations de fichiers et d'annuaire, et plus encore.

Ce guide vous guidera dans la façon de travailler avec le module de fichiers ANSIBLE. Nous illustrerons cela en utilisant une collection d'exemples et de manuels.

NOTE: Assurez-vous d'avoir accès à vos hôtes distants spécifiés dans le fichier d'inventaire d'ANSIBLE.

Comment fonctionne le module de fichier anible

Le anible.construit.Le module de fichier est dans l'installation ANSIBLE par défaut dans le cadre de Ansible-core. ANIBLE recommande de se référer au module en utilisant le «nom entièrement qualifié» au lieu du nom du module court pour éviter les conflits avec des modules de noms similaires.

Le module de fichiers contient une collection de paramètres prédéfinis pour la gestion des fichiers. Nous utilisons ces paramètres pour configurer les actions effectuées sur l'hôte distant.

Voici des paramètres importants que vous pouvez utiliser:

  1. Propriétaire - Nom d'utilisateur de l'utilisateur qui sera propriétaire du fichier et du répertoire créés
  2. Chemin - Chemin vers le fichier ou le répertoire pour gérer
  3. Mode - Mode d'autorisation à définir sur le fichier ou le répertoire spécifié. Utilisez la notation octale à l'intérieur d'une paire de citations simples.
  4. Groupe - Définit la propriété du groupe pour un fichier ou un répertoire
  5. Force - Une valeur booléenne utilisée pour forcer la création de Syminks si le fichier source n'est pas actuellement disponible (mais ajouté plus tard) ou que le Symmink de destination existe déjà.
  6. Suivre - Si des liens de système de fichiers existent, suivez-les.
  7. Les attributs - Définit les attributs du fichier ou du répertoire spécifié. Similaire à l'utilitaire Chattr par défaut dans Linux
  8. État - Définit le contexte de la création d'un fichier. Les options acceptées incluent:
    1. Touche - Créer un fichier vide
    2. Annuaire - Créer un répertoire
    3. Dur - Créer un lien dur
    4. Lien - Créer un lien doux
    5. Absent - Supprimer les fichiers et les répertoires récursivement et dissocier les liens

Vérifiez les documents de module de fichiers Ansible pour d'autres paramètres prédéfinis.

La meilleure façon d'apprendre à travailler avec le module de fichier ANSIBLE est par exemples.

Module de fichiers anible: exemples pratiques

NOTE: Ce guide suppose que vous avez un nœud de contrôle ANSIBLE et vos hôtes cibles ajoutés à votre fichier d'inventaire.

Comment créer un fichier vide

Pour créer un fichier vide à l'aide du module de fichier ANSIBLE, nous définissons l'état pour toucher comme illustré dans le playbook.

---
- hôtes: tout
Tâches:
- Nom: Créer un fichier vide
déposer:
Chemin: $ home / touch_file
État: toucher

Le playbook ci-dessus contient une configuration de base ANSIBLE:

  1. héberger - Définit les hôtes cibles distants pour exécuter le playbook. Vous pouvez définir un groupe d'hôtes éloignés ou un seul hôte.
  2. Tâches - Dit à ANSIBLE d'exécuter la tâche spécifiée sur l'hôte distant.
  3. nom - Spécifie le nom de la tâche à exécuter
  4. déposer - Appelle le module de fichier ANSIBLE
  5. chemin - Définit un chemin sur la machine distante où le fichier est créé.
  6. État - Créer un fichier vide à l'aide de toucher.

Enregistrez le playbook et exécutez-le sur les hôtes distants:

anable-playbook videfile.YML

Comment créer plusieurs fichiers

Anable vous permet de créer plusieurs fichiers dans une seule tâche. Vous trouverez ci-dessous un exemple de livre de jeu:

---
- hôtes: tout
Tâches:
- Nom: Créez plusieurs fichiers
déposer:
Chemin: $ home / item
État: toucher
avec_items:
- fichier1.c
- entête.H
- fichier2.py
- fichier3.SMS
- fichier4.RB

Dans le livre de jeu, nous utilisons deux entrées ANSIBLES:

  1. article - Dit à Ansible de créer un chemin unique pour les fichiers spécifiés.
  2. avec_item - Crée une liste de fichiers à créer sur l'hôte distant. Vous pouvez ajouter autant de fichiers et d'extensions que vous le voyez.

Exécutez le livre de jeu ANSIBLE pour créer plusieurs fichiers spécifiés:

ANSIBLE-PLAYBOOK MULTIPLES.YML

Comment créer un fichier avec du contenu

Dans les exemples ci-dessus, nous créons des fichiers vides à l'aide de la commande tactile. Pour créer un fichier avec le contenu, nous pouvons utiliser le module de copie et définir le paramètre de contenu sur le contenu du fichier.

Vous trouverez ci-dessous un exemple de livre de jeu:

---
- hôtes: tout
Tâches:
- Nom: Créez un fichier avec le contenu
copie:
dest: $ home / bonjour.cpp
Contenu: |
#inclure
Utilisation de l'espace de noms Std
int main ()
couter << "hello world" << endl;
retour 0;

Les modules et paramètres dans le manuel ci-dessus sont:

  1. copie - Implique le module de copie Ansible.
  2. destruction - Le chemin de destination de votre fichier
  3. contenu - Le contenu à ajouter à votre fichier. Chaque ligne est ajoutée à une nouvelle ligne.

Exécutez le livre de jeu:

ANSIBLE-PLAYBOOK avec CONTENT.YML

Comment créer un répertoire

Le PlayBook utilisé pour créer un répertoire à l'aide du module de fichier ANSIBLE est similaire à la création d'un fichier vide. Cependant, comme indiqué ci-dessous, nous définissons l'état sur «répertoire» au lieu de «fichier»:

---
- hôtes: tout
Tâches:
- Nom: CreenEadirectory
déposer:
Chemin: $ Home / ANSIBLE-DIR
État: répertoire

Comment supprimer un fichier ou un lien symbolique

La suppression des fichiers, des répertoires ou des liens symboliques est très simple; Tout ce que nous avons à faire est de définir l'état pour être absent, comme indiqué dans le livre de jeu ci-dessous:

---
- hôtes: tout
Tâches:
- Nom: Supprimez les fichiers
déposer:
Chemin: $ Home / ANSIBLE-DIR
État: absent

Le playbook ne fera rien si le fichier spécifié n'existe pas.

Comment changer la permission d'un répertoire

Nous utilisons les paramètres du propriétaire, du groupe et du mode du Playbook pour modifier l'autorisation d'un répertoire.

L'exemple suivant définira les autorisations spécifiées sur le répertoire.

---
- hôtes: tout
devenir vrai
Tâches:
- Nom: ModifyDirperMissions
déposer:
chemin: / var / log
État: répertoire
propriétaire: root
groupe: root
Mode: 0755

Dans l'exemple de playbook ci-dessus, nous avons défini devenu: vrai. Ceci est nécessaire lors de la définition des autorisations pour d'autres utilisateurs, sauf ANSIBLE_USER

  1. Utilisez la notation octale pour spécifier les autorisations, y compris le principal 0.

En utilisant le mode symbolique

Anible vous permet de définir les autorisations en mode symbolique au lieu du format octal. Le mode ci-dessous équivaut à 0777.

---
- hôtes: tout
devenir vrai
Tâches:
- Nom: ModifyDirperMissions au format symbolique
déposer:
chemin: / var / log /
État: répertoire
Mode: u = rwx, g = rwx, o = rwx

NOTE: Le réglage 0777 à un répertoire tel que / var / log n'est pas la meilleure pratique, et nous l'avons utilisé ici à des fins d'illustration uniquement.

Modifier les autorisations de répertoire récursivement

Si vous souhaitez modifier les autorisations sur un répertoire récursivement, vous pouvez utiliser le paramètre Recurse comme indiqué dans le livre de jeu ci-dessous:

---
- hôtes: tout
devenir vrai
Tâches:
- Nom: ModifyDirperMissions en cours
déposer:
chemin: / var / log /
État: répertoire
propriétaire: root
groupe: root
Mode: 0755
Recurse: vrai

Définition Recurse: True affectera les fichiers dans le répertoire parent spécifié.

Comment créer un lien symbolique

La création d'un lien symbolique à l'aide du module de fichier ANSIBLE est aussi simple que la création d'un répertoire vide. Dans ce cas, nous avons défini l'état sur le lien comme indiqué dans l'exemple de playbook ci-dessous:

---
- hôtes: tout
- devenir vrai
Tâches:
- Nom: CreateaSymLink
déposer:
src: $ home / src_file
dest: / etc / dest_symlink
État: lien

Comment supprimer un lien symbolique

La suppression d'un lien symbolique est similaire à la suppression d'un fichier régulier.

---
- hôtes: tout
- devenir vrai
Tâches:
- Nom: RemoveAsymLink
déposer:
chemin: / etc / dest_symlink
État: absent

Comment modifier l'heure d'accès

Vous pouvez modifier le temps d'accès et de modification à l'aide des paramètres Access_time et modification_time.

Exemple de livre de jeu:

- devenir vrai
Tâches:
- Nom: ModifyAccessandModifiedTime
déposer:
chemin: / etc / anible / hôtes
affirmer: le dossier
Access_time: maintenant
Modification_time: "202110041123.11 "

Nous définissons l'accès à l'heure actuelle en utilisant la fonction NOW.

Vous pouvez également fournir du temps pour les paramètres Access_time et modification_time dans le format (en tant que chaîne):

Yyyymmddhhmm.SS

Conclusion

Ce guide vous a aidé à comprendre comment travailler avec le module de fichiers ANSIBLE dans un playbook.