terraform实践
之前现场需要做云上资源的运维,然后客户需要一个可靠的运维方案,经过粗筛最终决定在terraform
和ansible
中进行抉择。
特性 | Terraform | Ansible |
---|---|---|
主要用途 | 声明式基础设施管理,资源创建和更新 | 配置管理,应用部署,自动化任务 |
语法 | HCL (HashiCorp Configuration Language) 或 JSON | YAML |
执行模型 | 中心化的声明式,资源状态管理 | 分布式的任务驱动,基于事件 |
资源管理 | 明确的资源创建、更新和删除 | 主要关注配置状态,不直接管理资源生命周期 |
多云支持 | 广泛支持,跨平台,多云友好 | 支持多种云,但更侧重于本地和私有云 |
依赖管理 | 内建依赖解析,自动排序资源应用 | 需要手动管理依赖关系 |
变更管理 | terraform plan 预先查看变更,apply 应用变更 |
通过playbook执行,没有预览变更的功能 |
执行方式 | 通过命令行工具执行,需要安装Terraform CLI | 通过playbook执行,通常通过Ansible Tower或SSH |
无代理部署 | 不需要目标主机上的代理 | 需要在目标主机上安装Agent或使用SSH |
安全性 | 支持访问控制,如Terraform Cloud | 支持加密凭据,但需要额外的管理 |
社区支持 | 活跃的社区,丰富的模块和插件 | 广泛的社区,丰富的角色和模块 |
对比下来,terraform
可以对变更进行预览,也能直接管理资源,故选择terraform
。
terraform 主要是
terraform实践
https://fatwang1.github.io/2024/05/30/2024053001/