Amazon web services Setup CodePipeline-部署步骤的状态为失败
在下面设置CodeDeploy时,在设置CodePipeline的最后一步下 如果我单击“失败”下的“详细信息” 如果我点击执行详细信息链接 部署失败,因为找不到您的实例 部署组。检查部署组设置以确保 Amazon EC2实例或自动缩放组的标记 正确标识要部署到的实例,然后重试 再说一遍 这很可能是由于地点的问题——有时在弗吉尼亚州北部使用,有时在伦敦使用Amazon web services Setup CodePipeline-部署步骤的状态为失败,amazon-web-services,deployment,aws-code-deploy,amazon-lightsail,Amazon Web Services,Deployment,Aws Code Deploy,Amazon Lightsail,在下面设置CodeDeploy时,在设置CodePipeline的最后一步下 如果我单击“失败”下的“详细信息” 如果我点击执行详细信息链接 部署失败,因为找不到您的实例 部署组。检查部署组设置以确保 Amazon EC2实例或自动缩放组的标记 正确标识要部署到的实例,然后重试 再说一遍 这很可能是由于地点的问题——有时在弗吉尼亚州北部使用,有时在伦敦使用 IAM-不需要区域选择 S3-不需要区域选择 LightSail实例-伦敦A区(eu-west-2a) CodeDeploy应用程序
- IAM-不需要区域选择
- S3-不需要区域选择
- LightSail实例-伦敦A区(eu-west-2a)
- CodeDeploy应用程序-北弗吉尼亚州(美国东部-1)
- 代码部署管道-伦敦A区(eu-west-2a)
AWSCodePipelineServiceRole-eu-west-2-CodeDeployLightsailDemoPipeline
,但这让我在创建管道时遇到了麻烦
无法创建角色
AWSCodePipelineServiceRole-eu-west-2-CodeDeploylight管道
因此,我将其更改为AWSCodePipelineServiceRole-eu-west-2-codedeploylightsaildemap
。然后,这让我陷入了另一个问题
一项叫做
AWSCodePipelineServiceRole-eu-west-2-CodeDeploylight管道
已经存在。不允许重复的名称
因此,我返回并将管道名称更改为CodeDeployLightsailDemoPi
,角色名称更改为AWSCodePipelineServiceRole-eu-west-2-CodeDeployLightsailDemoPi
这让我陷入了同样的困境
整个部署失败,因为单个实例太多
部署失败,可用的正常实例太少
部署,或部署组中的某些实例
遇到问题
我决定等待30分钟,创建一个新管道,命名为CodeDeployLightsailPipeline
和角色名AWSCodePipelineServiceRole-eu-west-2-CodeDeployLightsailPipelin
,但同样的问题发生了
这是部署ID>查看事件中显示的信息
据我所知,我应该找到
在其中,它提到了目的地:/var/www/html/
,但在实例中没有这样的/var/www/html
路径
所以,我在其中创建了这两个文件夹
并重新启动了部署
但它像以前一样失败了
如何将部署状态设置为成功
编辑 根据,此错误代码显示健康约束。所以,我现在读到:
为了重现这个问题,我使用CodeDeploy在我自己的Amazon Linux 2实例上部署了OP使用的应用程序。我可以验证
CodeDeployGitHubDemo
及其appspec.yml
文件是否正确,并按预期工作
由于OP使用的是CodePipline(CP),因此建议后退一步,只关注使用CodeDeploy(CD)的部署,而不增加使用CP+CD组合的复杂性。这样就可以只关注CD问题,并且可以简化查找问题根源的过程。独立CD部署工作完成后,下一步是将CP合并到部署过程中,确切了解CD应该如何设置以工作
更具体地说,就是这样做的
mkdir /etc/codedeploy-agent/
mkdir /etc/codedeploy-agent/conf
cat <<EOT >> /etc/codedeploy-agent/conf/codedeploy.onpremises.yml
---
aws_access_key_id: ACCESS_KEY
aws_secret_access_key: SECRET_KEY
iam_user_arn: arn:aws:iam::525221857828:user/GeneralUser
region: eu-west-2
EOT
wget https://aws-codedeploy-us-west-2.s3.us-west-2.amazonaws.com/latest/install
chmod +x ./install
sudo ./install auto
然后
然后
最后,作为输出得到
{
"instanceNames": [
"Amazon_Linux_1",
"codedeploy"
]
}
你的appspec文件是什么?@Marcin我不必创建一个。如果它是在进程中的任何位置自动创建的,我无法找到它。SSH在中运行了
sudo find/-name“appspec”
,但它没有返回任何内容CodeDeployGitHubDemo
。我只是使用CodeDeploy部署它,试图对其进行测试。在我看来,回购协议不是问题所在,尽管我
aws deploy register-on-premises-instance --instance-name Amazon_Linux_1 --iam-user-arn arn:aws:iam::525221857828:user/GeneralUser --region eu-west-2
aws deploy add-tags-to-on-premises-instances --instance-names Amazon_Linux_1 --tags Key=Name,Value=CodeDeployLightsailDemo --region eu-west-2
aws deploy list-on-premises-instances --region eu-west-2
{
"instanceNames": [
"Amazon_Linux_1",
"codedeploy"
]
}