Ansible上传文件到直接根目录

时间:2015-11-09 21:23:54

标签: ansible scp provisioning

我正试图用 Ansible 模仿这个整洁的scp命令:

scp local_file user@remote_host:

上面会将local_file上传到remote_host /home/user Ansible BIG 问题是它需要dst中的绝对路径,我无法提供,因为我正在上传到router ...

---
- hosts: remote_host
  connection: paramiko
  gather_facts: False
  tasks:
  - name: Uploading SSH Pub Key
    copy:
      src="../keys.d/ssh-keyfile.pub" dest="/"

这本剧本很高兴失败并出现错误:

fatal: [remote_host] => failed to transfer file to syntax error (line 1 column 5)/source

有谁知道任何合理的解决方法?也许可以启动本地命令(在执行 ansible-playbook 的主机上),在我的情况下是scp,并将其提供给 Ansible vars ?

1 个答案:

答案 0 :(得分:1)

在移动文件之前发出远程命令并捕获输出会起作用吗?

tasks:
 - command: pwd
   register: remote_pwd
 - name: Uploading SSH Pub Key
   copy:
     src="../keys.d/ssh-keyfile.pub" dest="{{ remote_pwd }}"

好的,鉴于路由器的外壳非常有限,那么你可以试试这个(这对我的linux机箱有效,但我还没有路由器可以试试)

---
- hosts: localhost
  vars:
    user: jonathan
    host: 192.168.1.1
    file: /tmp/test
    idfile: /Users/jonathan/.ssh/id_rsa.pub
  tasks:
- name: scp
  command: "scp -i {{ idfile }} {{ file }} {{ user }}@{{ host}}:"