想把一台虚拟机从“控制台点出来”变成可重复管理的资源,可以从基础设施即代码管理计算资源的入门流程开始:先梳理手动配置的现状,再挑选一个低风险资源用配置文件描述,最后经过预览和验证后再应用。关键不是一开始就自动化所有操作,而是让每一步可检查、可复现、可回退。
先判断:手动配置还是代码管理
手动配置适合临时验证、一次性实验、故障排查,以及尚未明确规格的资源。它上手快,也便于在控制台观察选项;但资源数量增加后,设置容易遗漏,重复创建也可能产生差异。
基础设施即代码适合需要重复创建、多人协作、跨环境保持一致,或需要审查变更记录的场景。以云端虚拟机为例,可把区域、镜像、规格、系统盘、标签和访问权限等作为配置管理。代价是需要学习工具、维护状态,并在执行前理解计划变更。两种方式可以并用:临时排障时手动操作,稳定后的长期资源再纳入代码管理。
从一台计算资源开始
选择工具与边界
Terraform 和 OpenTofu 使用声明式配置描述目标状态,可借助对应云平台的 provider 管理资源;Pulumi 则允许用通用编程语言描述基础设施。Ansible 更常用于操作系统配置和软件部署,也能管理部分云资源,但其任务编排方式与前述工具的资源状态管理并不完全相同。初学时选一种主要工具即可,先不要让多个工具同时修改同一台虚拟机。
基础设施即代码管理计算资源的入门流程,宜从独立的测试资源开始。先确认账号权限、区域、镜像和资源命名规则;再决定哪些参数需要固定、哪些由环境提供。避免把密码、令牌或私钥直接写入配置文件,凭据应通过工具支持的安全凭据机制提供。
按顺序完成首次管理
- 盘点目标:记录现有资源的用途、规格、磁盘、标签和依赖关系。若资源已由控制台创建,先确认所选工具是否支持导入,再检查导入后的配置与实际状态是否一致。
- 建立版本记录:在 Git 仓库中保存配置,区分环境参数,并限制敏感信息进入提交历史。配置与凭据分开管理。
- 描述资源:从一台非关键虚拟机开始,只纳入必要属性。镜像版本、机器规格等应结合工作负载和平台可用性选择,不照搬示例值。
- 预览再执行:运行工具提供的格式检查、校验和变更计划,核对将新增、修改或删除的对象。计划中若出现非预期替换或删除,先停止并查明原因。
- 验证结果:应用后到云平台检查资源状态、标签、磁盘和权限;再确认应用或服务能正常运行,并保留配置版本与变更记录。
- 练习回退:测试环境中验证更新和销毁流程。销毁前确认数据是否需要保留,生产环境则应先明确审批、备份和恢复办法。
状态与漂移不能忽略
资源管理工具通常维护状态记录,用来对应配置中的对象与实际资源。团队协作时,应按工具和存储方案保护状态文件,控制读取权限,并避免多人同时对同一状态执行变更。状态文件可能包含敏感属性,因此不能未经评估就公开提交到代码仓库。
如果有人绕过配置直接在控制台修改资源,代码与实际环境就会产生漂移。定期生成计划并审阅差异,能帮助发现这类变化;但不要看到差异就盲目覆盖,先确认手动变更的原因,再决定更新配置、导入变更还是恢复原状。
常见问题
已经手动创建的虚拟机必须重建吗?
不一定。可先检查工具是否支持导入,再核对配置和实际属性;导入过程及支持范围取决于工具和资源类型。不要未经验证就直接应用配置。
第一次就要管理整套环境吗?
不需要。从测试用的一台虚拟机或一组非关键资源开始,熟悉计划、状态和删除保护后,再扩大管理范围。
控制台和配置文件能同时改资源吗?
可以,但要约定谁是主要管理入口。并行修改会增加漂移和误覆盖风险;紧急手动操作后,应尽快复核并同步更新配置。
入门时最重要的检查是什么?
执行前读完变更计划,尤其关注删除、替换和权限调整;执行后核对真实资源。把这些检查纳入基础设施即代码管理计算资源的入门流程,通常比追求一次性覆盖所有自动化功能更稳妥。