我正在使用lineinfile
更新配置文件。该文件存在,并且ansible_ssh_user
拥有它并具有写入权限,但包含它的目录归 拥有root
。当我的任务运行时,我出现错误:
目标目录 (/parent/directory/name) 不可由当前用户写入。
我可以使用 手动编辑文件vim
,并且我的lineinfile
任务包括create=no
,所以我不明白为什么 Ansible 需要对父目录的写入权限。我遗漏了什么吗?有没有办法允许 ansible 将 写入文件而不授予其所在目录的权限?
PS-我真的不想使用become
或sudo
与这个剧本一起使用;它旨在成为一本无需输入密码的简单剧本。
答案1
使用来源,卢克!:)
如果你看看来源对于lineinfile
模块,您可以看到它将更改写入临时文件,然后执行原子文件复制到目标文件名,覆盖文件的旧版本。
您正在运行 ansible 的用户将需要对父目录具有写权限。