it-swarm.com.de

So erstellen Sie ein Verzeichnis mit Ansible

Wie erstellt man ein Verzeichnis www um /srv auf einem Debian-basierten System mit einem Ansible-Playbook?

283
Gaurav Agarwal

Sie möchten das Dateimodul. Um ein Verzeichnis zu erstellen, müssen Sie die Option state=directory angeben:

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

Weitere Optionen finden Sie unter http://docs.ansible.com/file_module.html

496
leucos

Sie können das Dateimodul sogar erweitern und sogar den Besitzer, die Gruppe und die Berechtigung festlegen. (Ref: Dokumentation der Ansible-Datei )

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

Sie können die Verzeichnisse auch rekursiv erstellen:

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

Auf diese Weise werden beide Verzeichnisse erstellt, falls sie nicht vorhanden sind.

168
Arbab Nazar

sie können erstellen mit:

Neueste Version 2 <

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

Ältere Version

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

Siehe - http://docs.ansible.com/ansible/file_module.html

Das Verzeichnis kann nur mit dem Dateimodul erstellt werden, da das Verzeichnis nur eine Datei ist.

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

Sie können ein Verzeichnis erstellen. mit 

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

Sie können auch auf http://docs.ansible.com/ansible/file_module.html .__ zugreifen. für weitere Details regaridng Verzeichnis und Dateisystem.

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

Auf diese Weise können Sie auch die Berechtigungen, den Besitzer und die Gruppe festlegen. Die letzten drei Parameter sind nicht obligatorisch. 

6
qubsup

Sie können die Anweisung verwenden

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

Laut der Ansible-Dokumentation kann dies durch folgende Definition erfolgen:

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

Sie müssen nur eine Bedingung setzen, um die Aufgabe für eine bestimmte Verteilung auszuführen 

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

Wir haben Module zur Erstellung von Verzeichnissen, Dateien in Ansible

Beispiel

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

Zusätzlich zu allen Antworten hier gibt es viele Situationen, in denen Sie mehr als ein Verzeichnis erstellen müssen, sodass es eine gute Idee ist, Schleifen zu verwenden, anstatt für jedes Verzeichnis einen eigenen Task zu erstellen.

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

verzeichnis erstellen 

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

Einfachster Weg, um ein Verzeichnis zu erstellen in Ansible.

  • name: Erstelle dein_Verzeichnis, falls es nicht existiert. Datei: Pfad:/etc/Ihr_Verzeichnis

ODER

Sie möchten diesem Verzeichnis Sudo-Berechtigungen zuweisen.

  • name: Erstelle dein_Verzeichnis, falls es nicht existiert. file: path:/etc/your_directory mode: '777'
1
Muhammad Ahmad
---
- hosts: all
  connection: local
  tasks:
    - name: Creates directory
      file: path=/src/www state=directory

Über dem Playbook wird das Verzeichnis www im Pfad/src erstellt. 

Bevor Sie über dem Spielbuch laufen. Stellen Sie sicher, dass Ihre ansprechbare Host-Verbindung eingerichtet ist. 

"localhost ansible_connection = local"

sollte in/etc/ansible/hosts vorhanden sein 

für weitere Informationen lass es mich wissen.

1
Saurabh

Wenn Sie ein Verzeichnis in Windows erstellen möchten:

  • name: Verzeichnisstruktur erstellen
    win_file:
    Pfad: C:\Temp\Ordner\Unterordner>
    state: directory
0
Alexandru Muica

Verwenden Sie das Dateimodul, um ein Verzeichnis zu erstellen und Details zum Dateimodul mit dem Befehl "ansible-doc file" abzurufen.

Hier ist eine Option "Zustand", die erklärt:

Wenn directory, werden alle direkten Unterverzeichnisse erstellt, sofern sie nicht vorhanden sind, da 1.7 sie mit den angegebenen Berechtigungen erstellt werden.
Wenn file, wird die Datei NICHT erstellt, wenn sie nicht vorhanden ist. Informationen dazu finden Sie im Modul [copy] oder [template].
Wenn link, wird der symbolische Link erstellt oder geändert. Verwenden Sie hard für Hardlinks.
Wenn absent, werden Verzeichnisse rekursiv gelöscht und die Verknüpfung von Dateien oder Symlinks wird aufgehoben.

Beachten Sie, dass file nicht fehlschlägt, wenn der Pfad nicht vorhanden ist, da sich der Status nicht geändert hat.

Wenn touch (neu in 1.4), wird eine leere Datei erstellt, wenn der Pfad nicht vorhanden ist, während eine vorhandene Datei oder ein Verzeichnis aktualisierte Dateizugriffs- und Änderungszeiten erhält (ähnlich wie touch über die Befehlszeile funktioniert).

0

sie können in diesem Fall das Modul "Datei" verwenden. Es gibt so viele Argumente, die Sie für ein neu erstelltes Verzeichnis übergeben können, z. B. Eigentümer, Gruppe, Speicherort, Modus usw.

in diesem Dokument finden Sie detaillierte Erklärungen zum Dateimodul ...

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

denken Sie daran, dieses Modul ist nicht nur für die Erstellung des Verzeichnisses !!!

0
user11345576

Sie können den Befehl direkt ausführen und direkt mit ansible erstellen

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