【发布时间】:2021-02-17 18:13:06
【问题描述】:
当我尝试执行任何操作时出现此错误:
Error locking state: Error acquiring the state lock: state blob is already locked
如何列出当前持有锁的人以及获得锁的时间?
【问题讨论】:
标签: terraform terraform-provider-azure
当我尝试执行任何操作时出现此错误:
Error locking state: Error acquiring the state lock: state blob is already locked
如何列出当前持有锁的人以及获得锁的时间?
【问题讨论】:
标签: terraform terraform-provider-azure
解决此问题的最简单方法是:
(1) 导航到存储帐户,
(2) 然后转到 Azure 门户中保存状态文件的容器。
(3) blob 将在租用状态列下显示为“Leased”。
(4) 选择状态文件,然后点击“中断租约”按钮。
*仅供参考:您需要 PIM(特权身份管理 (PIM))来执行此操作。
【讨论】:
取决于用于状态锁定的机制。
您可以在配置中看到这一点(例如在 terraform.tf 中,当用作文件名时..)
terraform {
required_version = "0.13.4"
backend "s3" {
bucket = "my.state.bucket.for.terraform"
key = "infra/my.tfstate"
region = "eu-central-1"
encrypt = true
dynamodb_table = "my.locking.table.in.dynamo"
}
}
如果使用 dynamobdb(在 aws 上),只需检查表。对 PostgreSQL 或其他什么都一样。
要修复它,您可以从客户端释放状态:
terraform force-unlock <ID_OF_LOCK_SHOWN_IN_ERROR>
【讨论】: