繁体   English   中英

尝试协调/刷新地形基础设施漂移

Trying to Reconcile/refresh terraform infrastructure drift

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个使用以下模块创建的 Terraform GCE 资源:

resource "google_compute_address" "gke_proxy1" {
  ...
}

resource "google_compute_disk" "gke_proxy1" {
  ...
}

resource "google_compute_instance" "gke_proxy1" {
  ...
}

但是,在某些时候,在 Terraform 脚本之外,已经为特定 GCE 创建了 google_compute_address,因此当我尝试应用 TF 脚本时,它会尝试创建不是我想要的计算地址。 例如使用:

terraform plan -var "env=dev" -target module.gke-proxy-primary;

如果我运行以下命令来显示真实世界的状态:

 terraform state show module.gke-proxy-primary.google_compute_instance.gke_proxy1

输出按预期显示预期的计算地址状态地址:

network_interface {                                                                                                                                                             
     name               = "nic0"                                                                                                                                                 
     ...                                                                                                             
 }                                                                                                                                                                               
 network_interface {                                                                                                                                                             
     name               = "nic1"                                                                                                                                                 
     ...                                                                                                             
 }            

                                                                                                                                                               

所以我想我需要从现实世界的基础设施重建 TF 状态,所以我尝试了以下方法,因为状态和现实世界之间存在偏差:运行:

terraform refresh -var "env=dev" -target module.gke-proxy-primary;

给我:

module.gke-proxy-primary.google_compute_disk.gke_proxy1: Refreshing state... [id=projects/proj1/zones/europe-west2-a/disks/gke-proxy1]
module.gke-proxy-primary.google_compute_instance.gke_proxy1: Refreshing state... [id=projects/proj1/zones/europe-west2-a/instances/gke-proxy1]

因此,它不会按照现实世界的预期刷新资源的 compute_address.gke_proxy1 远程存储桶状态。 任何想法我做错了什么?

1 个回复
  1. 使用以下命令导入缺少的依赖计算地址以声明主资源 gce:

    terraform import -var "env=dev" -var "primary_cluster_suffix=1" module.gke-proxy-primary.google_compute_address.gke_proxy1 hsbc-10723777-safe-dev/europe-west2/gke-proxy1

  2. 然后验证资源是否处于本地状态:

    terraform state show module.gke-proxy-primary.google_compute_address.gke_proxy1 它现在应该显示。

  3. 运行计划,它应该按预期进行协调。

2 Terraform:自动备份基础设施

在我的公司,我们有 Datadog 仪表板和监视器,我们经常对其进行更改,因此我们希望进行一些版本控制。 经过讨论,我们决定 Terraform 是解决此问题的方法。 我已经成功地使用 Google 的Terraformer (将基础设施作为资源导入)和 Terraform 的 CLI 命令来手动备 ...

3 破坏特定的地形基础设施

我使用工作区、本地人和 -backend-config 为不同的环境(测试/生产)创建了基础设施,因此只有两个不同的文件,其他文件对于这两种环境都是通用的。 不幸的是,我没有找到以相同方式销毁特定环境的方法(无需为每个环境创建大量特定文件)。 我错过了什么吗? 有没有办法做到这一点? 任何帮助 ...

4 使用Terraform重复基础架构创建

我正在探索Terraform作为管理可重用的AWS EC2实例组的工具。 我对基础结构工具并不十分熟悉,并且在此用例中寻求有关操作的建议。 我想重复创建多个EC2实例-说我第一次调用terraform apply我的基础架构需要3个实例。 一段时间后,我想创建100个实例-也许不破 ...

5 Terraform尝试刷新不存在的状态

我最近想彻底摧毁我的基础设施。 目前,Terraform无法为该过程提供足够的功能,因此我做了以下步骤: 运行terraform destroy 销毁资源不会破坏 删除状态 命令: terraform state list返回我: 此时一切都很好,但是问题是我想应用我的Terraf ...

7 Terraform 持久和动态基础设施部分?

我想将我的基础设施分为两部分: 持久性(防火墙、块存储等) 动态(这将消耗 #1 中的持久资源) 我想确保永久部分永远不会被删除,同时,动态基础设施部分会有一个选项terraform destroy 。 ...

8 使用Terraform迁移现有基础架构和扩展

我们计划在DC中自动创建和删除VM,为我们的云服务提供支持。 该服务使每个新客户都获得专用虚拟机(至少3个) - 因此虚拟机数量不断增长。 我们已经在ESXi上运行了大约2000个VM。 所以我们现在在采用terraform之前要解决两个问题 - 我们如何迁移由Terrafor ...

9 在vSphere上使用Packer和Terraform自动化基础架构

借助packer,我可以编写一个模板linux box的脚本,并作为vmware box上传到我的vSphere Cloud实例。 我希望将其上传或转换为vSphere模板,以便随后可以在该模板上运行terraform来自动创建多个基于Linux的VM。 我怎样才能做到这一点? 我目前需要 ...

10 试图调和椭圆曲线误差

我正在尝试执行以下操作: 我有一个使用ECC生成标准Rijndael密钥( 不是 AES ...)的软件,有一个区别:AES仅支持128、192和256位的密钥大小,而Rijndael最初支持160和224位。当我查看该软件时,这首先让我感到困惑。)我已经能够确定它可以进行以下操作: ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM