2016-12-19 89 views
0

我想在遠程節點上運行本地腳本之前更改目錄。腳本不允許chdir作爲參數。怎麼做?在運行本地腳本之前更改目錄

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

可以在 「腳本」 的說法被改寫爲:CD /家庭/ Ansible && /home/Ansible/VM/monitor/space.sh> space_result.txt? – codeforester

+1

也許你想要一個'copy'任務,然後是一個'command'任務,或者修改腳本在它開始時執行'cd'命令... – twalberg

+0

@twalberg - Playbook是成功的,文件被複制但沒有輸出文件。 - 名稱:運行遠程節點上本地腳本 副本: 源:〜/ Ansible/VM /監視器/ space.sh DEST:/home/kk/space.sh 業主:KK 模式:0744 - 命令:/home/kk/space.sh> space_result.txt args: chdir:/ home/kk/Ansible/ created:space_result.txt –

回答

1

your comment( 「劇本是成功的,得到的文件複製,但沒有輸出文件」):

重定向不會在command模塊中工作。您應該使用shell代替:

- 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