CodePipeline - 构建CICD流程

2021-07-02 17:08

CodePipeline 流水线作业

CodePipeline 是一种完全托管的持续集成与持续交付服务,可以集合CodeCommitCodeBuildCodeDeploy服务创建自动化流水线作业,从而实现快速而可靠的应用程序和基础设施更新。

此文檔实验步骤

1.       创建ECS集群,运行任务

2.       构建CICD流水线作业


一。创建ECS集群

创建ECR

1.      进入ECR点击创建存储库

图片1.png

2.      进入一般配置选项

可见性配置选择私有,填入存储库名称其他保持默认,然后点击创建存储库即可创建

图片2.png


创建ECS集群

1.    进入ECS服务

图片3.png

2.    点击创建集群

图片4.png


3.    选择AWS Fargate部署模式然后点击下一步

图片5.png


4.    输入集群名称点击创建

图片6.png

5.    创建任务定义

图片7.png

6.     点击创建新任务定义

图片8.png

7.     选择FARGATE模式点击下一步

图片9.png


8.     输入任务定义名称

图片10.png

9.     选择任务执行角色,如果没有角色选择创建新角色,CPU和内存按需选择即可

图片11.png


10.   容器选项配置

a)      点击添加容器

图片12.png

b)      填入容器名称,所使用的镜像和对应端口后点击添加

图片13.png

11.   其余选项保持默认,点击创建

图片14.png

12.   点击集群创建任务

图片15.png


13.   启动模式选择FARGATE选择刚刚创建的任务定义,任务数根据需求调配即可

图片16.jpg


14.   部署模式选择滚动跟新,然后点击下一步

图片17.png


15.   选择一个VPC和子网,在自动分配公有IP选项出选择ENABLED,然后点击运行任务

图片18.jpg

16.   负载均衡器选择Application Load Balancer,然后点击添加到负载均衡器

图片19.png

17.   容器配置中填入对应的端口,此次实验的使用的是80,其余配置保持默认然后点击下一步

图片20.png

18.   选择配置服务Auto Scaling以调整您服务的预期计数,输入您的最小,预期和最大任务数

图片21.png


19.   定义拓展策略,然后点击创建任务

图片22.png


20.   使用负载均衡器域名进行访问测试

图片23.png


二。创建CICD工作流作业

创建CodeCommit代码存储库

1.    搜索CodeCommit

图片24.png

2.    点击创建存储库

图片25.png

3.    输入存储库名称然后点击创建

图片26.png

4.    示例代码,请将代码中红色字体修改成对应名称

buildspec.yml

version: 0.2

phases:

   pre_build:

    commands:

      - echo Logging in to AmazonECR...

      - aws --version

      - $(aws ecr get-login--region $AWS_DEFAULT_REGION --no-include-email)

      - REPOSITORY_URI=填入ECR地址

      - COMMIT_HASH=$(echo$CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)

      - IMAGE_TAG=build-$(echo$CODEBUILD_BUILD_ID | awk -F":" '{print $2}')

   build:

    commands:

      - echo Build started on`date`

      - echo Building the Dockerimage...

      - docker build -t$REPOSITORY_URI:latest .

      - docker tag$REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG

   post_build:

    commands:

      - echo Build completed on`date`

      - echo Pushing the Dockerimages...

      - docker push$REPOSITORY_URI:latest

      - docker push$REPOSITORY_URI:$IMAGE_TAG

      - echo Writing imagedefinitions file...

      - printf'[{"name":"ECS容器名称","imageUri":"%s"}]' $REPOSITORY_URI:$IMAGE_TAG> imagedefinitions.json

      - cat imagedefinitions.json

artifacts:

files: imagedefinitions.json

Dockerfile

FROM nginx

RUN echo '<h1>ECS_CICD Version 1</h1>' >/usr/share/nginx/html/index.html

5.    上传此次项目的实验代码

a)      鼠标下滑找到添加文件选项点击上传文件

图片27.png


b)      将下面提供的代码传到Codecommit(控制台只能单个文件上传)点击提交

图片28.png

c)      继续上次代码文件,具体步骤与b相同

图片29.png

创建CodeBuild构建项目

1.     按照图片顺序创建构建项目

图片30.png

2.    项目配置部分输入项目名称其余选项不需要进行配置

图片31.png

3.     源选择刚刚创建的CodeCommit的存储库分支默认是main

图片32.png

4.     环境配置

a)      选择Ubuntu,运行时选择Standard,映像版本选择3:0

图片33.png

b)      勾选特权选项以便今后部署到ECS。其余选项默认然后创建项目即可

图片34.png

5.    搜索IAM进入

图片35.png

6.     找到您刚刚创建的角色附加AmazonEC2ContainerRegistryFullAccess托管策略

图片36.png


创建CodePipeline构建工作流水线

1.    进入CodePipeline创建流水线作业

图片37.png

2.     输入名称进入下一步

图片38.png


3.    源选择刚刚创建的CodeCommit

图片39.png


4.     构建选项中选择刚刚创建的CodeBuild

图片40.png


5.     部署提供应用程序选择ECS,并选择您的ECS集群和服务,然后创建流水线

图片41.png


6.     测试工作流

a)      访问负载均衡器地址

图片42.png

b)      修改CodeCommitDockerfile发布版本2

图片43.png


c)      等待流水线作业完成发访问负载均衡查看对应版本,完成版本跟新

图片44.png



云代理伙伴
扫描关注微信公众号
获取更多云端资讯
联系我们
——

模板表单-2(1)

  • 姓名*

  • 电话*

  • 邮箱*

  • 职称*

  • 公司*

  • 地址*

  • 需求*

  • * 点击提交,即表示您同意我们存储和处理您提交的个人信息,以向您提供所请求的内容,该信息仅供公司提供服务使用。您的信息受到相关法律的安全保护。