如何在 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 查找 – 列出與模式相符的文件, 但

匹配是針對 Ansible 控制器上的本機系統檔案。若要迭代遠端節點上的檔案列表,請使用ansible.builtin.find模組。

在你的情況下win_find

根據特定條件傳回文件列表

相關內容