自动化部署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)等待流水线作业完成发访问负载均衡查看对应版本,完成版本更新。