Ansible从无密码用户执行sudo时提示缺少sudo密码的问题解决求助
Ansible从无密码用户执行sudo时提示缺少sudo密码的问题解决求助
各位好,最近用Ansible的时候碰到了一个棘手的问题,想请大家帮忙分析下:
我有一个没有设置密码的用户my_user,希望Ansible以这个用户身份执行sudo操作,但不想修改sudoers文件添加NOPASSWD规则。结果Ansible一直报错:
FAILED! => {"msg": "Missing sudo password"}
具体环境说明:
- 目标服务器上有两个用户:
my_user和root,其中root设置了密码,my_user没有密码,通过SSH私钥登录 - sudoers文件的配置是
%sudo ALL=(ALL:ALL) ALL,我手动用my_user执行sudo命令时,完全不会弹出密码提示,直接就能成功执行
我使用的Playbook内容:
- name: VM deployment hosts: localhost gather_facts: false tasks: - name: "Add the VM as an ansible host" ansible.builtin.add_host: name: '{{ my_ip }}' groups: - my_vm ansible_ssh_private_key_file: "~/.ssh/id_rsa" ansible_user: 'my_user' - name: "VM configuration" hosts: my_vm gather_facts: false tasks: - name: Install some packages ansible.builtin.apt: deb: "/tmp/somepackage.deb"
明明手动执行sudo没问题,为什么Ansible会提示缺少sudo密码呢?有没有不用修改sudoers文件的解决办法呀?
备注:内容来源于stack exchange,提问作者Fadeway




