amazon-ec2 - 使用 terraform 在 ec2 中部署 .sh 文件
问题描述
我正在尝试使用 terraform 将位于我的本地主机中的 *.sh 文件部署到 ec2。请注意,我通过 terraform 创建的所有基础设施。因此,对于将文件复制到远程主机,我正在使用 terraform 配置程序。问题是,我怎么能找出 ubuntu 用户的 private_key 或密码以进行部署。或者也许有人知道不同的解决方案。在 ec2 中运行 .sh 文件的目标。在此先感谢)
解决方案
如果您想使用配置器来执行此操作,并且您拥有本地执行 Terraform 的私钥,那么 SCSI-9 的解决方案应该可以正常工作。
但是,如果您不能确保私钥可用,那么您始终可以执行类似 Elastic Beanstalk 如何部署和使用 S3 作为中介的操作。
像这样的东西。
resource "aws_s3_bucket_object" "script" {
bucket = module.s3_bucket.bucket_name
key = regex("([^/]+$)", var.script_file)[0]
source = var.script_file
etag = filemd5(var.script_file)
}
resource "aws_instance" "this" {
depends_on = [aws_s3_bucket_object.script]
user_data = templatefile("${path.module}/.scripts/userdata.sh" {
s3_bucket = module.s3_bucket.bucket_name
object_key = aws_s3_bucket_object.script.id
}
...
}
然后在你的用户数据脚本中的某个地方,你可以从 s3 获取对象。
aws s3 cp s3://${s3_bucket}/${object_key} /some/path
当然,您还必须确保实例具有从 s3 存储桶读取的权限,您可以通过使用适当的策略将角色附加到 EC2 实例来做到这一点。
推荐阅读
- cassandra - 如何从现有的 Cassandra DDL 创建 Apache Ignite 的持久性设置?
- javascript - Vuetify - 如何自定义选项的样式
? - next.js - 是否可以将 SSR/SSG 和 CSR 与 Next.js 混合使用?
- c# - 如何检查DataSet中的表是否存在
- c++ - 如何将 std::vector 转换为 std::span?
- oracle - 更高级的 PL/SQL 查询结果对比
- sql - 具有多个表的计数的 SQL 视图
- java - Java - 正则表达式匹配器:如何显示所有结果并防止丢失信息
- python - 删除重复的字母,缩写除外
- python - 使用 jquery POST 数据解决 Flask 中不明确的 ValueError: