创建已经存在的资源时,terraform apply失败

时间:2019-03-28 13:54:30

标签: terraform openstack openstack-keystone terraform-provider-openstack

我正在使用openstack作为云提供程序来开发Terraform。我有一个 deploy.tf 脚本来创建角色:

resource "openstack_identity_role_v3" "role_example" {
  name = "creator"
}

我对terraform如何创建资源的发现:

  • 如果该角色在openstack中不存在,terraform将使用 没问题。
  • 如果角色存在于openstack中,并且使用 相同的Terraform脚本,即terraform.state有一个条目, terraform返回没有错误。

我的问题是:如果我删除状态文件,或者手动或通过其他一些Terraform脚本创建了角色,则会出现以下错误:

* openstack_identity_role_v3.role_example: Error creating OpenStack role: Expected HTTP response code [201] when accessing [POST https://<example-openstack-url>/v3/roles], but got 409 instead
{"error": {"message": "Conflict occurred attempting to store role - Duplicate Entry", "code": 409, "title": "Conflict"}}

我正在尝试找到一种解决方法,以便在不存在角色的情况下terraform apply创建它,并且在已经存在的情况下,尽管已经通过手动或任何其他terraform部署脚本创建了该角色,但terraform会跳过其创建并没有错误。

0 个答案:

没有答案