2017-09-22 4 views
0

以下は私のAnabilitiesプレイからのデバッグ出力です。 "path"でファイル名を抽出しようとしていますが、リモートからローカルマシンに複数のファイルをコピーしたいと思います。しかし、私は失敗に終わり、詳細は以下の通りです。Ansible:デバッグを介してファイル名を抽出する

ok: [environment_1] => { 
    "changed": false, 
    "examined": 42, 
    "files": [ 
     { 
      "atime": 1506085793.8824277, 
      "ctime": 1506085493.1115315, 
      "dev": 64771, 
      "gid": 0, 
      "inode": 41, 
      "isblk": false, 
      "ischr": false, 
      "isdir": false, 
      "isfifo": false, 
      "isgid": false, 
      "islnk": false, 
      "isreg": true, 
      "issock": false, 
      "isuid": false, 
      "mode": "0644", 
      "mtime": 1506085398.274815, 
      "nlink": 1, 
      "path": "/tmp/env1_2017-09-22_command_output.txt", 
      "rgrp": true, 
      "roth": true, 
      "rusr": true, 
      "size": 70728, 
      "uid": 0, 
      "wgrp": false, 
      "woth": false, 
      "wusr": true, 
      "xgrp": false, 
      "xoth": false, 
      "xusr": false 
     }, 
     { 
      "atime": 1506085725.0863488, 
      "ctime": 1506085718.8424354, 
      "dev": 64771, 
      "gid": 0, 
      "inode": 40, 
      "isblk": false, 
      "ischr": false, 
      "isdir": false, 
      "isfifo": false, 
      "isgid": false, 
      "islnk": false, 
      "isreg": true, 
      "issock": false, 
      "isuid": false, 
      "mode": "0644", 
      "mtime": 1506085636.4565618, 
      "nlink": 1, 
      "path": "/tmp/env2_2017-09-22_command_output.txt", 
      "rgrp": true, 
      "roth": true, 
      "rusr": true, 
      "size": 70952, 
      "uid": 0, 
      "wgrp": false, 
      "woth": false, 
      "wusr": true, 
      "xgrp": false, 
      "xoth": false, 
      "xusr": false 
     } 
    ], 
    "invocation": { 
     "module_args": { 
      "age": null, 
      "age_stamp": "mtime", 
      "contains": null, 
      "file_type": "file", 
      "follow": false, 
      "get_checksum": false, 
      "hidden": false, 
      "path": "/tmp", 
      "paths": [ 
       "/tmp" 
      ], 
      "patterns": [ 
       "*command_output.txt" 
      ], 
      "recurse": false, 
      "size": null, 
      "use_regex": false 
     } 
    }, 
    "matched": 2, 
    "msg": "" 
} 

私はローカルマシンにリモートマシンからそれらをコピーするためにモジュールをフェッチ使用できるように、私は、"path": "/tmp/env2_2017-09-22_command_output.txt" ""path": "/tmp/env2_2017-09-22_command_output.txt"を抽出することができますどのような方法があります。

今の私のプレーは

---            
     - name: find the file in the temp location 
     find:          
      path: /tmp       
      patterns: '*command_output.txt'  
     register: path_name      

     - debug: msg={{ path_name.files.0.path }} 

     - fetch:         
      src: "{{ item }}"      
      dest: ./environment_1/     
      flat: yes        
     with_items:        
      - "path_name.files.0.path"   
      - "path_name.files.1.path"  

以下のように見えると私は私が私のミスを理解してくださいエラー

{ 
changed": false, 
    "file": "path_name.files.1.path", 
    "item": "path_name.files.1.path", 
    "msg": "the remote file does not exist, not transferring, ignored" 
} 

の下に取得しています。

答えて

2

あなたはpath_name.filesを反復処理する必要があります。

- fetch:         
    src: "{{ item.path }}" 
    dest: ./environment_1/ 
    flat: yes 
    with_items: "{{ path_name.files }}" 
関連する問題