如题,目前(有点蹩脚地)使用 Ansible 管理我的 Homeserver ,跑的是 Debian Trixie 。重要的东西已经转移到 iCloud ,服务器上留着一些无关紧要的或是没有云端版的的东西,例如:
- Home Assistant + Frigate
- Seafile (偶尔传点文件资源之类)
- MC Java 服务器
现在部署的都是固定版本(具体到补丁版本,例如 1.2.3 而不是 1.2 ),然后用 DIUN 提醒新镜像发布之后手动处理。
比较纠结的就是便利/安全与稳定性的取舍。
如果选择部署各个镜像的 latest 版本:
-
优点
- 非常方便,只需定期执行 Docker pull
- 大多数已知漏洞都会在最新版修复,安全维护成本降低
-
缺点
- 没有安全问题的话,稳定性就是最大的问题,庞大的服务难免会在更新后出点小毛病(已经遇到过几次 Home Assistant 更新后出问题)
- 如果出现小问题,回滚会比较麻烦,因为找到之前的镜像版本相对更困难
如果保持现状,部署固定版本:
-
优点
- 保证稳定,绝大多数情况下不会在 Docker pull 之后出奇怪的新问题
- 回滚比较简单,保证备份的可恢复性
-
缺点
- 人工维护成本增高
- 如手动更新维护不频繁,落后的版本可能含有安全漏洞
- 有时候旧版的服务端和新版的客户端会有兼容性问题
以下几点也可以纳入考量:
- 放在以前的话,在一个小的 Homelab 环境,可能安全还是放在第二位考量。但是现在 AI 能力也逐渐提升,新的安全漏洞被发现的越来越快,这方面还是有必要上上心。
- 重要的东西已经逐步转移到 SaaS 平台,对 Homelab 的稳定性要求会相对减少,当然类似 HomeAssistant 这类全家都在用的服务依旧要求稳定运行
- 为了朋友家人使用方便,服务器的 HTTP ( S )端口目前是直接转发到公网的,Traefik 做反向代理
是逐步转向 latest 图安心,还是保持现状求稳定,亦或是以一致性为成本,依据服务的重要性单独决定?
想请教下大家是怎么解决这个问题的。
在下 v2 新人,还请多关照~
