Я ломаю голову, почему мой код не регистрирует файлы в dict
что-то не так с моим кодом в playbook, но я не вижу, что
vars:
file_vars:
- { spath: /var/log/ctm, type: file, mode: o-w, pattern: "^.*?\\.(?:sh|fp|so|xml)$" }
tasks:
- name: Find files depending on REGEX pattern
find:
paths: "{{ item.spath }}"
file_type: "{{ item.type }}"
recurse: yes
patterns: "{{ item.pattern }}"
use_regex: yes
with_items:
- "{{ file_vars }}"
register: change_mode
- debug:
var: change_mode
- name: remove world writable permissions
file:
path: "{{ item.path }}"
mode: o-w
with_items:
- "{{ change_mode.files }}"
НЕ СМОГЛИ! => {"msg": "'объект dict' не имеет атрибута 'files'"}
любая помощь очень ценится
Если вы прочитали вывод своей задачи debug
вы бы заметили change_mode
это словарь, содержащий results
список, а не files
. Это из-за with_items
петля в вашем Find files depending on REGEX pattern
задача.
Перебрать change_mode.results
с подэлементами files
:
- name: remove world writable permissions
file:
path: "{{ item.1.path }}"
mode: o-w
loop: "{{ change_mode.results | subelements('files') }}"
С вашими текущими данными цикл в Find files depending on REGEX pattern
задача не нужна, поэтому вы можете просто удалить ее, но я предполагаю, что вы хотите file_vars
быть расширяемым.