Module Ansible File

AnsibleAnsibleBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous allez explorer le module Ansible File, qui vous permet de gérer les fichiers et les répertoires sur des hôtes distants. Le module File offre un large éventail de fonctionnalités, telles que la création, la suppression, la modification des permissions et la vérification de l'existence de fichiers et de répertoires.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL ansible(("Ansible")) -.-> ansible/ModuleOperationsGroup(["Module Operations"]) ansible(("Ansible")) -.-> ansible/PlaybookEssentialsGroup(["Playbook Essentials"]) ansible/ModuleOperationsGroup -.-> ansible/debug("Test Output") ansible/ModuleOperationsGroup -.-> ansible/file("Manage Files/Directories") ansible/ModuleOperationsGroup -.-> ansible/shell("Execute Shell Commands") ansible/ModuleOperationsGroup -.-> ansible/stat("File Statistics") ansible/ModuleOperationsGroup -.-> ansible/template("Generate Files from Templates") ansible/PlaybookEssentialsGroup -.-> ansible/playbook("Execute Playbook") subgraph Lab Skills ansible/debug -.-> lab-289654{{"Module Ansible File"}} ansible/file -.-> lab-289654{{"Module Ansible File"}} ansible/shell -.-> lab-289654{{"Module Ansible File"}} ansible/stat -.-> lab-289654{{"Module Ansible File"}} ansible/template -.-> lab-289654{{"Module Ansible File"}} ansible/playbook -.-> lab-289654{{"Module Ansible File"}} end

Créer un fichier sur un hôte distant

Dans cette étape, vous allez créer un fichier sur un hôte distant à l'aide du module Ansible File.

Tout d'abord, créez un nouveau fichier de playbook Ansible nommé /home/labex/project/file-module-playbook.yaml et ouvrez-le dans un éditeur de texte.
Ajoutez le contenu suivant au fichier de playbook :

- hosts: localhost
  tasks:
    - name: Créer un fichier sur un hôte distant
      file:
        path: /home/labex/file.txt
        state: touch
  • file : Module Ansible pour manipuler le système de fichiers.
  • path : Spécifie le chemin vers le fichier, dans ce cas /home/labex/file.txt.
  • state : Spécifie l'état du fichier. Ici, touch indique que le fichier sera créé s'il n'existe pas, ou mis à jour avec les horodatages d'accès et de modification s'il existe déjà.

Le but de ce playbook est de créer un fichier nommé file.txt sur l'hôte distant.

Ensuite, exécutez le playbook à l'aide de la commande suivante :

ansible-playbook file-module-playbook.yaml

Sortie exemple :

[WARNING]: Aucun inventaire n'a été analysé, seul localhost implicite est disponible
[WARNING]: La liste d'hôtes fournie est vide, seul localhost est disponible. Notez que
localhost implicite ne correspond pas à 'all'

PLAY [localhost] ***************************************************************

TASK [Collecte de faits] *********************************************************
ok: [localhost]

TASK [Créer un fichier sur un hôte distant] ********************************************
changed: [localhost]

PLAY RECAP *********************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

Enfin, vérifiez que le fichier file.txt a été créé dans le chemin spécifié sur l'hôte distant.

ll /home/labex/file.txt

Sortie exemple :

-rw-rw-r-- 1 labex labex 0 Mar 10 03:12 file.txt

Vous verrez le message indiquant que /home/labex/file.txt a été créé avec succès.

Gérer les permissions de fichiers

Dans cette étape, vous allez apprendre à gérer les permissions de fichiers sur un hôte distant à l'aide du module Ansible File.

Tout d'abord, modifiez le fichier de playbook existant en supprimant tout le contenu et en ajoutant le contenu suivant au fichier de playbook :

- hosts: localhost
  tasks:
    - name: Définir les permissions du fichier
      file:
        path: /home/labex/file.txt
        mode: "0644"
  • file : Module Ansible pour manipuler le système de fichiers.
  • path : Spécifie le chemin vers le fichier, dans ce cas /home/labex/file.txt.
  • mode : Ce paramètre est utilisé pour définir le mode de permission du fichier. Remplacez "0644" par le mode de permission souhaité pour le fichier. Consultez la documentation chmod pour plus d'informations sur les modes de permission.

Le but de ce playbook est de définir les permissions du fichier /home/labex/file.txt sur 0644.

Ensuite, exécutez le playbook à l'aide de la commande suivante :

ansible-playbook file-module-playbook.yaml

Sortie exemple :

[WARNING]: Aucun inventaire n'a été analysé, seul localhost implicite est disponible
[WARNING]: La liste d'hôtes fournie est vide, seul localhost est disponible. Notez que
localhost implicite ne correspond pas à 'all'

PLAY [localhost] ***************************************************************

TASK [Collecte de faits] *********************************************************
ok: [localhost]

TASK [Définir les permissions du fichier] ************************************
changed: [localhost]

PLAY RECAP *********************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

Enfin, vérifiez que les permissions du fichier sont définies comme spécifié sur l'hôte distant.

ll /home/labex/file.txt

Sortie exemple :

