En ansible, puedo hacer esto:
file: dest=/foo/bar/somedir owner=root group=apache mode=0775 recurse=yes
Y establece recursivamente el propietario, el grupo y los permisos en 0775 en todos los directorios y archivos en esa ruta. Pero quiero establecer directorios en 0775 y archivos en 0664. ¿Hay alguna forma de hacer que ansible haga esto?
file-permissions
ansible
Edward Ned Harvey
fuente
fuente
Respuestas:
establecerá directorios en 755 y archivos en 644.
fuente
X
esx
para directorios, y nada para archivos. Y así es comochmod
, noansible
trata la cadena de modo. DesearíaS
ser tratado de la misma manera.Fuente: https://stackoverflow.com/a/28782805/1306186
fuente
recurse
opción pero no la otra.Si desea utilizar el archivo del módulo en ansible, puede:
Con este método, primero establece todo el archivo (recurse = yes) en '644' y luego establece / foo / bar / somedir en '775'.
Esto no es perfecto porque cambiará el permiso de tu directorio cada vez que juegues tu libro de jugadas. Pero al menos es idempotente, no como el comando del módulo.
Si no desea que el estado 'haya cambiado', puede usar la estadística del módulo. Enumerará todos los archivos y el directorio en / foo / bar / somedir para que registre la respuesta y luego haga un bucle solo en esos archivos.
fuente
No estoy seguro de qué sentido tendría establecer directorios en 0775 (
rwxrwxr-x
) y archivos en 0644 (rw-r--r--
): directorios de escritura grupal pero no archivos.Si desea establecer archivos en 0664 (
rw-rw-r--
) para asegurarse de que los archivos no sean ejecutables mientras los directorios son transitables, entonces hay una solución elegante que involucra solo unchmod
comando:Así es como se puede usar en Ansible :
chmod -c
imprime todos los cambios que podemos usar convenientemente para completar el estado "modificado" en Ansible . Espero que tenga sentido.fuente
Para cambiar solo las modificaciones cuando sea necesario:
fuente