我目前有一个主机虚拟机设置letsencrypt为我的域生成安全证书。我在该机器上的虚拟机内运行多个服务(所有服务都使用这些证书),并希望继续对每个服务使用相同的证书。我的理想解决方案是使用主机到客户机文件夹挂载来允许对客户机进行只读(和特权)访问,以便在主机上的证书更新时自动更新这些证书;但是,我当前的虚拟化设置不支持文件夹挂载。
我当然可以设置一个 cron 作业,scp
在证书更新时为每个证书运行;但是,该解决方案要求每个虚拟机也设置一个cron
作业来复制脚本并在复制后修改文件权限,这可能不利于扩展虚拟机。此外,我希望有一个集中存放证书的位置,客户虚拟机可以从中获取证书。我唯一的另一个想法是设置一个 NFS 来保存证书,尽管我很犹豫是否要将证书放在网络服务器上。
有没有更好的方法来实现我想要设置的功能?
答案1
对于如何在一个位置同时更新多个来宾虚拟机上的文件这一常见问题,有四个明显的答案:
- 每个客户机挂载和卸载的 ISO
- 某种网络共享
- 共享虚拟磁盘
某种网络传输,即本地副本的定期更新
a. 一个合理的方法是在主机上编写一个脚本,该脚本遍历所有符合特定条件(“需要此证书”条件,可能基于客户机名称)的客户机,并使用基于证书的强化 SSH按照计划将 scp 从主机传输到每个客户机。
- 这会将原始问题中的初始扩展降级为每个客户的正常 SSH 设置,无论如何都应该编写脚本;每个客户机只需要在 authorized_keys 设置中输入主机的密钥。
在这三种情况下,您都希望主机以读写方式安装而客户机以只读方式安装。