2016-12-19 6 views
0

Ich möchte das Verzeichnis ändern, bevor ein lokales Skript auf einem Remote-Knoten ausgeführt wird. Das Skript erlaubt chdir nicht als Argument. Wie geht das?Wechseln Sie das Verzeichnis, bevor Sie das lokale Skript ausführen

--- 
- hosts: centos 
    remote_user: kk 
    sudo: true 
    tasks: 
    - name: Run local script on remote node 
    script: /home/Ansible/VM/monitor/space.sh > space_result.txt 
    args: 
     chdir: /home/Ansible # something like that 
     creates: space_result.txt 
+0

Kann das "Script" Argument umgeschrieben werden: cd/home/ansible && /home/Ansible/VM/monitor/space.sh> space_result.txt? – codeforester

+1

Vielleicht möchten Sie eine 'copy' Aufgabe, gefolgt von einer' command' Aufgabe, oder ändern Sie das Skript um den 'cd' Befehl zu starten ... – twalberg

+0

@twalberg - Playbook war ein Erfolg, Datei wurde kopiert, aber keine Ausgabedatei . - Name: Führen Sie lokale Skript auf entfernten Knoten Kopie: src: ~/ansible/VM/Monitor/space.sh dest: /home/kk/space.sh Eigentümer: kk Modus: 0744 - Befehl : /home/kk/space.sh> space_result.txt args: chdir:/home/kk/Ansible/ erstellt: space_result.txt –

Antwort

1

Per your comment ("Textbuch war ein Erfolg, bekam Datei kopiert, aber keine Ausgabedatei."):

Umleitung funktioniert nicht im command Modul. Sie sollten shell statt:

- name: Ensure local script is copied to the remote node 
    copy: 
    src: ~/Ansible/VM/monitor/space.sh 
    dest: /home/kk/space.sh 
    owner: kk 
    mode: 0744 

- name: Run copied script on the remote node 
    shell: /home/kk/space.sh > space_result.txt 
    args: 
    chdir: /home/kk/Ansible 
    creates: space_result.txt 
Verwandte Themen