如何在 Ansible 中的“win_stat”模块中使用通配符?

如何在 Ansible 中的“win_stat”模块中使用通配符?

我创建了下面的 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

根据特定标准返回文件列表

相关内容