Ansible拉取k3s角色任务失败:无法打开.git/FETCH_HEAD权限被拒
问题原因分析
这个错误的核心原因是Ansible执行任务时使用的用户,对目标目录下的.git文件夹没有写入权限,具体细节如下:
- 目标目录
{{playbook_dir}}/../k3s-ansible可能已存在(比如你之前手动克隆过该仓库),且该目录下的.git文件夹的所有者/权限配置,和Ansible执行任务时的用户不匹配。 - 你手动执行
git pull成功,说明当前登录用户对该仓库目录有读写权限,但Ansible可能以另一个用户身份运行(比如通过sudo执行playbook,或者Ansible配置中指定了不同的运行用户),这个用户没有权限修改.git/FETCH_HEAD文件。 - 错误信息里的
error: cannot open .git/FETCH_HEAD: Permission denied直接指向:当Ansible调用git fetch命令时,无法写入.git目录下的FETCH_HEAD文件,权限不足导致操作失败。
内容的提问来源于stack exchange,提问作者Richard Rublev
相关产品推荐
相关产品推荐