-rw-r--r-- 1 labex labex 0 Mar 10 03:12 /home/labex/file.txt

Le -rw-r--r-- ici indique que le mode de /home/labex/file.txt a été correctement défini sur 0644.

Supprimer un fichier sur un hôte distant

Dans cette étape, vous allez apprendre à supprimer un fichier sur un hôte distant à l'aide du module Ansible File.

Tout d'abord, modifiez le fichier de playbook existant en supprimant tout le contenu et en ajoutant le contenu suivant au fichier de playbook :

- hosts: localhost
  tasks:
    - name: Supprimer un fichier sur un hôte distant
      file:
        path: /home/labex/file.txt
        state: absent
  • file : Module Ansible pour manipuler le système de fichiers.
  • path : Spécifie le chemin vers le fichier à supprimer, c'est-à-dire /home/labex/file.txt.
  • state : Ce paramètre indique que le fichier doit être dans l'état absent. Par conséquent, l'objectif de la tâche est de supprimer le fichier au chemin spécifié.

Le but de ce playbook est de supprimer le fichier /home/labex/file.txt sur l'hôte distant.

Ensuite, exécutez le playbook à l'aide de la commande suivante :

ansible-playbook file-module-playbook.yaml

Sortie exemple :

[WARNING]: Aucun inventaire n'a été analysé, seul localhost implicite est disponible
[WARNING]: La liste d'hôtes fournie est vide, seul localhost est disponible. Notez que
localhost implicite ne correspond pas à 'all'

PLAY [localhost] ***************************************************************

TASK [Collecte de faits] *********************************************************
ok: [localhost]

TASK [Supprimer un fichier sur un hôte distant] ********************************
changed: [localhost]

PLAY RECAP *********************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

Enfin, vérifiez que le fichier file.txt a été supprimé et n'existe plus sur l'hôte distant.

ll /home/labex/file.txt

Sortie exemple :

ls: impossible d'accéder à '/home/labex/file.txt': Aucun fichier ou dossier de ce type

Ce message indique que le fichier /home/labex/file.txt a été supprimé avec succès.

Vérifier l'existence d'un fichier

Dans cette étape, vous allez apprendre à vérifier l'existence d'un fichier sur un hôte distant à l'aide du module Ansible File.

Tout d'abord, modifiez le fichier de playbook existant en supprimant tout le contenu et en ajoutant le contenu suivant au fichier de playbook :

- hosts: localhost
  tasks:
    - name: Vérifier l'existence d'un fichier sur un hôte distant
      stat:
        path: /home/labex/file.txt
      register: file_info

    - name: Afficher l'existence du fichier
      debug:
        msg: "Le fichier existe : {{ file_info.stat.exists }}"
  • stat : C'est l'un des modules Ansible pour obtenir des informations sur l'état d'un fichier ou d'un répertoire.
  • path : Spécifie le chemin vers le fichier à vérifier, c'est-à-dire /home/labex/file.txt.
  • register : Stocke le résultat de l'exécution du module dans la variable file_info à l'aide du mot clé register.
  • debug : C'est l'un des modules Ansible qui affiche des informations de débogage.
  • msg : Utilise le module debug pour afficher un message avec des informations sur l'existence d'un fichier, qui est récupéré via file_info.stat.exists.

Le but de ce playbook est de vérifier l'existence du fichier /home/labex/file.txt sur l'hôte distant et d'afficher les informations sur la sortie standard.

Ensuite, exécutez le playbook à l'aide de la commande suivante :

ansible-playbook file-module-playbook.yaml

Sortie exemple :

[WARNING]: Aucun inventaire n'a été analysé, seul localhost implicite est disponible
[WARNING]: La liste d'hôtes fournie est vide, seul localhost est disponible. Notez que
localhost implicite ne correspond pas à 'all'

PLAY [localhost] ***************************************************************

TASK [Collecte de faits] *********************************************************
ok: [localhost]

TASK [Vérifier l'existence d'un fichier sur un hôte distant] *********************
ok: [localhost]

TASK [Afficher l'existence du fichier] *****************************************
ok: [localhost] => {
    "msg": "Le fichier existe : False"
}

PLAY RECAP *********************************************************************
localhost                  : ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

Enfin, observez la sortie pour voir si le fichier file.txt existe sur l'hôte distant.
"msg": "Le fichier existe : False" indique que le fichier /home/labex/file.txt n'existe pas.

Sommaire

Félicitations ! Vous avez réussi le laboratoire sur le module Ansible File. Vous avez appris à créer des fichiers et des répertoires, à gérer les permissions de fichiers, à supprimer des fichiers et à vérifier l'existence de fichiers sur des hôtes distants à l'aide du module File.

Le module File est un outil puissant dans Ansible qui vous permet d'effectuer diverses opérations liées aux fichiers pendant les tâches d'automatisation. Vous pouvez désormais utiliser avec confiance le module File dans vos playbooks Ansible pour gérer efficacement les fichiers et les répertoires.

Continuez à explorer la documentation Ansible et les autres modules pour élargir vos connaissances et améliorer vos compétences en automatisation. Bonne continuation avec Ansible !