Ansible中的Git模块在临时目录上的权限被拒绝 [英] Git module in Ansible gets permission denied on tmp directory
本文介绍了Ansible中的Git模块在临时目录上的权限被拒绝的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试通过Anable使用git
模块克隆远程存储库。任务配置如下:
- name: Clone repo
git:
repo: "{{ repository }}"
dest: "/home/{{ username }}/abc"
key_file: "{{ git_key_file }}"
register: code_update
但不幸的是,它失败了,错误如下:
fatal: [xyz]: FAILED! => {"changed": false, "cmd": "/usr/bin/git clone --origin origin '' /home/xyz/abc", "msg": "Cloning into '/home/xyz/abc'...
fatal: cannot exec '/tmp/tmpm9mfdkci': Permission denied
fatal: cannot exec '/tmp/tmpm9mfdkci': Permission denied
fatal: unable to fork", "rc": 128, "stderr": "Cloning into '/home/xyz/abc'...
fatal: cannot exec '/tmp/tmpm9mfdkci': Permission denied
fatal: cannot exec '/tmp/tmpm9mfdkci': Permission denied
fatal: unable to fork
", "stderr_lines": ["Cloning into '/home/xyz/abc'...", "fatal: cannot exec '/tmp/tmpm9mfdkci': Permission denied", "fatal: cannot exec '/tmp/tmpm9mfdkci': Permission denied", "fatal: unable to fork"], "stdout": "", "stdout_lines": []}
值得一提的是,我可以直接在远程服务器上克隆存储库。我还尝试使用environment
更改TMP
和TMPDIR
设置,但没有更改。
如有任何回复,我们将不胜感激...
推荐答案
/tmp
在服务器上使用选项noexec
挂载,因此ansible
无法执行自己的临时脚本。建议的修复方法是设置环境变量TMPDIR
:
- name: Clone the git repo in a temporary directory
environment:
TMPDIR: "/home/{{ username }}/tmp"
git:
repo: "{{ repository }}"
dest: "/home/{{ username }}/abc"
key_file: "{{ git_key_file }}"
确保该目录存在。
参见https://github.com/ansible/ansible/issues/30064,特别是。https://github.com/ansible/ansible/issues/30064#issuecomment-487149251这篇关于Ansible中的Git模块在临时目录上的权限被拒绝的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文