Comment créer un répertoire dans ANIBLE

Comment créer un répertoire dans ANIBLE

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 lorsque vous installez divers outils et applications, sauvegardes et restaurations. Bien que vous puissiez effectuer ces tâches à l'aide d'un script automatisé, Anible offre de meilleures fonctionnalités, vous permettant de créer des répertoires chez des hôtes spécifiés.

Ce didacticiel vous montre comment utiliser le module de fichier 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 ANIBLE

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

  • Une commande RAW ANSIBLE avec le module de commande
  • Un module de fichiers dans un livre de lecture ANSIBLE

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

$ anible all -m Commande -a "Mkdir ~ / Backups"

Après avoir saisi la commande ci-dessus, vous devez obtenir la sortie illustrée ci-dessous:

Entrez la phrase de passe pour la clé '/ home / user /.ssh / id_rsa ':
[AVERTISSEMENT]: Envisagez d'utiliser le module de fichier avec State = répertoire plutôt que d'exécuter «Mkdir». Si vous avez besoin d'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 anible.CFG pour se débarrasser de ce message.
35.222.210.12 | Changé | rc = 0 >>

Vérifiez que votre inventaire des hôtes Ansible dans / etc / anible / hôtes contient les informations correctes sur vos hôtes distants.

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

Pour contrer cet inconvénient, nous utiliserons le module de fichier ANSIBL et créerons un playbook contenant les hôtes que nous voulons utiliser et les répertoires que nous souhaitons créer.

NOTE: Le module de fichier 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 entrez les entrées suivantes pour créer un répertoire:

- Hôtes: toutes les tâches:
- Nom: module de fichier Ansible Créer un répertoire
déposer:
Chemin: ~ / Backups
État: répertoire

Enregistrez le fichier et utilisez ANSIBLE-PLAYBOOK pour créer les répertoires:

anable-playbook mkdir.YML

Cela devrait produire une sortie comme celle ci-dessous, indiquant que les actions ont été effectuées avec succès en utilisant le fichier playbook spécifié.

Jouer à tous] ********************************************** **************************************************** *************
Tâche [rassemblement des faits] ********************************************* **************************************************** **
Entrez la phrase de passe pour la clé '/ home / user /.ssh / id_rsa ':
OK: [35.222.210.12]
Tâche [module de fichier anible Créer un répertoire] ****************************************** **********************************
OK: [35.222.210.12]
Jouer à récapituler ************************************************** **************************************************** ***********
35.222.210.12: ok = 2 changé = 0 inaccessible = 0 échec = 0 sauté = 0 sauvé = 0 ignoré = 0

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

Les PlayBooks ANSIBL 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, Repository et config, vous pouvez créer la tâche indiquée dans le fichier YAML ci-dessous:

- Hôtes: toutes les tâches:
- Nom: ANIBLE Créez plusieurs répertoires avec_items
déposer:
Chemin: ~ / Backups / item
État: répertoire
avec_items:
- 'mysql'
- 'dépôt'
- 'config'

Enregistrez le fichier ci-dessus et exécutez-le avec Anible-Playbook.

$ anible-playbook mkdir_multi.yml joue [à tous] ********************************************* **************************************************** **************************************************** **************************************************** ***
Tâche [rassemblement des faits] ********************************************* **************************************************** **************************************************** *****************************************
Entrez la phrase de passe pour la clé '/ home / user /.ssh / id_rsa ':
OK: [35.222.210.12]
Tâche [anible crée plusieurs répertoires avec_items] ****************************************** **************************************************** **************************************************** *************
Changé: [35.222.210.12] => (item = mysql)
Changé: [35.222.210.12] => (item = référentiel)
Changé: [35.222.210.12] => (item = config)
Jouer à récapituler ************************************************** **************************************************** **************************************************** ****************************************************
35.222.210.12: ok = 2 changé = 1 inaccessible = 0 échec = 0 sauté = 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 comme indiqué 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 les autorisations pour un répertoire

Anible vous permet de spécifier des autorisations pour un répertoire en utilisant la directive de mode. Considérez le livre de jeu suivant, qui crée un répertoire et définit les autorisations:

- hôtes: tout
Tâches:
- Nom: ANSIBLE Créer des autorisations de répertoire et de définition
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 /. Nous devions également devenir root, d'où la saisie: oui.

$ anible-playbook permission.yml joue [à tous] ********************************************* **************************************************** **************************************************** **************************************************** ***
Tâche [rassemblement des faits] ********************************************* **************************************************** **************************************************** *****************************************
Entrez la phrase de passe pour la clé '/ home / user /.ssh / id_rsa ':
OK: [35.222.210.12]
Tâche [anible crée des autorisations de répertoire et définir] *************************************** **************************************************** **************************************************** ****************
Changé: [35.222.210.12]
Jouer à récapituler ************************************************** **************************************************** **************************************************** ****************************************************
35.222.210.12: ok = 2 changé = 1 inaccessible = 0 échec = 0 sauté = 0 sauvé = 0 ignoré = 0

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

$ ls -lrt / | Backups Grep

La sortie est comme indiqué ci-dessous:

drw - wxrwx. 2 racine Root 6 mars 6 17:36 Backups

Comment modifier récursivement les autorisations dans un répertoire

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

- hôtes: tout
Tâches:
- Nom: ANSIBLE Créer des autorisations de répertoire et de définition
déposer:
chemin: / sauvegardes
État: répertoire
MODE: "u = rw, g = wx, o = rwx"
récursif: oui
devenir: oui

Comment définir les autorisations dans plusieurs répertoires

La mise en place 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: tout
Tâches:
- Nom: Ansible Créer un répertoire Mutliple avec autorisation
déposer:
Chemin: "élément.chemin "
Mode: "élément.mode"
État: répertoire
avec_items:
- Path: '~ / Backups / Mysql', mode: '0777'
- Path: '~ / Backups / Repository', mode: '0755'
- Path: '~ / 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 comme absent, comme indiqué ci-dessous:

- hôtes: tout
Tâches:
- Nom: répertoire de suppression d'ANSIBLE
déposer:
chemin: / sauvegardes
État: absent
devenir: oui

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

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

Comment créer un répertoire horodométré

Dans certains cas, vous devrez peut-être créer un répertoire avec un horodat. Pour créer un répertoire horlogé.

Considérez le livre de jeu suivant:

- hôtes: tout
Tâches:
- Nom: ANSIBLE Ajouter un horodatage au répertoire
déposer:
Chemin: "/ Backups / MySQL ANSIBLE_DATE_TIME.date"
État: répertoire
Mode: "0777"
devenir: oui

Une fois que vous aurez exécuté 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 racine racine 6 mars 6 18:03 MySQL2021-03-06

NOTE: 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 des modules ANSIBL. À l'aide du module de fichier ANSIBLE, vous pouvez créer un ou plusieurs répertoires et ajouter des autorisations pour chaque. Vous pouvez également utiliser le même module pour supprimer un répertoire pour plus d'informations sur la façon d'utiliser le module de fichier Ansible, consultez la documentation officielle sur la page de ressources.