首页 > 解决方案 > 使用 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"

}

标签: amazon-web-servicesterraformterraform-provider-aws

解决方案


您不能像在 Ansible 中使用 terraform (TF) 那样轻松地做到这一点,因为 TF 是 IoC 基础设施管理的主要工具,而不是实例管理。基本上可以使用三个选项

  • 通过userdata创建要在实例启动时执行的脚本。该脚本将ssh_authorized_key在实例上设置。

  • 使用remote-exec配置器和文件配置器来复制和设置ssh_authorized_key实例。

  • 如果您已经有使用 Ansible 的经验,请使用Ansible 和 TF 。


推荐阅读