我是ansible的新手。我可能会说一些完全错误的事情。
我使用KVM创建了VM,远程和本地都在Ubuntu 16.0.4上运行
现在我通过创建一个密钥来配置ansible ssh-keygen -t rsa -b 4096 -C“D ... @ 192.168.111.113” 这个创建的密钥并将其复制到远程机器上 ssh-copy-id D ... @ 192.168.111.113 现在我测试了ssh正在工作,它运行正常。
我在[DDAS]组下的/ etc / ansible / hosts中添加了远程机器的地址。
现在我可以使用ansible ping远程机器了。然后我写了Playbook来复制文件。我工作正常,只能将文件复制到/ home / Das1 /。我的意思是,我可以将文件复制到不需要root权限的位置。
我想将这些文件复制到/ etc / systemd /目录而不是/ home / das1 /。我在playbook中更改了dest,但它提供了与权限相关的错误。
非常感谢任何帮助。
感谢 DAS
答案 0 :(得分:1)
默认情况下,您的playbook任务在用于连接远程系统的用户的上下文中执行。 Ansible允许您使用change the user来运行剧本或个人任务。您可以创建一个新用户并将其授予您提到的目录,也可以使用内置root用户。
以root身份运行整个playbook,例如将其放在顶部,根据您的实际主机值进行调整:
- hosts: 192.168.111.113
become: true
become_user: root
tasks:
...
答案 1 :(得分:0)
/ etc / systemd /目录可能没有为您正在使用的用户提供“写入”权限。
使用ls -lrt检查/ etc / systemd /的权限。