2016-06-21 136 views
1

test.yml在远程机器上生成的本地机器上保存文件?

--- 
- hosts: webservers 
    remote_user: username 
    tasks: 
    - name: Execute the script 
     command: sh /home/username/top.sh 

top.sh

#!/bin/bash 
top > system.txt 

我跑test.yml在本地机器上,它将运行在远程机器的shell脚本和保存命令在system.txt文件中。

位置 top.sh

system.txt的遥控器,定位:远程

但是我正在寻找位置top.sh

:本地(但我需要在远程运行此命令),地址system.txt:本地

如何实现这一目标?

回答

1

您可以使用synchronize模块将文件从本地复制到远程或从远程复制到本地主机。例如

- name: 'Copy run.sh to remote machine' 
    synchronize: 
    mode: push 
    src: top.sh 
    dest: /home/username 

- name: Execute the script 
    command: sh /home/username/top.sh 

- name: 'Copy system.txt to local machine' 
    synchronize: 
    mode: pull 
    src: /home/username/system.txt 
    dest: . 

注:为synchronize模块来工作,你将需要安装在主机rsync

+0

哇,你太棒了。在'执行脚本'命令不会结束它会动态生成内容(无限循环),所以它不会进入下一步(存储在本地计算机中)。如何克服这种情况? –

+0

@BilalUsean您需要在top.sh脚本中添加某种超时,或者在async和wait_for中使用ansible,但这是一个单独的问题,您应该问一下。 – SztupY

相关问题