web-dev-qa-db-fra.com

Comment créer un répertoire avec Ansible

Comment créer un répertoire www at /srv sur un système basé sur Debian utilisant un livre de lecture Ansible?

283
Gaurav Agarwal

Vous voulez le module de fichier. Pour créer un répertoire, vous devez spécifier l'option state=directory:

- name: Creates directory
  file:
    path: /src/www
    state: directory

Vous pouvez voir d’autres options sur http://docs.ansible.com/file_module.html

496
leucos

Vous pouvez même étendre le module de fichiers et même définir le propriétaire, le groupe et l'autorisation par le biais (Ref: Documentation de fichier Ansible )

- name: Creates directory
  file:
    path: /src/www
    state: directory
    owner: www-data
    group: www-data
    mode: 0775

Même, vous pouvez créer les répertoires de manière récursive:

- name: Creates directory
  file:
    path: /src/www
    state: directory
    owner: www-data
    group: www-data
    mode: 0775
    recurse: yes

De cette façon, les deux répertoires seront créés s'ils n'existaient pas.

168
Arbab Nazar

vous pouvez créer en utilisant:

Dernière version 2 <

- name: Create Folder
  file: 
    path: /srv/www/
    owner: user 
    group: user 
    mode: 0755 
    state: directory

Ancienne version

- name: Create Folder
  file: 
   path=/srv/www/
   owner=user 
   group=user 
   mode=0755 
   state=directory

Référez-vous - http://docs.ansible.com/ansible/file_module.html

12

Le répertoire peut être créé en utilisant uniquement le module de fichiers, car le répertoire n’est rien qu’un fichier.

# create a directory if it doesn't exist
- file:
    path: /etc/some_directory
    state: directory
    mode: 0755
    owner: foo
    group: foo
12
user3004224

Vous pouvez créer un répertoire. en utilisant 

# create a directory if it doesn't exist
- file: path=/src/www state=directory mode=0755

Vous pouvez également consulter http://docs.ansible.com/ansible/file_module.html pour plus de détails sur le répertoire et le système de fichiers.

6
Ali Warrich
- file:
    path: /etc/some_directory
    state: directory
    mode: 0755
    owner: someone
    group: somegroup

C'est ainsi que vous pouvez également définir les autorisations, le propriétaire et le groupe. Les trois derniers paramètres ne sont pas obligatoires. 

6
qubsup

Vous pouvez utiliser la déclaration

- name: webfolder - Creates web folder
  file: path=/srv/www state=directory owner=www-data group=www-data mode=0775`
3
Mazi

Selon la documentation Ansible , cela pourrait se faire de la manière suivante:

# create a directory if it doesn't exist
- file:
    path: /etc/some_directory
    state: directory
    mode: 0755
3
030

Juste besoin de mettre la condition pour exécuter la tâche pour une distribution spécifique 

- name: Creates directory
  file: path=/src/www state=directory
  when: ansible_distribution == 'Debian'
2
Bhavesh Vasoya

Nous avons des modules disponibles pour créer un répertoire, fichier dans ansible

Exemple

- name: Creates directory
  file:
    path: /src/www
    state: directory
2
Mohd Umar Mubeen

Pour toutes les réponses supplémentaires, il existe de nombreuses situations dans lesquelles vous devez créer plusieurs répertoires. Il est donc judicieux d’utiliser des boucles plutôt que de créer des tâches distinctes pour chaque répertoire.

- name: Creates directory
  file:
    path: "{{ item }}"
    state: directory
  with_items:
  - /srv/www
  - /dir/foo
  - /dir/bar
2
Andrey Bistrinin

créer un répertoire 

ansible Host_name -m file -a "dest=/home/ansible/vndir state=directory"
1
sachin_ur

Meilleure façon de créer un répertoire dans Ansible.

  • name: Créez votre répertoire si celui-ci n'existe pas. fichier: chemin:/etc/votre_répertoire

OU

Vous voulez donner privilèges Sudo à ce répertoire.

  • name: Créez votre répertoire si celui-ci n'existe pas. fichier: chemin:/etc/votre_répertoire: "777"
1
Muhammad Ahmad
---
- hosts: all
  connection: local
  tasks:
    - name: Creates directory
      file: path=/src/www state=directory

Ci-dessus, playbook créera un répertoire www dans/src path. 

Avant de courir au-dessus de playbook. S'il vous plaît assurez-vous que votre connexion ansible hôte doit être définie, 

"localhost ansible_connection = local"

devrait être présent dans/etc/ansible/hosts 

pour plus d'informations s'il vous plaît faites le moi savoir.

1
Saurabh

Si vous voulez créer un répertoire dans Windows:

  • nom: créer une structure de répertoire
    win_file:
    chemin: C:\Temp\dossier\sous-dossier>
    état: répertoire
0
Alexandru Muica

Utiliser le module de fichier pour créer un répertoire et obtenir les détails sur le module de fichier à l'aide de la commande "fichier ansible-doc"

Voici une option "état" qui explique:

Si directory, tous les sous-répertoires immédiats seront créés s’ils n’existent pas, depuis la version 1.7, ils seront créés avec les autorisations fournies.
Si file, le fichier NE sera PAS créé s'il n'existe pas, voir le module [copy] ou [template] si vous voulez ce comportement.
Si link, le lien symbolique sera créé ou modifié. Utilisez hard pour les liens durs.
Si absent, les répertoires seront supprimés de manière récursive et les fichiers ou les liens symboliques seront dissociés.

Notez que file n'échouera pas si le chemin n'existe pas car l'état n'a pas changé.

Si touch (nouveauté de la version 1.4), un fichier vide sera créé si le chemin n'existe pas, alors qu'un fichier ou un répertoire existant recevra un accès au fichier mis à jour et des temps de modification (similaire à la façon dont touch fonctionne depuis la ligne de commande).

0
Priyanka Tyagi

vous pouvez utiliser le module "fichier" dans ce cas, il y a tellement d'arguments que vous pouvez passer pour un répertoire nouvellement créé comme le propriétaire, le groupe, l'emplacement, le mode, etc.

veuillez vous référer à ce document pour l'explication détaillée sur le module de fichiers ...

https://docs.ansible.com/ansible/latest/modules/file_module.html#file-module

rappelez-vous que ce module n'est pas uniquement destiné à la création du répertoire !!!

0
user11345576

Vous pouvez directement exécuter la commande et créer directement en utilisant ansible

ansible -v targethostname -m Shell -a "mkdir /srv/www" -u targetuser

OR

ansible -v targethostname -m file -a "path=/srv/www state=directory" -u targetuser
0
RegexCracker