2017-10-18 6 views
0

危険な役割の使用。私は、ファイルパスのリストをループしたいと思いますが、私はエラーを取得する:検索は、配列「ファイルを返すアシスタント:ファイルの検索とパス上のループ

- name: "find logs" 
    find: 
    paths:/
    patterns: 'download.log' 
    recurse: yes 
    register: find_logs 

- name: "list log files" 
    debug: var="{{ item.path }}" 
    with_items: "{{ find_logs.files }}" 

:これは「list_log_files」役割にmain.ymlある

template error while templating string: unexpected '/'. 
String: {{/home/xyz/download.log}} 

"、それぞれが辞書です。辞書には、私が興味を持って何であるパスエントリが含まれてい

答えて

1

(ご利用の場合の値を持つ)debugモジュールのvar引数の正しい構文は次のとおりです。Ansible表記で

  • : YAML表記

    debug: var=item.path 
    
  • debug: 
        var: item.path 
    

可能なモジュールの使用法は、よく説明されており、ほとんどのユーザーのニーズをカバーしています。これはdebugモジュールにも当てはまります。したがって、refer to the examplesは基本構文をチェックします。

+0

残念ながら、 "debug:var:item.path"は単にパスを出力するのではなく、 "item"の内容全体を出力しますが、パスのみが必要です。たぶんフィルターが機能するのでしょうか? – J21042

+0

正確ではありません。ループ内で実行されている 'debug'タスクは、モジュールがどのように記述されたのかに応じて、指定された変数に加えて** item **を全体として出力します。誰かが 'debug 'を使用して驚き...デバッグをするように設計しました。 – techraf

+0

はい、私はAnsibleについて学ぶことがたくさんあります。私は本当に "find"から他のステップに渡すための一連のパスを取得したいと思いますが、それをどうやって行うのか分かりません。 – J21042