Peter Hoffmann:使用只读代理和 pyinfra... 笔记

Peter Hoffmann:使用只读代理和 pyinfra 进行家庭服务器运维

一台最初由人工管理的家庭服务器,通过编码代理和声明式配置进行了改造。该代理仅拥有只读权限,防止直接修改服务器。所有变更现已以 pyinfra 部署的形式编码并存储于 Git 仓库中。代理会探索服务器,为期望的状态变更编写 Python 代码,并呈现这些变更以供审查。关键的是,sudo 密码充当守门人,任何实际部署都需要用户干预。仓库结构包含代理规则、服务器状态清单、pyinfra 部署和配置文件。代理的任务包括阅读文档、定位配置以及编写 systemd 单元文件。用户审查预演(dry run)后,再执行代码进行部署。该工作流可处理系统升级、服务迁移以及自定义应用的部署。错误会被学习并纳入代理规则,用于未来的会话。虽然此方法对个人数据有效,但只读权限在处理存储敏感第三方信息的机器时需慎重考虑。
CdXz5zHNQW_zasqR31jDU.png