Bhu*_*bar 4 deployment amazon-ec2 node.js aws-code-deploy bitbucket-pipelines
我有一个带有MongoDB和NodeJS的Angular 4应用程序。我一直在研究在亚马逊AWS EC2实例上自动部署我的应用程序。
我正在为我的项目使用BitBucket 存储库。阅读文章后,我遇到了Bitbucket Pipeline和AWS CodeDeploy。为了完成它,有许多场景和配置需要完成。一整天阅读所有文档后,我真的很困惑。
我想在将代码推送到特定分支时自动部署我的应用程序。
有人可以提供使用 Bitbucket Pipeline 和 AWS CodeDeploy 自动部署 Angular 4 (MEAN) 应用程序的分步指南吗?
如果您需要任何其他信息,请告诉我。谢谢你。
先决条件: - BitBucket 存储库 - AWS 账户 - Putty
登录您的 AWS 账户。访问https://console.aws.amazon.com/iam/
用户> 添加用户> 输入用户名> 复选框访问类型> 选择“自定义密码”单选> 取消选中“需要重置密码”> 单击下一步:权限> 直接附加现有策略> 搜索“s3”并选择 AmazonS3FullAccess

附加现有策略 - 搜索“codedeploy”并选择 AmazonEC2RoleforAWSCodeDeploy、AWSCodeDeployDeployerAccess、AWSCodeDeployFullAccess、AWSCodeDeployRole

下一步:查看 > 创建用户 -重要提示: 1. 下载 CSV 2. 记下访问密钥 ID 3. 记下秘密访问密钥

它是代码部署的服务角色。您分配给将在后续步骤中创建的代码部署应用程序的此服务角色。
登录您的 AWS 账户。访问https://console.aws.amazon.com/iam/
角色 > 创建角色 > 单击 AWS 服务 >

下面选择 CodeDeploy >

下一步:权限 > 下一步审查 > 输入角色名称(例如 CodeDeployServiceRole)> 输入描述(非强制性)> 创建角色。
这是分配给您将在后面的步骤中创建的 EC2 实例的角色。
登录您的 AWS 账户。访问https://console.aws.amazon.com/iam/
步骤 A. 为此角色创建策略。 策略 > 创建策略 > 选择创建您自己的策略 > 策略名称:“CodeDeploy-EC2-Permissions”> 描述:“分配给 EC2 实例的角色的策略”> 策略文档:将以下内容粘贴到输入框中。
{“版本”:“2012-10-17”,“声明”:[{“动作”:[“s3:Get*”,“s3:List*”],“效果”:“允许”,“资源” :“*”}]}

验证策略 > 创建策略。
步骤 B:创建角色 角色 > 创建角色 > AWS 服务 > EC2 > 选择您的用例 > 单击 EC2 > 下一步:权限 > 搜索“ec2”并选择您在步骤 A 中创建的“CodeDeploy-EC2-Permissions” >

下一步:审查 > 名称:“CodeDeploy-EC2-Instance-Profile”> 角色描述:“CodeDeploy-EC2-Instance-Profile”> 创建角色
登录您的 AWS 账户。服务 > EC2 > 启动实例 > Amazon Linux AMI(或根据需要选择)> 选择实例类型 > 下一步:配置实例详细信息 > IAM 角色 > 从下拉列表中选择您在步骤 3 步骤 B (CodeDeploy- EC2-Instance-Profile) >

下一步:添加存储 > 下一步:添加标签 > 添加标签 >(重要步骤!!记下您分配的名称和键)输入键:名称,值:staging-auto-deploy(或任何您喜欢的)>

下一步:配置安全组 > 选择现有安全组或新建 > 查看并启动 > 启动 > 选择现有密钥对或新建 > 启动实例 > 查看实例 > 记下 IPv4 公共 IP
在您的本地机器上打开 Putty > 输入您在第 4 步中获得的公共 IP > 端口 22 > 连接中 > SSH > 身份验证 > 用于身份验证的私钥文件> 浏览> 链接您在第 4 步中的实例的密钥对文件 > 打开 >登录方式:输入您的用户名
现在根据您的实例类型安装 CodeDeploy 代理
Linux 服务器:http : //docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install-linux.html
Ubuntu 服务器:http : //docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install-ubuntu.html
Windows 服务器:http : //docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install-windows.html
验证代理是否正在运行。

登录您的 BitBucket 账户集成 > 搜索 AWS CodeDeploy > 添加 AWS CodeDeploy

登录您的 AWS 账户。服务 > 搜索 CodeDeploy > 选择 CodeDeploy > 如果这是您第一次选择“立即开始”或创建应用程序 > 自定义部署 > 跳过演练 > 输入详细信息 > 应用程序名称:staging-deployment(重要:记下) 部署组名称: staging-deployment(重要:记下)选择“就地部署”环境配置> Amazon EC2 istance > Key: Name, Value: staging-auto-deploy(这些是你在创建实例时创建的键,值步骤 4) >

