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 的位置:本地
如何实现这一目标?
答案 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
。