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 для все файлы в дереве каталогов?



спасибо.

664   2  

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

    Ничего не найдено.