ワイルドカードを使用してディレクトリが存在するかどうかを確認する以下の 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 コントロール ノードが接続して検索せずにリモート ノード上のパスを展開できないために発生します。したがって、これは予想される動作です。
ワイルドカードを使用するためのモジュールがあります。ファイルグロブ検索 – パターンに一致するファイルをリストします、 しかし
マッチングはAnsibleコントローラー上のローカルシステムファイルに対して行われます。リモートノード上のファイルのリストを反復処理するには、
ansible.builtin.find
モジュール。
あなたの場合win_find
に
特定の条件に基づいてファイルのリストを返す。