我试图找出在 AWX/Tower/Ansible 中管理多服务器 (linux) 环境的最干净和/或最安全的方法。
我已经看过一些关于这个主题的帖子,但似乎没有一个明确的答案来说明哪种方法最安全。
假设我想针对 20 个不同的 linux 服务器使用单个模板/剧本,所有服务器都具有不同的用户和密码/sudo 密码。
我可以想到几个选项;
在每个主机上创建一个专用的“ansible”用户,AWX 服务器或本地服务器具有私钥信息。我认为这在大多数情况下都可以,但是如果尝试执行需要 root 的操作,那么 sudo 密码就会出现问题,除非“ansible”用户在每台服务器上都有相同的密码。可以设置为拥有 NOPASSWD sudo 访问权限,但这感觉不对。
保持每个主机具有不同用户和密码组合的当前情况,但可能在加密(保险库)vars 文件中指定凭据。
每个主机都有一个单独的模板,每个主机都具有该主机的正确机器凭据集。这也让人感觉有点不对劲,而且非常麻烦/难以维护。
请让我是否遗漏了一些明显的东西。
ansible
我通过拥有一个供用户登录的私钥并ansible_become_pass
在host_vars/<host>/vault.yml
.ansible
sudo
用户自然属于该组。这样,用户帐户本身就有 SSH 密钥安全性,并且每个主机都有唯一的密码,由 Ansible 在首次配置系统时生成。
此外,还可以为用户禁用密码验证
ansible
。