将文件保存在远程机器中生成的本地机器中?

时间:2016-06-21 11:47:02

标签: ansible ansible-playbook

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 个答案:

答案 0 :(得分: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