我正在尝试使用重新应用我的更改terraform apply
,但是当我再次执行此操作时,它会给我错误,资源已存在并停止部署。
例子:
Error: AlreadyExistsException: An alias with the name arn:aws:kms:us-east-1:490449857273:alias/continuedep-cmk-us-east-1 already exists
status code: 400, request id: 4447fd20-d33b-4c87-891e-cc5e09cc6108
on ../../../modules/kms_cmk/main.tf line 11, in resource "aws_kms_alias" "keyalias":
11: resource "aws_kms_alias" "keyalias" {
Error: Error creating DB Subnet Group: DBSubnetGroupAlreadyExists: The DB subnet group 'continuedep-sbg' already exists.
status code: 400, request id: 97d662b6-79d4-4fde-aaf7-a2f3e5a0bd9e
on ../../../modules/rds-postgres/main.tf line 2, in resource "aws_db_subnet_group" "generic_db_subnet_group":
2: resource "aws_db_subnet_group" "generic_db_subnet_group" {
Run Code Online (Sandbox Code Playgroud)
同样,我在许多其他现有资源中遇到错误。我想避免/忽略此类错误并继续我的部署。
我还可以使用什么其他方式从中间中断的地方重新启动我的 terraform 资源部署。
我的地形版本是:
Terraform v0.12.9
我有一个运行良好的 ansible 剧本,现在我必须使用 terrform 脚本调用该剧本。目前我正在使用如下所示的代码,但它会在 terraform init 期间导致错误:\nError: Unknown root level key: provisioner
我正在使用 Terraform v0.11.7,并且仅当我运行此特定代码时才会发生错误。\n我的 main.tf 仅包含此代码。我使用的目录结构如下:
\n\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 create-user.yml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 library\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 mkpassword.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 main.tf\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 outputs.tf\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 roles\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 linux_user_creation\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 tasks\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main.yml\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 variables.tf\n
Run Code Online (Sandbox Code Playgroud)\n\nmain.tf 看起来像:
\n\n provisioner "remote-exec" {\n inline = ["sudo dnf -y install python"]\n\n connection {\n type = "ssh"\n user = "ubuntu"\n private_key = "${file(var.ssh_keyname)}"\n }\n}\n\nprovisioner "remote-exec" {\n command = ["ansible-playbook -u root --private-key ${var.ssh_keyname} -i ${self.ipv4_address} create-user.yml -e \'email_id=${var.email_id}\'"]\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n我希望剧本应该从 terraform 脚本调用并应该显示结果。 …