0

我想用 Ansible 将新证书复制到 Proxmox。

我的设置

.ssh/config已修改,因此ssh machine将使用 root 登录。

scp /Users/dir/key.pem /etc/pve/nodes/machine/pve-ssl.key工作正常。

问题

Ansible 失败。我在最新的 macbook 上运行它。ansible --version 是ansible 2.2.1.0.

机器.yml

- hosts: machines
  vars:
    ca_dir: /Users/dir/

  - name: copy a pve-ssl.key
    copy:
      src="{{ ca_dir }}/key.pem"
      dest=/etc/pve/nodes/machine/pve-ssl.key

权限?

这工作正常:

- hosts: machines
  vars:
    ca_dir: /Users/dir/

  - name: copy a pve-ssl.key
    copy:
      src="{{ ca_dir }}/key.pem"
      dest=/root/pve-ssl.key

所以这是一个权限问题,但是为什么。Ansible 正在使用 root - 进入我的机器ansible machine -m shell -a 'who'

可能与组权限有关,因为

$ ls -la /etc/pve/nodes/machine/
drwxr-xr-x 2 root www-data    0 Feb 26 01:35 .
[...]
$ ls -la /root
drwx------  5 root root  4096 Feb 26 12:09 .
[...]

如何使用ansible复制文件?

4

2 回答 2

1
  • 如果问题是“问题是什么?” 那么答案是:

    这是因为/dev/fuse挂载的文件系统/etc/pve(Ansible 无法将文件从/tmp的分支移动/etc/pve,就像一个简单的mv /tmp/file /etc/pve命令失败一样)。

  • 如果问题是“如何处理问题?” 然后:

    使用 Ansible将文件复制到别处 ( /home/user),然后使用 Proxmox 上的命令模块复制文件并删除原始文件。

于 2017-02-26T11:57:59.740 回答
-1

您也可以先触摸文件,然后复制它:

- name: touch empty file
  file:
    path: /etc/pve/nodes/machine/pve-ssl.key
    state: touch

- name: copy a pve-ssl.key
        copy:
          src: "{{ ca_dir }}/key.pem"
          dest: /etc/pve/nodes/machine/pve-ssl.key
于 2018-01-12T09:11:42.763 回答