我们有一个Jenkins触发的构建设置,它在后期构建操作中具有AWS代码部署设置。当天的第一次部署发生如下 -
Jenkins超时发生导致以下最后状态 以下是部署日志中的最后一个日志行 -
部署状态:InProgress;实例:{待定:0,InProgress:3,成功:0,失败:0,跳过:0} 超过最大轮询时间500000毫秒。 部署状态:InProgress;实例:{待定:0,InProgress:3,成功:0,失败:0,跳过:0} 部署没有成功。最终状态:InProgress
我不得不从AWS控制台手动停止部署。
我们自定义生成的日志文件显示了与执行后执行的脚本相对应的脚本。
在指定位置/opt/codedeploy-agent/deployment-root/3dfdc563-66c5-47a0-98f8-01605d25a6e9/
创建的部署ID明智目录,以下是/opt/codedeploy-agent/deployment-root/deployment-logs/codedeploy-agent-deployments.log
文件中的最后一行(这些不是致命错误,预计不会使构建挂起) -
[2017-08-10 07:10:22.484] [d-C2A5P270O] [stderr] ls:无法访问测试/ hiphop_errors.txt:没有这样的文件或 目录 [2017-08-10 07:10:27.511] [d-C2A5P270O] [stderr] cat:/ opt / codedeploy-agent / deployment-root / 3dfdc563-66c5-4 7a0-98f8-01605d25a6e9 / d-C2A5P270O / deployment-archive / tests / dummy_nginx_access_logs.txt:没有这样的文件或目录
然后我在构建服务器中执行了dos2unix
所有钩子文件(在各种部署步骤中执行的文件,即afterInstall,beforeInstall等),只是为了确定,因为我遇到过类似的问题复制粘贴Windows文件/代码之前的早期版本。在此之后,又花了两个版本,现在我看到以下内容 -
由于代码部署行为奇怪,我再次无能为力。昨天,我们发现了类似的日志文件无法生成的问题。重新安装了codedeploy代理,然后部署日志创建正常。但是,我们应该盲目地进行多少次新安装?
更新
为部署保持正在进行的情况无限期地添加/var/log/aws/codedeploy-agent/codedeploy-agent.log
文件的内容,如@EmptyArsenal的回答所指出的那样(我没有注意到日志中有任何错误) -
2017-08-21 11:13:47 INFO [codedeploy-agent(1983)]: Version file found in /opt/codedeploy-agent/.version.
2017-08-21 11:13:47 INFO [codedeploy-agent(1983)]: [Aws::CodeDeployCommand::Client 200 0.065601 0 retries] poll_host_command(host_identifier:"arn:aws:ec2:us-east-1:377703961998:instance/i-e551e37d")
2017-08-21 11:13:47 INFO [codedeploy-agent(1983)]: Version file found in /opt/codedeploy-agent/.version.
2017-08-21 11:13:47 INFO [codedeploy-agent(1983)]: [Aws::CodeDeployCommand::Client 200 0.044413 0 retries] put_host_command_acknowledgement(diagnostics:nil,host_command_identifier:"WyJjb20uYW1hem9uLmFwb2xsby5kZXBsb3ljb250cm9sLmRvbWFpbi5Ib3N0Q29tbWFuZElkZW50aWZpZXIiLHsiZGVwbG95bWVudElkIjoiQ29kZURlcGxveS91cy1lYXN0LTEvUHJvZC9hcm46YXdzOnNkczp1cy1lYXN0LTE6Mzc3NzAzOTYxOTk4OmRlcGxveW1lbnQvZC1XNDFCV0tLN08iLCJob3N0SWQiOiJhcm46YXdzOmVjMjp1cy1lYXN0LTE6Mzc3NzAzOTYxOTk4Omluc3RhbmNlL2ktZTU1MWUzN2QiLCJjb21tYW5kTmFtZSI6IkFmdGVySW5zdGFsbCIsImNvbW1hbmRQb3NpdGlvbiI6NSwiY29tbWFuZEF0dGVtcHQiOjF9XQ==")
2017-08-21 11:13:47 INFO [codedeploy-agent(1983)]: Version file found in /opt/codedeploy-agent/.version.2017-08-21 11:13:47 INFO [codedeploy-agent(1983)]: [Aws::CodeDeployCommand::Client 200 0.027061 0 retries] get_deployment_specification(deployment_execution_id:"CodeDeploy/us-east-1/Prod/arn:aws:sds:us-east-1:377703961998:deployment/d-W41BWKK7O",host_identifier:"arn:aws:ec2:us-east-1:377703961998:instance/i-e551e37d")
答案 0 :(得分:0)
在主机永远不会开始执行生命周期事件的情况下,几乎总是代理未安装,未运行或权限未正确设置的情况。您只需要安装一次代理,因此我不确定您为什么必须重新安装。也许代理人死了,它只是没有运行(虽然它应该自行重启)。
我会在/var/log/aws/codedeploy-agent/codedeploy-agent.log
查看日志。这些是代理日志,不是特定于部署的。如果代理崩溃,您应该在那里看到信息。
至于您所看到的部署特定错误,对我来说看起来像是一个脚本错误。您尝试访问的文件不存在,或者您没有适当的权限与它们进行交互。您可以在appspec中修复它。如果那些在任何地方失败,您可能希望在不运行这些命令的情况下进行部署,以验证错误确实不是致命的。