Jenkins + Ansible 部署,sudo 提示密码不正确

环境

  • Linux: RedHat 7.8
  • Jenkins: 2.263.4
  • Ansible: 2.9.17
  • Python: 2.7.5

在使用 Jenkins + Ansible 的时候,sudo 时,明明密码是正确的,Ansible 却一直提示密码错误。报错信息如下

fatal: [127.0.0.1]: FAILED! => {"changed": false, "module_stderr": "Sorry, try again.\n[sudo via ansible, key=pnwqntnqehpgbonkakqwxylwtwlfdgxk] password:\nsudo: no password was provided\nsudo: 1 incorrect password attempt\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}


原因

原因是执行 sudo 的用户是 jenkins (Jenkins 的默认用户),而 jenkins 用户没有 sudo 权限,


解决方案

将 jenkins 的默认用户改为我部署时使用的用户(具有 sudo 权限)后就可以了,不过要确保修改默认执行用户不会对其他任务有影响。我这里是 redhat 的,如果是其他发行版可以搜索一下对应的修改方式,作为参考,这是我修改的步骤:

  1. 编辑 /etc/sysconfig/jenkins,将JENKINS_USER修改为你想要的用户,这里我是 deploy

《Jenkins + Ansible 部署,sudo 提示密码不正确》

  1. 修改下列目录的所有者,所有者全部改为新的JENKINS_USER指定的用户

目录:

/var/lib/jenkins/
/var/log/jenkins/
/var/cache/jenkins/
/usr/lib/jenkins/jenkins.war
/etc/sysconfig/jenkins

如:

sudo chown -R deploy:deploy /var/lib/jenkins

Jenkins 用户的修改参考修改jenkins启动的默认用户

点赞

发表评论

邮箱地址不会被公开。 必填项已用*标注