我正在尝试使用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:仍在创建... (已过去8h0m7s) module.ecs_singapore.aws_alb.main:仍在创建... (已过去8h0m8s)
无法保存状态:无法上传状态:RequestTimeTooSkewed:请求时间与当前时间之间的差太大。 状态代码:403,请求ID:0B0026E03C66248C,主机ID:n4DuSL4lWCUY0uXCLecwNtOyszV / Pr6ucFMZYxr4TjMuPWNHz2UYtuziy5dysFpJncWdwss1XTo =
释放状态锁时出错!
错误消息:无法检索锁定信息:InvalidSignatureException:签名尚未更新:20181206T223022Z仍晚于20181206T144544Z(20181206T143044Z + 15分钟)。 状态码:400,请求ID:G5CBO6G31177HOF9IB22HKEQDBVV4KQNSO5AEMVJF66Q9ASUAAJG
Terraform在访问您的状态时获得了锁定,以防止他人 运行Terraform可能同时修改状态。一个 释放此锁定时发生错误。这可能意味着锁 是否正确释放。如果锁不能正确释放, Terraform可能无法运行将来的命令,因为它看起来像 锁被锁住了。
答案 0 :(得分:0)
我曾经遇到过这个问题,需要注意的几件事-
最重要的是,您需要在主机和容器内都保持相同的时区。如果无法更改时区,请将主机和容器时区更改为UTC本身。
您正在使用STS吗?如果是,则您将需要在时区同步/更改后再次获取/刷新令牌。
我非常确定这是一个时区问题,当主机和Docker容器上的时区发生冲突时,当我们尝试在docker容器中运行terraform二进制文件时,通常会发生此问题。
答案 1 :(得分:0)
对我来说,根本原因是ESXi主机中的时间设置不正确。错误的时间被同步到其中运行的所有VM,这导致了此问题。一旦我将其设置为正确的UTC时间,一切都会正常工作。