#ansible
#ansible
Вопрос:
Я хотел проверить разрешение на чтение другой группы для всех файлов в /tmp/ap//jets//conf/. Когда я выполняю отладку find_config, я могу видеть значения roth. Но, пожалуйста, дайте мне знать, как распечатать только эти значения.
- name: List config
shell: ls -d /tmp/ap/*/jets/*/conf/
register: config
- name: Status
find:
paths: "{{item}}"
loop: "{{config.stdout_lines}}"
register: find_config
- debug:
msg: "{{item.files.roth}}"
loop: "{{find_config.results}}"
Мне также нужно выполнить проверку, например, когда значение roth равно true, а затем выполнить СБОЙ печати.
Мне нужно что-то вроде приведенного ниже:
- debug:
msg: "FAIL"
when: item.files.roth
loop: "{{find_config.results}}"
Часть вывода отладки find_config:
"files": [
{
"atime": 1608008199.489219,
"ctime": 1608008199.4442186,
"dev": 624768,
"gid": 103,
"gr_name": "prt",
"isgid": false,
"islnk": false,
"isreg": true,
"issock": false,
"isuid": false,
"mode": "0640",
"mtime": 16008199.4442186,
"nlink": 1,
"path": "/tmp/ap/new1/jets/f2/conf/conf.xml",
"pw_name": "wl",
"rgrp": true,
"roth": false,
"rusr": true,
"size": 21835,
Комментарии:
1. Простите за мой глупый вопрос, но на что
roth
ссылается и какие значения он содержит? Поможет пример дампа отладки (частичный, если слишком большой) вашей зарегистрированной переменной2. @Zeitounator, я добавил отладочный вывод. roth — это разрешение на чтение других. rwxrwx — означает, что у других нет разрешений на чтение.
3. @Vladmir, я не знаю точного пути, который нужно ввести в find. Я просто знаю /tmp/ap/*/jets/*/conf/ . Я предполагаю, что пути к модулю find не поддерживают подстановочные знаки.
4. @Smily блестящая демонстрация, которую мы можем изучать каждый день, и что мы фильтруем информацию, которую мы видим в наших ежедневных отладках (я никогда не замечал, что возвращаемое значение, которое четко не задокументировано на странице модуля). Спасибо за это.
Ответ №1:
Я передал вывод из оболочки в пути в find, и теперь он работает.
- name: List config
shell: ls -d /tmp/ap/*/jets/*/conf/
register: config
- name: Status
find:
paths: "{{config.stdout_lines}}"
register: find_config
- debug:
msg: "{{item.roth}}"
loop: "{{find_config.files}}"