我想使用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
。
machine.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复制文件?
答案 0 :(得分:1)
如果问题是"问题是什么?"然后答案是:
这是因为在/dev/fuse
上安装了/etc/pve
个文件系统(Ansible无法将文件从/tmp
移动到/etc/pve
的分支,就像一个简单mv /tmp/file /etc/pve
命令失败)。
如果问题是"如何处理问题?"然后:
使用Ansible将文件复制到其他位置(/home/user
),然后使用Proxmox上的命令模块复制文件并删除原件。
答案 1 :(得分:-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