CICD构建实现教程(Codepipeline+CodeCommit+CodeBuild)

2022-05-18 10:00

自动化部署CICD流程,在系统管理员层面上减少维护负担,不仅节省企业日常维护,还能提高了企业员工绩效

跟云小编一起来了解CICD的作业流程吧!

亚马逊云上CICD家族介绍

CodePipeline 是一种完全托管的持续集成与持续交付服务,可以帮助您实现发布管道的自动化,从而实现快速而可靠的应用程序和基础设施更新。代码一旦发生更改,CodePipeline 都会根据您定义的发布模型自动构建、测试和部署您的发布流程。


CodeCommit 是一个安全、高度可扩展的托管型源代码控制服务,也就是私有 Git 存储库。它让团队能够轻松而安全地协同处理代码,并实现传输中和静态加密。使用 CodeCommit,您无需管理自己的源控制系统,也无需担心基础设施的扩展能力。您可以使用 CodeCommit 将来自代码的任何数据存储为二进制文件。它支持 Git 的标准功能,因此可以与现有基于 Git 的工具无缝搭配使用。


CodeBuild 是一项完全托管的持续集成服务,可编译源代码、运行测试以及生成可供部署的软件包。使用 CodeBuild,您无需预置、管理和扩展自己的构建服务器。CodeBuild 可以持续扩展并同时处理多项构建任务,因此您的构建任务不会在队列中等待。


实验步骤

1. 创建CodeCommit代码存储库

2. 创建CodeBuild环境

3. 使用CodePipeline串接各类组件完成工作流



#创建CICD工作流作业

创建CodeCommit代码存储库

1.搜索CodeCommit

2.点击创建存储库

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

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

buildspec.yml

version: 0.2



phases:

  pre_build:

    commands:

      - echo Logging in to Amazon ECR...

      - 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 Docker image...

      - 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 Docker images...

      - docker push $REPOSITORY_URI:latest

      -dockerpush$REPOSITORY_URI:

$IMAGE_TAG

      - echo Writing image definitions file...

      -printf'[{"name":"ECS容器名称

","imageUri":"%s"}]'

$REPOSITORY_URI:$IMAGE_TAG > imagedefinitions.json

      - cat imagedefinitions.json

artifacts:

files: imagedefinitions.json

Dockerfile

FROM nginx

RUN echo '

ECS_CICD Version 1

' > /usr/share/nginx/html/index.html

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

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

b)将下面提供的代码传到Codecommit中-点击提交

控制台只能单个文件上传

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


创建CodeBuild构建项目

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

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

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

4.环境配置

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

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

5.搜索IAM进入

6.找到您刚刚创建的角色附加-

AmazonEC2ContainerRegistryFullAccess

托管策略


创建CodePipeline构建工作流水线

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

2.输入名称进入下一步

3.源选择刚刚创建的CodeCommit

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

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

6.测试工作流

a)访问负载均衡器地址。

b)修改CodeCommit中Dockerfile发布版本2。

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


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

模板表单-2(1)

  • 姓名*

  • 电话*

  • 邮箱*

  • 职称*

  • 公司*

  • 地址*

  • 需求*

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