Я создал следующий скрипт Ansible, в котором я проверяю наличие каталога с помощью подстановочных знаков, но у меня он не сработал:
- host: windows
vars:
dir: 'c:\inetpub\wwwroot\mysite*' # without * playbook working well
tasks:
- name : check dir
win_stat:
path: "{{ dir }}"
register: dirdata
- name: check
fail:
msg: not present
when: dirdata.stat.exists == false
Получаю следующую ошибку:
FAILED: => { " argument for the path is of type System.String and we were unable to convert to path: Illaegel characters in path.”}
Может кто-нибудь мне подсказать то же самое? Заранее спасибо.
решение1
Ошибка возникает из-за того, что узел управления Ansible не может расширить путь на удаленном узле без установления соединения и поиска на нем. Так что это ожидаемое поведение.
Существуют модули для использования с подстановочными знаками, напримерfileglob lookup – список файлов, соответствующих шаблону, но
Сопоставление выполняется с локальными системными файлами на контроллере Ansible. Для итерации списка файлов на удаленном узле используйте
ansible.builtin.find
модуль.
в твоем случаеwin_find
к
вернуть список файлов на основе определенных критериев.