GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment créer un fichier dans Ansible

Présentation

Ansible est un outil d'infrastructure en tant que code qui vous permet d'utiliser un emplacement central unique (nœud de contrôle Ansible) pour surveiller et contrôler un grand nombre de serveurs distants (hôtes).

Utilisez Ansible pour configurer un certain nombre de tâches que les hôtes distants peuvent effectuer, y compris la création de nouveaux fichiers et répertoires.

Ce didacticiel couvre différentes manières d'utiliser Ansible pour créer des fichiers sur des hôtes distants.

Prérequis

  • Un système exécutant Ubuntu 20.04
  • Accès à la ligne de commande/fenêtre du terminal
  • Ansible installé et configuré (voir nos guides sur l'installation d'Ansible sur Windows ou l'installation d'Ansible sur Ubuntu)

Créer un playbook Ansible

Les playbooks Ansible sont des listes de tâches que vous souhaitez que vos hôtes distants effectuent. Ils peuvent être enregistrés et réutilisés, ce qui vous permet d'automatiser des processus complexes.

Chaque commande que vous souhaitez envoyer à un hôte distant, y compris la création de fichiers et de dossiers, est une tâche que vous devez inclure dans un playbook. Une fois que vous avez exécuté un playbook, votre hôte distant exécute toutes les tâches qui y sont définies.

Pour créer un playbook Ansible, utilisez la commande :

sudo nano /etc/ansible/playbook.yaml

Cette commande crée un fichier .yaml appelé ‘playbook’ dans le dossier d'installation d'Ansible. Nous utiliserons des tâches dans le playbook.yaml file pour créer des fichiers et des dossiers sur nos hôtes distants.

L'utilisation de la fonction de simulation d'Ansible permet aux utilisateurs d'exécuter un playbook sans apporter de modifications aux serveurs. Il utilise le mode de vérification intégré pour vérifier la présence d'erreurs dans un playbook avant son exécution.

Création d'un fichier vide

Le moyen le plus rapide de créer un fichier vide consiste à utiliser le file d'Ansible. module.

Ajoutez la configuration suivante à votre playbook Ansible :

---

- hosts: all
  tasks:
  - name: Creating an empty file
    file:
      path: "/your path"
      state: touch

Le fichier ci-dessus contient les composants suivants :

  • hosts : Définit sur quels hôtes distants de votre fichier d'inventaire Ansible vous souhaitez exécuter la tâche. Tout signifie que chaque hôte reçoit la commande, mais vous pouvez également entrer le nom d'une catégorie d'hôtes ou d'un hôte individuel.
  • tasks : Annonce que l'hôte distant doit effectuer une tâche.
  • name :permet de définir un nom pour la tâche. Le nom est pour votre référence seulement et n'a aucune influence sur la tâche elle-même.
  • file  :engage le module de fichiers d'Ansible pour créer un nouveau fichier.
  • path  :Définit le chemin d'accès au nouveau fichier sur le disque dur de l'hôte distant.
  • state  :Semblable à la commande touch dans le terminal Ubuntu, en saisissant touch crée un fichier vide à l'emplacement que vous avez choisi.

Pour exécuter le playbook, utilisez :

ansible-playbook /etc/ansible/playbook.yaml

Créer un fichier avec du contenu

Si vous souhaitez créer un nouveau fichier avec du contenu, vous pouvez d'abord utiliser la méthode ci-dessus pour créer un fichier vide, puis utiliser le blockinfile ou lineinfile module pour insérer du contenu.

Un moyen plus rapide consiste à utiliser la copy module. Même si ce module est utilisé pour copier un fichier du nœud de contrôle vers l'hôte distant, vous pouvez inclure le content paramètre pour ajouter instantanément du contenu à un fichier vide.

Utilisez cette configuration dans votre playbook :

---

- hosts: all
  tasks:
  - name: Creating a file with content
    copy:
      dest: "/your path"
      content: |
        line 01
        line 02

Dans le fichier, nous avons utilisé :

  • copy  :engage le module de copie d'Ansible.
  • dest :Définit le chemin de votre nouveau fichier.
  • content :Ce paramètre ajoutera line 01 et line 02 comme contenu du nouveau fichier.

Créer plusieurs fichiers

Vous pouvez créer plusieurs fichiers en utilisant une seule tâche dans un playbook Ansible.

Utilisez la configuration suivante pour créer plusieurs fichiers :

---

- hosts: all
  tasks:
  - name: Create multiple files
    file: 
      path: "{{ item }}"
      state: touch
    with_items:
    - test01.txt
    - test02.txt
    - test03.txt
    - test04.txt

Dans le fichier de configuration ci-dessus, nous avons défini :

  • path  :Le "{{ item }}" La valeur signifie qu'Ansible créera un chemin séparé pour chaque fichier respectif. Par défaut, ces fichiers vont dans le dossier Home de l'hôte distant. Définissez un chemin différent en utilisant /your_folder_path/"{{ item }}" .
  • with_items :Ce paramètre permet de démarrer une liste de fichiers à créer. Listez autant de fichiers que vous le souhaitez. Dans notre exemple, nous avons créé une liste de quatre fichiers intitulés test .

Création d'un répertoire

La création d'un nouveau répertoire utilise la même configuration que lors de la création d'un fichier vide. La seule différence est que sous l'état state paramètre, vous saisissez directory comme valeur :

---

- hosts: all
  tasks:
  - name: Creating a new directory
    file:
      path: "/your path"
      state: directory

Supprimer des fichiers

Les playbooks Ansible peuvent également supprimer des fichiers existants. Pour ce faire, définissez l'state paramètre à absent :

---

- hosts: all
  tasks:
  - name: Removing a file
    file:
      path: "/your path"
      state: absent

Si le fichier est déjà supprimé, cette commande ne fait rien.

Définition des autorisations de fichier

Avec tous les exemples ci-dessus, vous pouvez également définir l'autorisation pour les nouveaux fichiers et dossiers. Pour cela, vous devez utiliser le mode paramètre.

Il existe deux manières de procéder :

  • Utilisation du format en mode octal : Vous pouvez utiliser des nombres octaux, comme 0644 ou 0777. N'oubliez pas le 0 initial, car l'omettre peut entraîner des résultats inattendus.
  • Utilisation du format en mode symbolique : Vous pouvez utiliser des valeurs telles que u=rwx , g=rx , ou o=rx , où u signifie propriétaire , g signifie groupe , et o signifie autres . Les autorisations sont définies comme r pour lire , w pour écrire , et x pour exécuter .

Par exemple, vous pouvez utiliser la valeur octale 0755, lors de la définition du propriétaire :

---

- hosts: all
  tasks:
  - name: Create a new file with permissions
    file:
      path: "/your path"
      state: touch
      mode: 0755
      owner: test

Vous pouvez également utiliser l'équivalent symbolique de 0755 :

---

- hosts: all
  tasks:
  - name: Create a new file with permissions
    file:
      path: "/your path"
      state: touch
      mode: u=rwx,g=rx,o=rx
      owner: test

Ubuntu
  1. Comment créer un swap sous Linux

  2. Comment créer un fichier d'échange sous Linux

  3. Comment installer Ansible sur Linux Mint 20

  4. Comment créer un fichier temporaire en script shell ?

  5. Comment créer un fichier et le monter en tant que système de fichiers ?

Comment créer un fichier ISO dans Ubuntu 18.04 LTS

Comment créer un fichier sous Linux à l'aide de Terminal

Comment créer des raccourcis de bureau sur Ubuntu

Comment créer un fichier de site Web

Comment créer un fichier Tar gz

Comment créer un système de fichiers XFS