2017-09-22 4 views
0

Ich habe unten Debug Ausgabe von meinem Ansible spielen und ich versuche, Dateinamen bei "Pfad" zu extrahieren, und ich möchte sie (mehrere Dateien) von Remote zu lokalen Computer kopieren. Aber ich bin gescheitert und Details waren unten.Ansible: Extrahieren Dateinamen über debug

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": "" 
} 

Gibt es eine Möglichkeit, "path": "/tmp/env2_2017-09-22_command_output.txt" ""path": "/tmp/env2_2017-09-22_command_output.txt" extrahieren kann, so dass ich Modul holen kann sie von Remote-Rechner auf dem lokalen Computer kopieren.

Im Moment sieht mein Spiel wie unten

---            
     - 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"  

und ich bin unten Fehler immer

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

Bitte helfen Sie mir meine Fehler zu verstehen.

Antwort

2

Sie sollten iterieren path_name.files:

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