我是Ansible的新手。尝试将一些文件复制到远程计算机。 我可以复制到远程服务器的tmp文件夹,但无法复制到特定的用户文件夹。
我认为我们可以切换到该特定用户。但是我无法使用playbook这样做。
请帮我解决这个问题。
此致 KP
答案 0 :(得分:1)
这是许可问题。用于连接主机的用户无权写入其他用户文件夹。
如果您有权访问该用户帐户(例如,您接受了ssh密钥),则只需通过remote_user
定义每个任务的用户:
- copy: src=...
dest=...
remote_user: <SET_OWNER_HERE>
如果您没有访问权限,则可以使用sudo
标志执行具有root
权限的任务。但请确保正确设置权限或用户可能无法读取/写入这些文件:
- copy: src=...
dest=...
owner=<SET_OWNER_HERE>
group=<SET_GROUP_HERE>
mode=0644
sudo: yes
此外,您可以使用sudo_user
:
- copy: src=...
dest=...
sudo: yes
sudo_user: <SET_OWNER_HERE>
如果sudo
需要您的密码,则必须提供密码,否则任务将永久挂起而不会显示任何错误消息。
您可以在ansible.cfg
:
ask_sudo_pass=True
或者在拨打剧本时通过该选项:
ansible-playbook ... --ask-sudo-pass