Comment créer un répertoire www
at /srv
sur un système basé sur Debian utilisant un livre de lecture Ansible?
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
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.
vous pouvez créer en utilisant:
- name: Create Folder
file:
path: /srv/www/
owner: user
group: user
mode: 0755
state: directory
- 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
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
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.
- 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.
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`
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
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'
Nous avons des modules disponibles pour créer un répertoire, fichier dans ansible
Exemple
- name: Creates directory
file:
path: /src/www
state: directory
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
créer un répertoire
ansible Host_name -m file -a "dest=/home/ansible/vndir state=directory"
Meilleure façon de créer un répertoire dans Ansible.
OU
Vous voulez donner privilèges Sudo à ce répertoire.
---
- 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.
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
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.
Sifile
, le fichier NE sera PAS créé s'il n'existe pas, voir le module [copy] ou [template] si vous voulez ce comportement.
Silink
, le lien symbolique sera créé ou modifié. Utilisezhard
pour les liens durs.
Siabsent
, 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 donttouch
fonctionne depuis la ligne de commande).
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 !!!
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