部署配置 > CodeDeployDefault.OneAtTime > 服务角色 ARN:选择您在第 2 步中创建的角色 (CodeDeployServiceRole) >

创建应用程序
登录您的 AWS 账户 > 服务 > S3 > 创建存储桶 > 存储桶名称:staging-deployment-bucket > 创建
登录到您的存储库 > 设置 > CodeDeploy 设置 > 配置加载项 > 按照屏幕上的说明进行操作
步骤 A 登录您的 AWS 账户 > 服务 > IAM > 策略 > 创建策略 > 创建您自己的策略 >(此策略是为 bitbucket 代码部署插件创建的,使用它为 bitbucket 代码部署插件创建角色)策略名称:BitBucketCodeDeployAddOnPolicy 策略文档: 将以下内容粘贴到输入框中
{“版本”:“2012-10-17”,“声明”:[{“效果”:“允许”,“动作”:[“s3:ListAllMyBuckets”,“s3:PutObject”],“资源”:“ arn:aws:s3::: ”},{“Effect”: “Allow”,”Action”: [“codedeploy: ”],”Resource”: “*”}]}
创建策略
步骤 B 登录您的 AWS 账户 > 服务 > IAM > 角色 > 创建角色 > 另一个 AWS 账户 >

账户 ID:复制粘贴 bitbucket 代码上给出的 AWS 账户 ID 在屏幕说明上部署 > 选中需要外部 ID 复选框然后:复制粘贴 bitbucket 代码上给出的外部 ID 部署屏幕说明 >


下一步:权限 > 附加权限策略 > 搜索您在步骤 A 中创建的策略 > 下一步:查看 卷名称:“BitbucketCodeDeployAddon” > 创建角色 单击您刚刚创建的角色并复制角色 ARN 并将其粘贴到“您的角色 ARN”中在 bitbucket 代码部署设置页面 > 单击保存并继续 在下一页应用程序:选择您在步骤 7 中创建的 CodeDeploy 应用程序 > S3 存储桶:选择您在步骤 8 中创建的 S3 存储桶 > 保存
登录您的 BitBucket 帐户回购设置 > 管道 > 设置 > 启用启用管道
对于第 11、12、13 和 14 步,所需文件可在此 repo 的来源处获得参考:https : //bitbucket.org/bhushanTPL/bitbucket-pipeline-and-aws-codedeploy
复制 bitbucket-pipelines.yml 文件。(根据您的项目要求对此文件进行更改)将此文件添加到项目的根目录。
文档:https : //confluence.atlassian.com/bitbucket/configure-bitbucket-pipelines-yml-792298910.html? _ga = 2.162970750.315484667.1509451697-1615374000.16574000.1674000.16697-1615374000.1674000.166978bucket- pipelines.150ml
复制 codedeploy_deploy.py 文件。将此文件添加到您项目的根目录中。
文档和来源:https : //bitbucket.org/awslabs/aws-codedeploy-bitbucket-pipelines-python
转到此 repo 的来源:https : //bitbucket.org/bhushanTPL/bitbucket-pipeline-and-aws-codedeploy 并复制appspec.yml文件。(根据您的项目要求对此文件进行更改)将其添加到项目的根目录中。
文档:http : //docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file.html
在项目的根目录下创建脚本文件夹
在项目根目录下的 scripts 文件夹中创建 startApp.sh 文件,该文件将在您的构建传输到 EC2 实例后运行命令。
登录你的 BitBucket 账户 > 你的 Repo Settings > Environment Variables 添加以下环境变量
AWS_SECRET_ACCESS_KEY:具有所需权限的用户的密钥。
AWS_ACCESS_KEY_ID:具有所需权限的用户的访问密钥。
AWS_DEFAULT_REGION:目标 AWS CodeDeploy 应用程序所在的区域。
APPLICATION_NAME:AWS CodeDeploy 应用程序的名称。
DEPLOYMENT_CONFIG:AWS CodeDeploy 部署配置 (CodeDeployDefault.OneAtATime|CodeDeployDefault.AllAtOnce|CodeDeployDefault.HalfAtATime|Custom)。
DEPLOYMENT_GROUP_NAME:应用程序中部署组的名称。
S3_BUCKET:存储要部署的源代码的 S3 Bucket 的名称。
文档和参考:https : //bitbucket.org/awslabs/aws-codedeploy-bitbucket-pipelines-python
您现在已经配置了所有必需的步骤。现在,当您提交更改并将更改推送到您的分支时,自动部署过程开始。请注意,在以下 bitbucket-pipeline.yml 配置中,每当您将更改推送到“暂存”分支时,部署过程就会开始。

您可以通过单击存储库中的管道来检查管道的进度。

您可以查看部署相关日志。有关更多信息,请访问:http : //docs.aws.amazon.com/codedeploy/latest/userguide/deployments-view-logs.html
您可以从 AWS 监控部署,登录到您的 AWS 账户,服务 > CodeDeploy > 部署。
| 归档时间: |
|
| 查看次数: |
3464 次 |
| 最近记录: |