Ansible

Comment créer un répertoire dans Ansible

Comment créer un répertoire dans Ansible

Ansible est l'un des meilleurs outils d'automatisation disponibles, offrant des outils simples, intuitifs et puissants pour effectuer des tâches d'automatisation dans le monde moderne.

Pour la plupart des tâches d'automatisation, vous devrez créer des répertoires, en particulier lors de l'installation de divers outils et applications, de sauvegardes et de restaurations. Bien que vous puissiez effectuer ces tâches à l'aide d'un script automatisé, Ansible offre de meilleures fonctionnalités, vous permettant de créer des répertoires dans des hôtes spécifiés.

Ce didacticiel vous montre comment utiliser le module de fichiers Ansible pour créer, supprimer et modifier les autorisations de répertoire pour les hôtes spécifiés.

Comment créer un répertoire dans Ansible

L'une des méthodes suivantes peut être utilisée pour créer un répertoire dans Ansible :

Pour créer un répertoire dans Ansible à l'aide du module de commande, entrez la commande ci-dessous :

$ ansible all -m commande -a "mkdir ~/backups"

Après avoir entré la commande ci-dessus, vous devriez obtenir la sortie ci-dessous :

Entrez la phrase secrète pour la clé '/home/user/.ssh/id_rsa' :
[AVERTISSEMENT] : envisagez d'utiliser le module de fichiers avec state=directory plutôt que d'exécuter 'mkdir'.  Si vous devez utiliser la commande car le fichier est insuffisant, vous pouvez ajouter 'warn: false' à cette tâche de commande ou définir 'command_warnings=False' dans ansible.cfg pour se débarrasser de ce message.
35.222.210.12 | CHANGÉ | rc=0 >>

Vérifiez que votre inventaire d'hôtes Ansible dans /etc/ansible/hosts contient les informations correctes sur vos hôtes distants.

Bien que le module de commande soit simple à utiliser sur un seul hôte Ansible, il devient très inefficace lorsqu'il s'agit de plusieurs hôtes avec des répertoires et des tâches différents.

Pour contrer cet inconvénient, nous allons utiliser le module de fichiers Ansible et construire un playbook contenant les hôtes que nous souhaitons utiliser et les répertoires que nous souhaitons créer.

REMARQUE: Le module de fichiers peut également être utilisé comme une seule commande dans Ansible, mais il fonctionne un peu comme le module de commande.

Pour utiliser un playbook Ansible, créez un fichier YAML et saisissez les entrées suivantes pour créer un répertoire :

- hôtes : toutes les tâches :
- nom : répertoire de création du module de fichiers Ansible
déposer:
chemin : ~/sauvegardes
état : répertoire

Enregistrez le fichier et utilisez ansible-playbook pour créer les répertoires :

ansible-playbook mkdir.yml

Cela devrait produire une sortie comme celle ci-dessous, indiquant que les actions ont été effectuées avec succès à l'aide du fichier de playbook spécifié.

Jouer à tous] ********************************************** ************************************************** *************
TÂCHE [Rassembler les faits] ********************************************* ******************************************************** **
Entrez la phrase secrète pour la clé '/home/user/.ssh/id_rsa' :
d'accord : [35.222.210.12]
TÂCHE [Répertoire de création du module de fichiers Ansible] ****************************************** **************************************
d'accord : [35.222.210.12]
JOUER RÉCAPITULATIF ************************************************ ************************************************** ***********
35.222.210.12 : ok=2 modifié=0 inaccessible=0 échec=0 ignoré=0 sauvé=0 ignoré=0

Comment créer plusieurs répertoires avec des éléments

Les playbooks Ansible vous permettent également de créer plusieurs répertoires à l'aide de l'instruction with_items dans le fichier YAML.

Par exemple, pour créer des sauvegardes pour les trois services, MySQL, référentiel et configuration, vous pouvez créer la tâche indiquée dans le fichier YAML ci-dessous :

- hôtes : toutes les tâches :
- name: Ansible crée plusieurs répertoires with_items
déposer:
chemin : ~/backups/item
état : répertoire
avec_éléments :
- 'mysql'
- 'dépôt'
- 'config'

Enregistrez le fichier ci-dessus et exécutez-le avec ansible-playbook.

$ ansible-playbook mkdir_multi.yml JOUER [tout] ********************************************* ******************************************************** ************************************************** ************************************************** ***
TÂCHE [Rassembler des faits] ********************************************* ************************************************** ************************************************** ********************************************
Entrez la phrase secrète pour la clé '/home/user/.ssh/id_rsa' :
d'accord : [35.222.210.12]
TASK [Ansible crée plusieurs répertoires avec_items] ****************************************** ************************************************** ************************************************** *************
changé : [35.222.210.12] => (élément=mysql)
changé : [35.222.210.12] => (item=référentiel)
modifié : [35.222.210.12] => (élément=config)
JOUER RÉCAPITULATIF ************************************************ ******************************************************** ************************************************** **************************************************
35.222.210.12 : ok=2 modifié=1 inaccessible=0 échec=0 ignoré=0 sauvé=0 ignoré=0

Le playbook ci-dessus doit créer plusieurs répertoires, tels que ~/backups/mysql, ~/backups/repository et ~/backups/config.

$ ls -la

La sortie de la liste des répertoires est illustrée ci-dessous :

