Ansible-Playbook 的加密 Sudo 密码

Ansible-Playbook 的加密 Sudo 密码

我正在尝试在具有 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

相关内容