首页 > 解决方案 > 从 Jenkins 运行 ansible 时缺少 sudo 密码错误

问题描述

该命令是jenkins运行运行yml文件的命令

devops18@devops-vbox:/usr/share/ansible/roles/webrole$ /usr/bin/ansible-playbook /usr/share/ansible/roles/webrole/web.yml -i /usr/share/ansible/ansiserver -f 5

PLAY [ubuntuclient] **************************************************************************************************************************

TASK [Gathering Facts] ***********************************************************************************************************************
ok: [ubuntuclient]

TASK [webrole : Install JDK on Ubuntu] *******************************************************************************************************
fatal: [ubuntuclient]: FAILED! => {"msg": "Missing sudo password"}

PLAY RECAP ***********************************************************************************************************************************
ubuntuclient               : ok=1    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0   

devops18@devops-vbox:/usr/share/ansible/roles/webrole$ 

请建议我需要在詹金斯工作配置中进行的任何更改以使其正常工作

标签: jenkinsansible

解决方案


-kK调用 playbook 时需要提示输入密码:

/usr/bin/ansible-playbook /usr/share/ansible/roles/webrole/web.yml -i /usr/share/ansible/ansiserver -f 5 -kK

或添加密码--extra-vars(不推荐)

/usr/bin/ansible-playbook /usr/share/ansible/roles/webrole/web.yml -i /usr/share/ansible/ansiserver --extra-vars "ansible_sudo_pass=xxxxxx" -f 5 

或者您可以编辑/etc/sudoers

ubuntuclient        ALL=(ALL)       NOPASSWD: ALL

推荐阅读