terraform - 使用 Terraform 重复创建基础架构
问题描述
我正在探索将 Terraform 作为管理可重用 AWS EC2 实例组的工具。我对基础设施工具不是很熟悉,并且正在寻找关于在这个用例中做什么的建议。
我想重复创建多个 EC2 实例——比如我第一次调用
terraform apply
我的基础设施需要 3 个实例。过了一会儿,我想创建 100 个实例——也许不会破坏我之前创建的 3 个实例。如何在 Terraform 中执行此操作?我应该这样做吗?如果我不应该使用 Terraform 来重复配置,那么有什么好的工具可以做到这一点?有哪些工具可以在创建的 Terraform 基础设施上远程执行 bash 或 Python 脚本?我知道 Terraform 有
remote-exec
,但是我需要在这些实例上运行的命令需要很长时间才能运行(3-5 小时),我宁愿没有资源处于它们仍在初始化的状态,因为我无法监控它们.
解决方案
带有预装软件的自定义 AMI 将帮助您缩短启动时间。Hashicorp 打包器https://www.packer.io/intro/是创建 AMI 的好工具。
- 使用 terraform 创建一个 ec2 实例。
- 用户数据脚本或运行 remote-exec 以运行安装所需软件包/软件的脚本。
- 从上述 ec2-instance 创建一个 AMI。
- 使用新创建的 AMI 启动所需数量的 ec2 实例。
By Ansible 还提供了非常好的功能来管理基础设施即代码。
推荐阅读
- c++ - 将向量元素复制到 std::array
- swift - 使用情节提要将集合视图布局设置为组合布局
- mysql - docker-compose run 不运行依赖服务的入口点脚本
- node.js - 如何在 MacBook 上为 Socket.IO 安装节点包?
- python - 反转字符串如何使用 string[ : :-1]
- ruby-on-rails - 我应该如何向使用 Rails 构建的 Web 应用程序添加反应前端?
- sql - 每个月都在不使用联合的情况下获取数据
- c# - 从 .netcore 2.2 移动到 3.1 后无法上传文件
- java - Corda 显式升级(Java)
- javascript - Facebook 的“赞”未出现在 Google Analytics(分析)中