와일드카드를 사용하여 디렉터리가 있는지 여부를 확인하는 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 조회 – 패턴과 일치하는 파일 목록, 하지만
일치는 Ansible 컨트롤러의 로컬 시스템 파일과 비교됩니다. 원격 노드의 파일 목록을 반복하려면 다음을 사용하십시오.
ansible.builtin.find
기준 치수.
당신의 경우에는win_find
에게
특정 기준에 따라 파일 목록을 반환합니다..