Terraform 条件配置

2024-04-15

我对 Terraform 配置有疑问。当我第一次运行 terraform 时,我使用在 AWS 控制台中生成的 SSH 密钥。该密钥正在添加到ubuntu用户(Ubuntu 16.04 AMI)。然后我跑remote-exec配置:

provisioner "remote-exec" {
  inline = [
  "sudo apt -y update && sudo apt install -y python"
  ]
  connection {
    user = "ubuntu"
    private_key = "${file("${var.aws_default_key_name}.pem")}"
  }
}

我需要安装 python,以便稍后可以使用 Ansible。这是我唯一需要此密钥的地方,再也不会了,因为我用我的私钥创建了自己的用户。但是,当我稍后尝试运行 terraform 时,它会搜索文件file("${var.aws_default_key_name}.pem"。 现在我有一个问题如何在后续运行中跳过此配置?

我不想将 SSH 密钥存储在存储库中。

我可以创建一个空文件来“欺骗”terraform,但我不喜欢这个解决方案。

还有更好的想法吗?


而不是在中进行配置aws_instance块,将其移出到null_resource https://www.terraform.io/docs/provisioners/null_resource.html阻止,并使用适当的触发器。

resource "aws_instance" "cluster" {
  count = 3

  # ...
}

resource "null_resource" "cluster" {
  # Changes to any instance of the cluster requires re-provisioning
  triggers {
    cluster_instance_ids = "${join(",", aws_instance.cluster.*.id)}"
  }

  connection {
    host = "${element(aws_instance.cluster.*.public_ip, 0)}"
  }

  provisioner "remote-exec" {
    inline = [something]
  }
}

如果您的触发器不更改,则后续运行时不会触发 null_resource 配置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Terraform 条件配置 的相关文章

  • AWS lambda 到 firehose 的转换:Python

    我想使用 lambda 函数转换 AWS kinesis 流数据 然后使用 AWS firehose 传送到 S3 然而 我总是遇到这样的问题 errorCode Lambda FunctionError errorMessage Lamb
  • Aws Athena - 重命名列名称

    我正在尝试更改 AWS Athena 表中的列名称 从old name to new name 普通的DDL命令不会影响表 它们无法执行 是否可以更改列名而不从头开始删除并重新创建表 我错了 雅典娜使用HIVE DDL语法所以正确的命令是
  • 我可以限制仅从特定子域访问 S3 吗?

    我有几个子域将有自己的 S3 存储桶 有没有办法将 S3 存储桶设置为仅允许来自特定子域的 GET 请求 Use an aws Referer健康 状况 从限制对特定 HTTP Referrer 的访问 https docs aws ama
  • 有条件地删除 Redshift 中的临时表

    我们正在使用http aws amazon com redshift http aws amazon com redshift 我正在报告中创建 删除临时表 有时我们会遇到有人创建了临时表但无法删除它的情况 在其他数据库中 例如 Redsh
  • 哪个 AWS Simple Email Service API 是最新的

    我正在使用 AWS SES 构建一个应用程序 但我不清楚应该针对哪个版本的 API 进行开发 AWSSDK SimpleEmail https www nuget org packages AWSSDK SimpleEmail AWSSDK
  • AWS Application Load Balancer 将所有标头转换为小写

    我有一个 REST API 应用程序在两个 EC2 实例中运行 并且长期使用 AWS Classic Load Balancer REST API 的客户端依赖于响应标头 例如Location 我知道 HTTP 标头根据定义是不区分大小写的
  • NodeJS 与 DynamoDB 抛出错误“AttributeValue 可能不包含空字符串”

    我遇到了一个问题 因为 DynamoDB 无法接受空字符串作为属性中的值 我总是必须在前端检查是否存在空字符串值 否则 API 调用将由于 Dynamo DB 抛出的错误 An AttributeValue 可能不包含空字符串 而失败 我想
  • 无法理解如何使用 Android AWS SDK

    我正在构建一个将使用 Amazon 的 SimpleDB 服务的应用程序 它使用亚马逊的AWS 安卓 SDK http aws amazon com sdkforandroid 据我了解 不建议我将 Amazon 凭证 访问 ID 和密钥
  • 如何在部署应用程序 Elastic beanstalk 上修改 NGINX 配置

    我需要向 nginx conf 添加一些位置 以便环境 URL 指向 app php 我已经使用 vi 修改了该文件 重启 NGINX 就可以了 但我需要在使用时自动加载此配置电子部署 我已阅读并尝试过 https docs aws ama
  • Amazon DynamoDB 吞吐量如何计算和限制?

    是每秒平均吗 每分钟 每小时 例如 如果我支付 10 个 读取单元 允许每秒 10 次高度一致的读取 那么如果我尝试在一秒钟内执行 20 次读取 即使这是仅发生的 20 次读取 我是否会受到限制 最后一个小时 在我能找到的任何地方 亚马逊文
  • AWS Fargate - 卷

    我的 docker compose 文件有问题 这是我的 docker 撰写文件 version 3 services nginx proxy image xxxxx dkr ecr xxxxx amazonaws com xxxx lat
  • 如何在没有终端节点令牌的情况下确认 Amazon SNS 的订阅?

    在我的 JAVA 应用程序中 我使用 Amazon SNS 向客户发送电子邮件 一旦我将一位客户 电子邮件 ID 订阅到我的 SNS 主题 它要求客户确认订阅以接收电子邮件 有什么方法可以在您的应用程序本身中确认订阅 无需客户的帮助 不 这
  • Django 尝试使用错误的数据库用户

    已解决 我使用的是 USERNAME 而不是之前尝试使用 Postgres 驱动程序时使用的 USER 我正在尝试将我的 django 项目连接到 RDS MySQL 数据库 我可以在 MySQL Workbench 和 mysql 命令行
  • 自动提取S3中的.gz文件

    我正在尝试找到一种解决方案 以便在 ALB 日志文件自动从 ALB 上传到 S3 时提取 gz 格式的 ALB 日志文件 我的桶结构是这样的 log bucket alb 1 AWSLogs account number elasticlo
  • AWS CLI 创建 Lambda 函数无法解压缩上传的文件

    我正在尝试使用 AWS CLI 创建 AWS Lambda 函数 所以我生成了 JSON 输入框架以供使用aws lambda create function函数通过传入 generate cli skeleton参数 然后相应地替换值 问
  • 自动缩放时如何更改新实例标签名称

    我在我的设备上创建了一个新闹钟AWS基于我也创建的指标的帐户 我用这个警报来自动缩放 当启动我正在使用的新实例时User Data字段来设置这个新实例 我面临的唯一问题是我无法修改标签 特别是标签Name 这个新实例 如果我不更改它 所有新
  • 错误“未初始化常量 AWS (NameError)”

    它说 AWS 未初始化 我正在使用 aws sdk core gem 我尝试使用 aws sdk gem 代替 问题仍然存在 这是initializers aws rb 文件 AWS config access key id gt ENV
  • Terraform:如何附加服务器计数并将服务器分配给多个可用区?

    main tf resource aws instance service ami lookup var aws winamis var awsregion count var count key name var key name ins
  • 使用 python 写入 aws lambda 中的 /tmp 目录

    Goal 我正在尝试将 zip 文件写入 python aws lambda 中的 tmp 文件夹 因此我可以在压缩之前提取操作 并将其放入 s3 存储桶中 Problem 操作系统 Errno30 只读文件系统 这段代码在我的计算机上进行
  • 为什么从浏览器上传到 S3 时出现 403 错误?

    因此 我尝试查看此处之前的答案 但似乎没有任何效果 我正在使用 Dropzone 它似乎发出 OPTIONS 请求来获取所有允许的 CORS 相关信息 但它似乎没有正确返回 因此 通过查看 Chrome 开发工具 我有以下请求标头 Host

随机推荐

  • RSpec 和 ActiveModel

    我有一个模块 它包含 activemodel 我想使用 rspec 测试它 这是我到目前为止的设置 lib my module base rb my module rb spec my module spec rb spec helper
  • 从链接到 Oracle 的 SQL Server 编写 SQL 查询时如何指定日期文字?

    我有一个链接到 Oracle 12 1 数据库的 SQL Server 12 0 数据库 我想在 SQL Server 数据库中创建一个视图 该视图返回按日期筛选的 Oracle 表中的数据 Oracle 表在日期列上有一个索引 成功运行的
  • jQuery Uncaught TypeError:无法读取未定义的属性“fn”(匿名函数)

    全部 我下载的一些代码出现错误 这是代码 wl Alert v 1 1 description Handles alert boxes dependency jquery UI Slider fadeOutSlide plugin fn w
  • Java - 如何使用类文件?

    我是 Java 新手 想知道如何将类文件导入 netbeans 并使用它 我知道类文件是机器可读的字节代码 但我不关心幕后发生了什么 我只想将其导入到我当前的项目中并让它识别它 以便我可以使用该类 此外 类文件嵌入在 JAR 文件中 我将
  • 右对齐文本?

    我试图举一个例子来试验不同的对齐方式作为演示 左对齐 居中 右对齐 对齐和中左对齐文本都很容易 如我的演示所示 你可以看这个例子here http jsbin com avuzuf 1 edit在 JSBin 上 如何获得右对齐的文本而不弄
  • 在骨干模型上声明变量而不设置默认值

    我刚刚开始使用backbone js 我正在寻找一种在模型上声明字段而无需提供默认值的方法 它实际上仅供参考 以便当我开始创建实例时 我可以看到需要初始化哪些字段 用java之类的东西我会写 public class CartLine St
  • Doctrine OneToMany 关系错误

    我试图通过 Symfony2 2 3 0 使用 Doctrine 2 2 3 在数据库中的对象上建立一些 ManyToOne OneToMany 关系 但出现了一个奇怪的错误 以下是对象的相关部分 一种产品的许多属性 Product ORM
  • mongoengine - 忽略架构验证的额外字段

    我正在尝试查询我的数据库 目前 某些记录具有未包含在我的模型架构中的额外字段 由于错误 但我想处理这些情况 当我尝试查询数据库并将记录转换为模式时 出现以下错误 FieldDoesNotExist The field X does not
  • 从旧的 Git 提交中删除私有信息

    我有一个使用 Git 进行版本控制的项目 我想将其开源 但其中包含一些特定于其最初使用环境的私人信息 我将更改相关信息以从未包含在存储库中的配置文件加载 我意识到我应该首先这样做 但由于私人信息仍然存在于之前的提交中 我该如何将其从我的历史
  • 如何使用服务更改作用域变量?

    我有一个应用程序 应用程序内部有一个注册和登录表单 通过注册表单 当用户创建帐户时 他们会自动登录 通过登录表单 用户也可以登录 显然 我有两个控制器 一个用于注册表单 一个用于登录表单 我希望他们能够共享一个服务 logIn 因为两种形式
  • 基于 Spring Boot AMQP 的 JmsListener 在 TextMessage 上失败

    我有一个 Spring Boot 应用程序 在检索类型的 JMS 消息时遇到问题TextMessage来自 ActiveMQ 代理 如果消费者尝试从代理检索消息 它无法自动将消息转换为 TextMessage 而是将其视为 ByteMess
  • 如何从 json 字符串获取对象列表 c# Newtonsoft.json

    我正在尝试将 JSON 字符串转换为对象列表 但收到错误 无法将当前 JSON 对象反序列化为 List 类型 因为该类型需要 JSON 数组才能正确反序列化 我检索 json 它看起来像这样 Code 0 Message OK Data
  • Internet Explorer 开发人员工具如何保留导航日志?

    我正在寻找在 Internet Explorer 开发人员控制台中记录内容以保留页面刷新的方法 在 Google Chrome 和 Firefox 的 Firebug 下 这是一个选项 但我在 IE 下找不到它 我用的是IE 9 在 IE
  • 防止运行测试时优化掉未使用的静态函数

    我正在编写一个将利用 LLVM 的库 通过inkwell https github com TheDan64 inkwell 来 JIT 编译一些函数 这些函数需要能够回调我的代码中的一些 Rust 函数 我让它工作 但我的单元测试不起作用
  • 使用一个 AJAX 响应更新两个 div

    全部 我正在使用 jQuery AJAX 调用一个文件来基本上保存某人是否喜欢某首歌 我正在尝试做类似以下的事情 var html ajax type POST url save song php data song id song id
  • R:在数据框中插入多行(可变数量)

    我有一个数据框 例如 5 行 用于 2 个可观察值 我需要在数据框中插入 虚拟 或 零 行 以便每个可观察的行数相同 并且可以大于 N 行 以获得更长的行数 例如 This is what I have x c a a b b b y c
  • 比较 2 个单独的 csv 文件并将差异写入新的 csv 文件 - Python 2.7

    我正在尝试比较 python 中的两个 csv 文件 并将差异保存到 python 2 7 中的第三个 csv 文件中 import csv f1 open olddata file1 csv oldFile1 csv reader f1
  • JPanel 未显示

    为什么 UI 没有显示在我的下面的代码中 public class GUI extends JPanel public GUI String name String address List
  • php中包含bootstrap和js

    我需要一双新的眼睛来看待这个 我直接从我的一把老小提琴中获取代码https jsfiddle net RachGal fs9u6mwe 1 https jsfiddle net RachGal fs9u6mwe 1 在大学厨房网站上显示照片
  • Terraform 条件配置

    我对 Terraform 配置有疑问 当我第一次运行 terraform 时 我使用在 AWS 控制台中生成的 SSH 密钥 该密钥正在添加到ubuntu用户 Ubuntu 16 04 AMI 然后我跑remote exec配置 provi