total 0
drwxrwxr-x. 5 debian debian  51 mars  6 17:26 .
drwx------. 6 debian debian 117 mars 6 17:26…
drwxrwxr-x. 2 debian debian   6 mars  6 17:26 config
drwxrwxr-x. 2 debian debian   6 mars 6 17:26 mysql
drwxrwxr-x. 2 debian debian   6 mars  6 17:26 référentiel

Comment définir des autorisations pour un répertoire

Ansible vous permet de spécifier des autorisations pour un répertoire à l'aide de la directive mode. Considérez le playbook suivant, qui crée un répertoire et définit des autorisations :

- hôtes : tous
Tâches:
- nom : Ansible crée un répertoire et définit les autorisations
déposer:
chemin : /sauvegardes
état : répertoire
mode : "u=rw,g=wx,o=rwx"
devenir : oui

Dans l'entrée ci-dessus, nous avons créé un répertoire dans /. Il nous fallait aussi devenir root, d'où le devenir : yes entry.

$ autorisation ansible-playbook.yml JOUER [tout] ********************************************* ******************************************************** ************************************************** ************************************************** ***
TÂCHE [Rassembler des faits] ********************************************* ************************************************** ************************************************** ********************************************
Entrez la phrase secrète pour la clé '/home/user/.ssh/id_rsa' :
d'accord : [35.222.210.12]
TÂCHE [Ansible créer un répertoire et définir des autorisations] ******************************************* ************************************************** ************************************************** ****************
modifié : [35.222.210.12]
JOUER RÉCAPITULATIF ************************************************ ******************************************************** ************************************************** ********************************************************
35.222.210.12 : ok=2 modifié=1 inaccessible=0 échec=0 ignoré=0 sauvé=0 ignoré=0

Si vous affichez les autorisations du répertoire que nous avons créé, vous verrez ce qui suit :

$ ls -lrt / | sauvegardes grep

La sortie est comme indiqué ci-dessous :

dessin--wxrwx.   2 root root    6 mars  6 17:36 sauvegardes

Comment modifier de manière récursive les autorisations dans un répertoire

Pour modifier les autorisations d'un répertoire et de ses fichiers de manière récursive, spécifiez simplement l'entrée récursive, comme indiqué ci-dessous :

- hôtes : tous
Tâches:
- nom : Ansible crée un répertoire et définit les autorisations
déposer:
chemin : /sauvegardes
état : répertoire
mode : "u=rw,g=wx,o=rwx"
récursif : oui
devenir : oui

Comment définir des autorisations dans plusieurs répertoires

La configuration des autorisations pour plusieurs répertoires dans Ansible est également aussi simple que quelques lignes d'entrées. Considérez le livre de jeu suivant.

- hôtes : tous
Tâches:
- nom: Ansible crée plusieurs répertoires avec des autorisations
déposer:
chemin : " élément.chemin "
mode : "élément.mode"
état : répertoire
avec_éléments :
- chemin : '~/backups/mysql', mode : '0777'
- chemin : '~/backups/repository', mode : '0755'
- chemin : '~/backups/config', mode : '0707'

Comment supprimer un répertoire dans Ansible

Pour supprimer un répertoire et tout son contenu à l'aide d'un playbook Ansible, spécifiez l'état absent, comme indiqué ci-dessous :

- hôtes : tous
Tâches:
- nom: répertoire de suppression Ansible
déposer:
chemin : /sauvegardes
état : absent
devenir : oui

Cette commande supprimera le répertoire et tous les fichiers et répertoires enfants.

REMARQUE: Assurez-vous que vous disposez des autorisations pour le répertoire sur lequel vous travaillez.

Comment créer un répertoire horodaté

Dans certains cas, vous devrez peut-être créer un répertoire avec un horodatage qui lui est attaché, ce qui peut être très utile, en particulier lors de la création de sauvegardes. Pour créer un répertoire horodaté, nous pouvons utiliser la variable ansible_date_time.

Considérez le livre de jeu suivant :

- hôtes : tous
Tâches:
- nom : Ansible ajoute un horodatage au répertoire
déposer:
chemin : "/backups/mysqlansible_date_time.Date"
état : répertoire
mode : "0777"
devenir : oui

Une fois que vous exécutez le playbook, vous aurez un répertoire avec l'horodatage.

$ ls -l

La liste du répertoire doit être comme indiqué ci-dessous :

total 0 drwxrwxrwx. 2 root root 6 mars 6 18:03 mysql2021-03-06

REMARQUE: Pour éviter les erreurs, vérifiez toujours la syntaxe du fichier YAML que vous avez l'intention d'utiliser dans Ansible.

Conclusion

Ce tutoriel vous a montré que travailler avec les modules Ansible est très simple et intuitif, ce qui simplifie l'automatisation de tâches complexes. En utilisant le module de fichiers Ansible, vous pouvez créer un ou plusieurs répertoires et ajouter des autorisations pour chacun. Vous pouvez également utiliser le même module pour supprimer un répertoire Pour plus d'informations sur l'utilisation du module de fichiers Ansible, consultez la documentation officielle sur la page des ressources.

Comment installer et jouer à Doom sur Linux
Introduction à Doom La série Doom est née dans les années 90 après la sortie du Doom original. Ce fut un succès instantané et à partir de ce moment-là...
Vulkan pour les utilisateurs Linux
Avec chaque nouvelle génération de cartes graphiques, nous voyons les développeurs de jeux repousser les limites de la fidélité graphique et se rappro...
OpenTTD contre Simutrans
Créer votre propre simulation de transport peut être amusant, relaxant et extrêmement attrayant. C'est pourquoi vous devez vous assurer que vous essay...