Ruby Ansible文件模块在尝试递归设置文件所有权时抛出错误
任务是Ruby Ansible文件模块在尝试递归设置文件所有权时抛出错误,ruby,rvm,ansible,Ruby,Rvm,Ansible,任务是 - name: ensure rvm install path is writable by the set owner:group file: path='{{ rvm1_install_path }}' state=directory recurse=yes owner='{{ rvm1_user }}' group='{{ rvm1_group }}' 我得到 TASK: [rvm_io.rvm1-ruby | ensure rvm install path is writa
- name: ensure rvm install path is writable by the set owner:group
file: path='{{ rvm1_install_path }}' state=directory recurse=yes owner='{{ rvm1_user }}' group='{{ rvm1_group }}'
我得到
TASK: [rvm_io.rvm1-ruby | ensure rvm install path is writable by the set owner:group] ***
failed: [54.68.205.15] => {"failed": true, "gid": 111, "group": "jenkins", "item": "", "mode": "0755", "owner": "jenkins", "path": "/var/lib/jenkins/.rvm", "size": 4096, "state": "directory", "uid": 106}
msg: chgrp failed
FATAL: all hosts have already failed -- aborting
文件夹已经存在
我正在使用
sudo: true
sudo_user: jenkins
因为我的ssh用户是ubuntu
这是一部分,但感觉这可能与RVM关系不太密切。。因此,我在这里询问,但不确定。您的
jenkins
用户没有创建目录或设置权限的权限。此外,如果存在任何文件/目录,并且这些文件/目录归jenkins以外的人所有,jenkins用户将无法浏览它们
这就是chgrp
失败的原因。您需要超级用户权限,希望jenkins用户的权限非常有限
这可能是您的意图:
- name: ensure rvm path exists
file: path='{{ rvm1_install_path }}' state=directory recurse=yes owner='{{ rvm1_user }}' group='{{ rvm1_group }}'
sudo: yes
sudo_user: root
- name: all rvm files should be owned by our user
file: path='{{ rvm1_install_path }}' recurse=yes owner='{{ rvm1_user }}' group='{{ rvm1_group }}'
sudo: yes
sudo_user: root
文件夹的所有者是
jenkins
,据我所知,在故障发生后,所有权和权限都是正常的。rvm1\u安装路径是~/.rvm
,在jenkins主页中folder@karthik-您的问题在于对非root用户的sudo。句号。由于ansible角色更改为完全不使用chown
,问题变得多余。