我希望在完全自动化的情况下使用ansible,无法手动输入密码。为了解决这个问题,我使用SSH公钥连接服务器,并在我的sudoers配置中列出了几个命令,例如
然而,如果在playbook中设置
以下是一些问题:
apt-get install *
,所以我不需要密码来运行它们。例如sudo apt-get install git
。然而,如果在playbook中设置
become
为True
,ansible会询问我不需要的密码。以下是一些问题:
- 如何告诉ansible以sudo身份运行命令,而不要求输入密码?
- 您是否知道另一种在不需要密码的情况下安装apt软件包的方法?
- 我应该使用其他的become方法吗?
sudoers配置文件
myuser ALL = NOPASSWD: /usr/bin/apt-get install *
ansible
- name: install the latest version of ntpdate
package:
name: ntpdate
state: latest
become: True
生成以下内容:
failed: [x.x.x.x] (item=ntpdate) => {"failed": true, "item": "python3-dev", "module_stderr": "", "module_stdout": "sudo: a password is required\r\n", "msg": "MODULE FAILURE", "rc": 1}
sudoers
文件中所做的,但是ansible仍然要求我输入密码。 - azmeuk