一、背景
持续集成和持续部署是属于DevOps的重要环节,是提升软件开发效率的最佳实践之一。常见的方式有通过Jenkins和代码库gitlab进行关联实现。本文介绍gitlab原生的工具gitlab-runner来实现CI/CD。
二、组件说明
1.gitlab 代码管理和控制工具。
2.gitlab-runnber执行CI/CD的工具。
三、环境部署
这里假设已经安装好gitlab,并建立了工程。如下图:
1.gitlab信息
2.gitlab-runner
如果没有gitlab-runner需要部署,这里通过docker方式部署。
1)拉取镜像并部署
#docker run -dit --name gitlab-runner --restart always -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner:latest
2)检查运行情况
#docker ps
3) 拷贝gitlab证书
在gitlab的环境上有类似/etc/gitlab/ssl/gitlab.example.com.crt的证书(根据实际环境选取正确文件)。把该文件拷贝到gitlab-runner容器中。
4)向gitlab注册gitlab-runner
进入容器
#gitlab-runner register --tls-ca-file=/home/gitlab-runner/gitlab.51tests.net.crt
(注:证书在容器中要存在,如果没有证书会报x509: certificate signed by unknown authority 错误)
然后根据提示输入gitlab的url和token,以及runner的描述和名称。
5)gitlab中检查注册情况
四、CI/CD配置文件
1.gitlab的工程根目录增加 .gitlab-ci.yml 文件
内容类似如下:
2.提交代码
pipeline效果图,如下: