In Ansible kann ich dies tun:
file: dest=/foo/bar/somedir owner=root group=apache mode=0775 recurse=yes
Außerdem werden der Besitzer, die Gruppe und die Berechtigungen für alle Verzeichnisse und Dateien in diesem Pfad rekursiv auf 0775 festgelegt. Aber ich möchte Verzeichnisse auf 0775 und Dateien auf 0664 setzen. Gibt es eine Möglichkeit, dies ansible zu machen?
file-permissions
ansible
Edward Ned Harvey
quelle
quelle
Antworten:
setzt Verzeichnisse auf 755 und Dateien auf 644.
quelle
X
istx
für Verzeichnisse und nichts für Dateien. Und das ist , wiechmod
, nichtansible
behandelt den Modus - String. Ich wünschte, ichS
würde genauso behandelt.Quelle: https://stackoverflow.com/a/28782805/1306186
quelle
recurse
Option, aber nicht die andere.Wenn Sie die Moduldatei in Ansible verwenden möchten, können Sie:
Mit dieser Methode setzen Sie zuerst die gesamte Datei (recurse = yes) auf '644' und dann setzen Sie / foo / bar / somedir auf '775'.
Dies ist nicht perfekt, da sich die Verzeichnisberechtigung jedes Mal ändert, wenn Sie Ihr Playbook abspielen. Aber zumindest ist es idempotent, nicht wie der Modulbefehl.
Wenn Sie den Status nicht ändern möchten, können Sie das Modul stat verwenden. Es listet alle Dateien und Verzeichnisse in / foo / bar / somedir auf, so dass Sie die Antwort registrieren und dann nur diese Dateien in einer Schleife bearbeiten können.
quelle
Ich bin mir nicht sicher, wie sinnvoll es wäre, Verzeichnisse auf 0775 (
rwxrwxr-x
) und Dateien auf 0644 (rw-r--r--
) zu setzen: gruppenbeschreibbare Verzeichnisse, aber keine Dateien?Wenn Sie beabsichtigen, Dateien auf 0664 (
rw-rw-r--
) zu setzen, um sicherzustellen, dass Dateien nicht ausführbar sind, während Verzeichnisse durchsucht werden können, gibt es eine elegante Lösung, die nur einenchmod
Befehl umfasst:So kann es in Ansible verwendet werden :
chmod -c
gibt alle Änderungen aus, die wir verwenden können, um den Status "geändert" in Ansible aufzufüllen . Ich hoffe es macht Sinn.quelle
So ändern Sie Modifikationen nur bei Bedarf:
quelle