Ansible 无法复制文件。大概权限
Ansible cannot copy a file. Probably permissions
我想使用 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复制文件?
如果问题是“有什么问题?”那么答案是:
这是因为 /dev/fuse
文件系统安装在 /etc/pve
上(Ansible 无法将文件从 /tmp
移动到 /etc/pve
的分支,就像一个简单的 mv /tmp/file /etc/pve
命令失败)。
如果问题是“如何处理问题?”然后:
使用 Ansible 将文件复制到其他地方 (/home/user
),然后使用 Proxmox 上的命令模块复制文件并删除原件。
您也可以先触摸文件再复制:
- 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
我想使用 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复制文件?
如果问题是“有什么问题?”那么答案是:
这是因为
/dev/fuse
文件系统安装在/etc/pve
上(Ansible 无法将文件从/tmp
移动到/etc/pve
的分支,就像一个简单的mv /tmp/file /etc/pve
命令失败)。如果问题是“如何处理问题?”然后:
使用 Ansible 将文件复制到其他地方 (
/home/user
),然后使用 Proxmox 上的命令模块复制文件并删除原件。
您也可以先触摸文件再复制:
- 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