amazon-web-services - 使用 terraform 创建实例时传递 ssh_authorized_key
问题描述
我试图在 Jenkins 管道中启动主机作为阶段的一部分。在我们使用 Ansible 主机添加之前,只需传递 ssh_username=user 和 ssh_authorized_key=jenkins-path.pub。现在使用 terraform 我正在尝试使用相同的键/路径,但我无法弄清楚。我尝试将两者都作为标签和变量。没运气
我有
module "ec2" {
source = "internal source"
instance_count = 1
ami = ""
instance_type = "t3.medium"
subnet_id = ""
ssh_authorized_key = "jenkins-path.pub"
}
解决方案
您不能像在 Ansible 中使用 terraform (TF) 那样轻松地做到这一点,因为 TF 是 IoC 基础设施管理的主要工具,而不是实例管理。基本上可以使用三个选项:
通过userdata创建要在实例启动时执行的脚本。该脚本将
ssh_authorized_key
在实例上设置。使用remote-exec配置器和文件配置器来复制和设置
ssh_authorized_key
实例。如果您已经有使用 Ansible 的经验,请使用Ansible 和 TF 。
推荐阅读
- python - 将 wx 帧绑定在一起
- python - pandas 列有 2 位数年份,并且正在转换为错误的 4 位数年份
- c++ - 是否允许在 requires 表达式中为 return-type-requirement 指定类型?
- angular - 如何修复 => FormArray。找不到带路径的控件
- android - 需要解决这个尝试在空对象引用上调用虚拟方法我使用了firebase实时
- html - 在多行上滑动错误的方向,方向:水平和slidesPerColumnFill:'row',
- python - 使用 pyexcelerate 的数据框打印索引
- r - 更改ggplot中形状的lineend
- swift - Swift:使用单元格换行符将字符串导出到 CSV
- html - 如何制作 2 列 div,每列 3 行,在另一个框内居中,两列之间有间隙