我想使用chef来启用vm1和vm2之间没有密码的密钥登录 我知道手动步骤是:
然后我可以从vm1登录到vm2,没有任何密码。
现在使用厨师时,我想动态生成密钥对
然后在vm1上使用shell脚本(需要将vm2的密码传递给此shell脚本)以将公钥放在vm2上。
所以我需要将vm2的密码放在某处(可能在一个属性中),但我不想直接存储密码或使用简单加密。
有没有更安全的方法来实现这一目标?感谢。
答案 0 :(得分:0)
我会走另一条路,
将生成的公钥保存在vm1的节点数据上,然后保存在vm2上,请求vm1属性(使用搜索获取“伙伴”主机)并在allowed_hosts
文件中写入公钥(带模板)。 / p>
这样您就不必从vm1连接到vm2并发送密码,缺点是搜索可能会滞后一段时间,因此在获得所需状态之前,每台计算机可能需要运行2次。 / p>
另一种选择可能是使用chef-vault来存储vm2密码,只允许vm1读取它。
答案 1 :(得分:0)
与Chef合作的方法是提前制作相关的密钥并将它们存储在某个地方(例如,厨师保险库,虽然这不是很好的选择),然后仅使用Chef配置相关文件根据需要。使用Chef数据进行这种自主集群管理是可能的,但是做得很好很容易,更容易以自上而下的方式指定事物。