我正在尝试在具有 sudo 的一组服务器上从 cron 运行 Ansible playbook(因此无法进行交互)。互联网上的多个教程和帖子建议以纯文本形式设置 sudo 密码,或设置 Ansible-Vault(这也需要在某处以纯文本形式设置 ansible-valt 密码文件,因此不行)。有些人建议将 sudoers 文件上的 NOPASSWD 设置为运行 sudo 命令的用户,但我也无法做到这一点。所有这些解决方案都存在安全问题。
所以我想知道是否有办法解决这个问题?也许可以用 Ansible 可以解密和读取的方式加密纯文本密码?
提前致谢!
答案1
如果密码是哈希格式,Ansible 会接受。我使用 python 创建了一个哈希密码
python -c 'import crypt; print crypt.crypt("password", "$6$random_salt")'
python3 -c 'import crypt; print(crypt.crypt("password", crypt.mksalt(crypt.METHOD_SHA512)))'
更换密码使用您的密码,然后您可以将上述命令的输出粘贴到您的 Ansible 任务中。
- name: name
become: true
task:
password: hashed password