我正在尝试使用 AWS CodeDeploy 来部署我的应用程序。一切似乎都运行良好,但出现以下错误。
[stderr]/opt/codedeploy-agent/deployment-root/f1ea67bd-97bo-08q1-b3g4-7b14becf91bf/d-WJL0QLF9H/deployment-archive/scripts/start_server.sh:第3行:pm2:找不到命令
下面是我的 start_server.sh 文件。
#!/bin/bash
pm2 start ~/server.js -i 0 --name "admin" &
Run Code Online (Sandbox Code Playgroud)
我曾尝试使用 SSH 以用户 ubuntu 身份连接到我的服务器并运行该 bash 文件,并且它运行完美,没有错误。所以我知道 PM2 已安装并在该用户上正常工作。
下面也是我的 appspec.yml 文件。
version: 0.0
os: linux
files:
- source: /
destination: /home/ubuntu
hooks:
ApplicationStart:
- location: scripts/start_server.sh
timeout: 300
runas: ubuntu
ApplicationStop:
- location: scripts/stop_server.sh
timeout: 300
runas: ubuntu
Run Code Online (Sandbox Code Playgroud)
也不确定这是否有帮助,但这是我的 stop_server.sh 文件。
#!/bin/bash
npm install pm2 -g
pm2 stop admin || true
pm2 delete admin || true
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我在让 CodeDeploy 将 Github 代码部署到蓝/绿部署中的 AutoScaling 组这一看似微不足道的任务中遇到了问题。
我有一个管道设置、一个部署组设置和 AutoScaling 组,但是在进行实际部署时它失败了:
我去了我的角色,它似乎有足够的策略来完成蓝/绿部署:
是否有我不认为需要附加到此角色的策略?
amazon-ec2 amazon-web-services amazon-iam autoscaling aws-code-deploy
Amazon Linux 2 已经附带了cfn-init其他 AWS 集成工具,但是CodeDeploy 文档没有提到 Amazon Linux 2 并且运行任何服务命令都会响应类似于:
Redirecting to /bin/systemctl start codedeploy-agent.service
Failed to start codedeploy-agent.service: Unit not found.
Run Code Online (Sandbox Code Playgroud)
如何启用 CodeDeploy 代理,最好使用cfn-init?
我正在使用 AWS CodeDeploy 将我的项目(由 CodePipeline 触发)部署到自动扩展组(ALB 后面的 EC2 实例)。这是我的 appSpec 文件:
version: 0.0
os: linux
files:
- source: /
destination: /var/www/html/test-deploy
overwrite: true
permissions:
- object: /var/www/html/test-deploy/codedeploy
pattern: "*.sh"
owner: root
group: root
mode: 755
type:
- file
hooks:
BeforeInstall:
- location: codedeploy/before_install.sh
timeout: 180
AfterInstall:
- location: codedeploy/after_install.sh
runas: centos
timeout: 180Run Code Online (Sandbox Code Playgroud)
文件已成功部署到 EC2 实例,但由于某种原因,在“BeforeAllowTraffic”之后没有任何反应,就像我等了 15 分钟,下一步仍处于“待处理”状态。
这两个 .sh 文件没有做任何花哨的事情(并且 codedeploy 通过了这些步骤,所以我认为这不是问题)。
有人能给我指出一个方向吗?我没有收到任何错误消息,所以我什至不知道如何调试它。
谢谢
我有一个存储库,在 github 上托管我的 lambda 函数。我希望每当新逻辑被推送到掌握时都能够部署新版本。
我做了很多研究,发现了一些不同的方法,但没有什么真正清楚的。想知道其他人认为最好的方法是什么,也许还有一些关于如何设置管道的细节(如果可能)。
谢谢
aws-code-deploy aws-lambda aws-codepipeline aws-codebuild aws-serverless
我正在使用两个容器部署 ECS Fargate 任务:1 个反向代理 nginx 和 1 个 python 服务器。对于每个我有一个 ECR 存储库,我有一个 CI/CD CodePipeline 设置
CodeCommit -> CodeBuild -> CodeDeploy
此流程适用于简单的代码更改。但是如果我想添加另一个容器怎么办?我当然可以更新 mybuildspec.yml以添加容器的构建,但我还需要 1) 更新我的任务定义,以及 2) 将此任务定义分配给我的服务。
问题:
1) 如果我在 CodeBuild 阶段使用 CLI 创建新的任务定义并将其与我的服务相关联,这不会触发部署吗?然后我的 CodeDeploy 会尝试再次部署,所以我最终会部署两次?
2) 这种方法最终会创建一个新的任务定义并在每次部署时更新服务。这很糟糕吗?我是否应该有一些逻辑来拉下最新的任务修订版并将 JSON 与 CodeCommit 版本进行比较,并且仅在存在差异时才进行更新?
谢谢!
AWS CodeDeploy 要求必须有两个目标组。我只与一个目标群体合作,不需要第二个目标群体。但是当我尝试仅使用目标群体时,我收到此消息
目标群体对必须具有不同的目标群体。
我不太明白(我阅读了文档)为什么 CodeDeploy 需要两个目标组,而不仅仅是一个。
我正在将 PHP 应用程序部署到 Beanstalk,一切似乎都很好,但我的.ebextensions配置文件似乎没有运行。
我只有一个配置文件,它应该创建一个文件,然后重新加载 nginx。
/my-project/.ebextensions/nginx.config:
files:
"/etc/nginx/conf.d/elasticbeanstalk/extend-nginx.conf" :
mode: "000755"
owner: root
group: root
content: |
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
location / {
try_files $uri $uri/ /index.php?$query_string;
}
container_commands:
reload_nginx:
command: "sudo service nginx reload"
Run Code Online (Sandbox Code Playgroud)
我的架构目前是:
1. CodePipeline 连接到 GitHub,每次更新 master 时都会将应用程序部署到 CodeDeploy。
2. CodeDeploy 从 CodePipeline 接收部署。
3. CodeDeploy 将其安装到 Elastic Beanstalk 实例。
上述所有步骤都可以正常工作。我只是不明白为什么配置文件.ebextensions没有按预期创建文件。
.ebextensions注意:我通过手动下载其中一个修订版本并进行检查,确认该文件夹位于修订版 .zip 的根目录中。
nginx amazon-web-services amazon-elastic-beanstalk aws-code-deploy aws-codepipeline
我正在与 aws 合作并使用他们的开发人员工具实施 CI/CD。每个工具都需要一个服务角色,因此我决定使用正确的权限更新现有的服务角色。问题是我不知道在哪里可以找到用于每个服务的值列表。
我搜索了文档并找到了这些名称,我还尝试使用cli来查找 ids:aws describe-services或者aws help但该列表不匹配。
如何找到更新这些策略的值?
amazon-web-services aws-code-deploy aws-codepipeline aws-codebuild
我尝试安装 codedeploy 代理ubuntu 22.04但不起作用。我已经ruby 2.6.0通过 rbenv 安装了。
ubuntu@ip-172-31-37-7:~$ sudo ./install --sanity-check deb
I, [2022-08-10T06:26:28.905059 #47961] INFO -- : Starting Ruby version check.
I, [2022-08-10T06:26:28.905394 #47961] INFO -- : Starting update check.
I, [2022-08-10T06:26:28.905593 #47961] INFO -- : Checking AWS_REGION environment variable for region information...
I, [2022-08-10T06:26:28.905770 #47961] INFO -- : Checking EC2 metadata service for region information...
I, [2022-08-10T06:26:28.921018 #47961] INFO -- : Checking AWS_DOMAIN environment variable for domain information...
I, [2022-08-10T06:26:28.921228 #47961] INFO -- : …Run Code Online (Sandbox Code Playgroud) amazon-ec2 amazon-web-services server aws-code-deploy devops
aws-code-deploy ×10
amazon-ec2 ×2
amazon-ecs ×1
amazon-iam ×1
autoscaling ×1
aws-lambda ×1
bash ×1
devops ×1
linux ×1
nginx ×1
node.js ×1
npm ×1
server ×1