Wie erstellt man ein Verzeichnis www
um /srv
auf einem Debian-basierten System mit einem Ansible-Playbook?
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
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.
sie können erstellen mit:
- 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
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
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.
- 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.
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`
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
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'
Wir haben Module zur Erstellung von Verzeichnissen, Dateien in Ansible
Beispiel
- name: Creates directory
file:
path: /src/www
state: directory
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
verzeichnis erstellen
ansible Host_name -m file -a "dest=/home/ansible/vndir state=directory"
Einfachster Weg, um ein Verzeichnis zu erstellen in Ansible.
ODER
Sie möchten diesem Verzeichnis Sudo-Berechtigungen zuweisen.
---
- 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.
Wenn Sie ein Verzeichnis in Windows erstellen möchten:
- name: Verzeichnisstruktur erstellen
win_file:
Pfad: C:\Temp\Ordner\Unterordner>
state: directory
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.
Wennfile
, wird die Datei NICHT erstellt, wenn sie nicht vorhanden ist. Informationen dazu finden Sie im Modul [copy] oder [template].
Wennlink
, wird der symbolische Link erstellt oder geändert. Verwenden Siehard
für Hardlinks.
Wennabsent
, 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 wietouch
über die Befehlszeile funktioniert).
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 !!!
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