首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在地形上的另一个进程不能解除局部状态的锁定。

在地形上的另一个进程不能解除局部状态的锁定。
EN

Stack Overflow用户
提问于 2022-04-20 13:47:53
回答 3查看 5.7K关注 0票数 4

我的terraform远程状态和锁在aws帐户下的s3和dynamodb上配置,在gitlab runner上一些计划任务已经崩溃,在下一个执行计划中会弹出以下错误:

代码语言:javascript
运行
复制
Error: Error locking state: Error acquiring the state lock: ConditionalCheckFailedException:
The conditional request failed

Lock Info:
  ID:        <some-hash>
  Path:      remote-terrform-states/app/terraform.tfstate
  Operation: OperationTypePlan
  Who:       root@runner-abc-project-123-concurrent-0
  Version:   0.14.10
  Created:   2022-01-01 00:00:00 +0000 UTC
  Info:  some really nice info

当试图解锁这个储物柜以便再次执行额外的执行计划时-我得到以下错误:

代码语言:javascript
运行
复制
  terraform force-unlock <some-hash-abc-123>

  #output:
  Local state cannot be unlocked by another process

我们怎样才能释放这个地形储物柜?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-04-20 13:47:53

根据terraform命令的引用:force-unlock

手动解除定义配置的状态。

这不会修改您的基础结构。此命令移除当前配置的状态锁。此锁的行为取决于所使用的后端。本地状态文件不能由另一个进程解锁。

解释:显然,执行计划正在本地处理计划输出文件,并应用于terraform步骤的第二阶段,如以下示例所示:

第一阶段:terraform plan -out execution-plan.out

第二阶段:terraform apply -input=false execution-plan.out

确保文件名在第1和第2阶段是相同的

但是,如果第1阶段被终止或意外崩溃,储物柜将被分配到本地状态文件,因此必须被删除在dynamodb本身,而不是使用terraform强制解锁命令。

解决方案:在dynamodb表中找到这个特定项,并显式地删除锁定项,您可以使用aws或通过完成。例如,

代码语言:javascript
运行
复制
aws dynamodb delete-item \
    --table-name terraform-locker-bucket \
    --key file://key.json

Key.json的内容:

代码语言:javascript
运行
复制
{
 "LockID": "remote-terrform-states/app/terraform.tfstate",
 "Info": {
   "ID":"<some-hash>",
   "Operation":"OperationTypePlan",
   "Who":"root@runner-abc-project-123-concurrent-0",
   "Version":"0.14.10",
   "Created":"2022-01-01 00:00:00 +0000 UTC",
   "Info":"some really nice info"
   }
 }
票数 6
EN

Stack Overflow用户

发布于 2022-05-25 03:12:01

terraform force-unlock <lock id>

对于terragrunt,在<terragruntfile>.hcl目录中运行terragrunt force-unlock <lock id>。如果没有工作,请删除terragrunt.lock.hcl.terragrunt-cache/,然后重试。

也是

票数 1
EN

Stack Overflow用户

发布于 2022-09-19 21:08:24

如果面临这一问题,则在销毁:

添加-lock=false将有助于进一步推进

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71940888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档