2016-03-30 6 views
1

Ich bin neu zu ansible und ich versuche, eine Datei von einem Verzeichnis zu einem anderen Verzeichnis auf einem Remote-RH-Rechner mit Ansible zu kopieren.Ansible Playbook-Kopie fehlgeschlagen - msg: konnte src nicht finden

--- 
- hosts: all 
    user: root 
    sudo: yes 
    tasks: 

    - name: touch 
    file: path=/home/user/test1.txt state=touch 

    - name: file 
    file: path=/home/user/test1.txt mode=777 

    - name: copy 
    copy: src=/home/user/test1.txt dest=/home/user/Desktop/test1.txt 

Aber es wirft Fehler wie unten

[[email protected] ansible]# ansible-playbook a.yml -i hosts 
SSH password: 

PLAY [all] ******************************************************************** 

GATHERING FACTS *************************************************************** 
ok: [auto-0000000190] 

TASK: [touch] ***************************************************************** 
changed: [auto-0000000190] 

TASK: [file] ****************************************************************** 
ok: [auto-0000000190] 

TASK: [copy] ****************************************************************** 
failed: [auto-0000000190] => {"failed": true} 
msg: could not find src=/home/user/test1.txt 

FATAL: all hosts have already failed -- aborting 

PLAY RECAP ******************************************************************** 
      to retry, use: --limit @/root/a.retry 

auto-0000000190   : ok=3 changed=1 unreachable=0 failed=1 

[[email protected]ansible ansible]# 

Die Datei im Verzeichnis erstellt hat und sowohl die Datei und das Verzeichnis haben Berechtigungen bekommen 777.

Ich erhalte die gleiche Fehlermeldung wenn ich versuche, bereits vorhandene Datei mit ansible zu kopieren.

Ich habe als Nicht-Root-Benutzer als auch aber keinen Erfolg versucht.

Vielen Dank im Voraus,

Engel

+0

Gerade jetzt habe ich gelesen, dass "das Kopiermodul eine Datei auf der lokalen Box an entfernten Standorten kopiert." Ich habe erwartet, dass es eine Datei von einem Ort zu einem anderen Ort auf dem entfernten Rechner kopieren wird. Der Befehl Kopieren sucht nach der Datei auf dem lokalen Computer. In meinem Fall ist sie nicht vorhanden. Daher ist die Fehlermeldung, die ich sehe, sinnvoll. – Angel

Antwort

1

Wenn Sie ansible> = 2,0 Sie remote_src, wie diese verwenden:

--- 
- hosts: all 
    user: root 
    sudo: yes 
    tasks: 

    - name: touch 
    file: path=/home/user/test1.txt state=touch 

    - name: file 
    file: path=/home/user/test1.txt mode=777 

    - name: copy 
    copy: src=/home/user/test1.txt dest=/home/user/Desktop/test1.txt remote_src=yes 

Diese unterstützen nicht rekursive Kopie.

0

Was ist Ihre ansible Version? Neuere Version von ansible unterstützt, was Sie wollen. Wenn Sie kein Upgrade durchführen können, versuchen Sie cp Befehl für einfache Dateikopie. cp -r kopiert rekursiv.

- name: copy 
    shell: cp /home/user/test1.txt /home/user/Desktop/test1.txt