#ansible
#ансибль
Вопрос:
Я использую модуль win_find с Ansible. Он возвращает список, но я хочу, чтобы возвращалось только имя файла, как мне этого добиться?
Я пробовал несколько вещей и подумал, что это сработает, если использовать имя файла.
- name: Only filename
debug:
msg: "{{ file_name.files.filename }}"
Но это не работает.
Это результат, когда я запускаю Ansible:
ok: [test] => {
"file_name": {
"changed": false,
"examined": 1,
"failed": false,
"files": [
{
"attributes": "Archive",
"checksum": "9c895e101dd6497f0b561460cb45b1f219a5f2ba",
"creationtime": 1611923974.384624,
"exists": true,
"extension": ".msi",
"filename": "test1.msi",
"hlnk_targets": [],
"isarchive": true,
"isdir": false,
"ishidden": false,
"isjunction": false,
"islnk": false,
"isreadonly": false,
"isreg": true,
"isshared": false,
"lastaccesstime": 1611923974.384624,
"lastwritetime": 1611923973.355175,
"lnk_source": null,
"lnk_target": null,
"nlink": 1,
"owner": "BUILTIN\Administrators",
"path": "C:\test\globalsync\test1.msi",
"sharename": null,
"size": 18192384
}
],
"matched": 1
}
Это мой план действий.
---
- hosts: all
tasks:
- name: get the msi name in checkMK folder
ansible.windows.win_find:
paths: C:testglobalsync
patterns: "*.msi"
register: file_name
- name: return only the filename
debug:
msg: "{{ file_name.files.filename }}"
Ответ №1:
Я не могу проверить это должным образом, но любой из них должен работать:
- name: filename
debug:
msg: "{{ file_name.files[0].filename }}"
или
- name: filename
debug:
msg: "{{ item.filename }}"
loop: file_name.files