【问题标题】:Terraform apply failed due to mismatch time由于时间不匹配,Terraform 应用失败
【发布时间】:2019-05-13 09:43:31
【问题描述】:

我正在尝试使用 gitlab-ci 从我的 CI 管道中应用我的基础设施更改和 terraform 的 docker 映像。但是,我收到了一些与时间相关的错误。我有点怀疑某种时间在某处漂移?

我已尝试设置时区并安装 NTP 并同步时区。我确认时间和 TZ 已从默认 UTC 更改为我的本地时区 GMT+8。但是,错误仍然发生。

注意到经过的时间从 20 秒变为 8 小时,所以内部时钟似乎有问题?

如果这是一个 terraform 问题或 docker 问题或两者兼而有之,我有点困惑?任何帮助将不胜感激。谢谢。

module.ecs_singapore.network.aws_nat_gateway.main:仍在创建... (已过去 20 秒) module.ecs_singapore.aws_alb.main:仍在创建... (已过去 20 秒)

module.ecs_singapore.network.aws_nat_gateway.main:仍在创建... (已过去 8 小时 7 秒) module.ecs_singapore.aws_alb.main: 仍在创建... (8h0m8s elapsed)

保存失败状态:上传失败状态:RequestTimeTooSkewed:请求时间与当前时间相差过大。 状态码:403,请求ID:0B0026E03C66248C,主机ID:n4DuSL4lWCUY0uXCLecwNtOyszV/Pr6ucFMZYxr4TjMuPWNHz2UYtuziy5dysFpJncWdwss1XTo=

释放状态锁时出错!

错误消息:无法检索锁定信息:InvalidSignatureException:签名尚未生效:20181206T223022Z 仍晚于 20181206T144544Z(20181206T143044Z + 15 分钟) 状态码:400,请求ID:G5CBO6G31177HOF9IB22HKEQDBVV4KQNSO5AEMVJF66Q9ASUAAJG

Terraform 在访问您的状态时获取锁以防止其他人 运行 Terraform 以同时修改状态。一个 释放此锁时发生错误。这可能意味着锁 是否正确释放。如果锁没有正确释放, Terraform 可能无法运行未来的命令,因为它看起来好像 锁被持有。

【问题讨论】:

    标签: docker terraform


    【解决方案1】:

    我曾经遇到过这个问题,需要注意的几件事可以提供帮助 -

    1. 最重要的是,您需要在主机上和容器内保持相同的时区。如果更改时区不起作用,请将主机和容器时区更改为 UTC 本身。

    2. 您使用的是 STS 吗?如果是,您需要在时区同步/更改后再次获取/刷新令牌。

    我很确定这是一个时区问题,通常在我们尝试在 docker 容器内运行 terraform 二进制文件时发生,以防您的主机和 docker 容器发生时区冲突。

    【讨论】:

    • 谢谢,我会试一试。什么是 STS?
    • 安全令牌服务,以防您担任角色并获得到期的会话令牌。
    • 好的。我没有使用 STS。我将更多地修改时区设置。希望问题能尽快得到解决。
    • 我有这个问题流浪,当我的labtop什么时候睡觉时它不会计算时间,而且它经常不同步。 AWS CLI/SDK 是要求您在计算机上有适当的时间进行身份验证的工具。
    【解决方案2】:

    我的根本原因是我的 ESXi 主机中的时间设置不正确。错误的时间正在同步到其中运行的所有虚拟机,这导致了这个问题。一旦我将其设置回正确的 UTC 时间,一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-07
      • 2014-01-25
      • 2021-03-31
      • 1970-01-01
      相关资源
      最近更新 更多