Jas*_*son 5 git solaris ansible ansible-playbook
我有一个git目录,由我不能ssh的用户拥有.我正在使用sudo_user: user哪个正在工作,但似乎没有正确设置$ HOME.我的用户帐户在〜/ .ssh/known_hosts文件中有github,但它被添加到我的~ssh_user/.ssh/known_hosts文件中(来自accept_hostkey = yes).
http://docs.ansible.com/git_module.html
- hosts: myhost
sudo_user: user
tasks:
- name: git
git: repo=git@github.com:user/repo.git dest=/home/user/repo update=no accept_hostkey=yes
Run Code Online (Sandbox Code Playgroud)
我需要做些什么来告诉ansible正确使用$ HOME吗?
我在Joyent上运行Solaris,但我不认为这直接适用于这个问题.
小智 7
在你的ansible.cfg文件中添加sudo_flags
[defaults]
sudo_flags = -i
Run Code Online (Sandbox Code Playgroud)
这将运行sudo用户的登录脚本来填充像$ HOME这样的environemt变量
sudo对一堆环境变量进行一些修改,特别是HOME. 您可以通过以下方式检查:
sudo -u user | grep HOME
Run Code Online (Sandbox Code Playgroud)
如果你得到了/home/user,那就没问题,但你很可能得到了/home/ssh_user。
这确实是与 ansible 有关的东西sudo,而不是与 ansible 相关的东西。
为了避免这种情况,您可以添加/etc/sudoers:
Defaults always_set_home
Defaults set_home
Run Code Online (Sandbox Code Playgroud)
再试一次sudo user | grep HOME,你应该得到正确的结果。
如果没有,请检查Defaults env_keepsudo 指令。这里也可以发挥作用。寻找Defaults env_keep += "HOME"in /etc/sudoers,并将其删除(该指令要求 sudo 防止HOME用户发出 sudo )
祝你好运。
编辑:这些指令也可能出现在/etc/sudoers.d/. 我不了解 Solaris,所以 YMMV。
| 归档时间: |
|
| 查看次数: |
3462 次 |
| 最近记录: |