Ansible-Mode 755 для каталогов и 644 для файлов рекурсивно
Я хотел бы, чтобы кто-нибудь списком и прочитать все файлы в дереве каталогов, но я не хочу делать исполняемые файлы :
dir
subdir1
file1
subdir2
file2
...
subdirX
fileX
следующая задача делает мои каталоги и файлы читаемыми, но она также делает все файлы исполняемыми:
- name: Make my directory tree readable
file:
path: dir
mode: 0755
recurse: yes
С другой стороны, если я выберу режим 0644, то все мои файлы не являются исполняемыми, но я не могу перечислить мои каталоги.
можно ли установить режим 755 для всех каталогов и 644 для все файлы в дереве каталогов?
спасибо.
2 ответов:
начиная с версии 1.8, Ansible поддерживает символьные режимы. Таким образом, следующее будет выполнять задачу, которую вы хотите:
- name: Make my directory tree readable file: path: dir mode: u=rwX,g=rX,o=rX recurse: yesпотому что X (вместо x) применяется только к каталогам или файлам с хотя бы одним набором бит X.
модули Ansible file/copy не дают вам детализации определения разрешений на основе типа файла, поэтому вам, скорее всего, придется сделать это вручную, сделав что-то в этом роде:
- name: Ensure directories are 0755 command: find {{ path }} -type d -exec chmod -c 0755 {} \; register: chmod_result changed_when: "chmod_result.stdout != \"\"" - name: Ensure files are 0644 command: find {{ path }} -type f -exec chmod -c 0644 {} \; register: chmod_result changed_when: "chmod_result.stdout != \"\""Они будут иметь эффект рекурсии через
{{ path }}и изменение разрешений каждого файла или каталога на указанные разрешения.
Comments