(一)CI/CD实践前准备之Docker集成GitLab
随着现在软件技术的越发成熟,为了降本提效,很多公司都想尽了办法,最大程度的优化研发资源,自动化构建,持续集成,持续交互,持续部署的概念慢慢出现在软件的开发中。我们以前开发一个APP,往往都是研发开发完后,再打各种包给到测试验证,验证完测试还要单独出测试报告。有了自动化构建和CI/CD,可以把这些过程都做最大程度的自动化。有些不需要人为参与的测试,比如代码质量检测之类的都可以自动完成,可以很好的提高研发的效率,缩短软件的开发周期
(1)持续集成(Continuous Integration,CI):代码合并、部署、自动化测试都在一起,不断地执行这个过程,并对结果反馈。
(2)持续交付(Continuous Delivery,CD):是一种软件工程方法,让软件的产出过程在一个短周期内完成,以保障软件可以稳
定、持续的保持在随时可以发布的状态。与持续集成相比,持续交付偏重点在于可交付的产物。
(3)持续部署(Continuous Deployment,CD):通过自动化部署的手动将软件频繁的交付,部署到期望的环境。
Jenkins是一款开源 CI&CD 系统,用于自动化各种任务,包括构建、测试和部署。
服务器:
准备一台服务器,可以是云服务器,也可以是你自己搭建的服务器,能用就行。
操作系统:
CentOS 7.6 64bit
(1)清除旧版本:
yum remove docker \
docker-client \
docker-client-latest \
docker- common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-sqlinux \
docker-engine-selinux \
docker-engine \
docker-ce
(2)安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
(3)修改镜像源为阿里的镜像源,因为国外的网络在国内访问会很慢,所以将镜像改为国内的镜像
可以输入cd /etc/yum.repos.d/
命令后,再输入ll
查看是否配置成功,如下图中标记点地方,有docker-ce的仓库就算是成功了
(4)更新软件包索引
yum install docker-ce
输入命令后等待安装完成,有需要输入确认的地方直接输入确认就行了
(6)为Docker添加开机自启动
#启动:
systemctl start docker
#添加开机启动
systemctl enable docker
为了后面的CI/CD项目,我们在这里就先给安装上,后面省得麻烦
(1)使用
java -version
检查下是否安装了JDK,如果已经安装了JDK,那么可以忽略这一小节,没有安装请往下看
(2)使用
yum -y list java*
可以查看所有的java jdk版本
>(3)使用yum install -y java-1.8.0-openjdk
安装JDK,安装完再继续使用java -verison
检查是否安装成功
(1)搜索镜像:
docker search jenkins
(2)拉取镜像:
docker pull jenkins/jenkins
使用docker images
已经可以看到Jenkins被拉取到本地了
(3)启动Jenkins
docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -u root \
-v /opt/jenkins_home:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker \
-v /usr/local/maven:/usr/local/maven \
-v /usr/local/jdk:/usr/local/jdk \
-v /etc/localtime:/etc/localtime \
--restart=always \
--name jenkins jenkins/jenkins
这里需要对参数做些解释:
-d 表示启动在后台
–name 表示容器名字
-p 端口映射:8080是暴露给外部的端口,50000是Jenkins工作之间用于通信的端口,分布式构建的时候需要用到
-v :数据卷挂载映射(/opt/jenkins_home:宿主主机目录,另外一个即是容器目录)
(4)容器启动成功后,接下来就是进入容器:
docker exec -it jenkins /bin/bash
进入容器后使用命令cat /var/jenkins_home/secrets/initialAdminPassword
获取Jenkins的初始密码,这个密码在第一次进入Jenkins时需要
(5)在web端访问jenkins的8080端口
使用你的服务器的公网IP+8080:例如:xxxx:8080访问
这时候你会发现居然会报链接超时,不要慌,遇到这种情况检查下你的服务器防火墙。这里给一个快速的解决办法,如果你买的是云服务器,进入你的控制台,找到你的云服务器实例,我的是腾讯云服务器,其他的也差不多
选择编辑第一个为all,保存提交就可以了
然后刷新下你刚才的页面,就会发现可以开始配置jenkins了
把上一步中获取到的密码输入这里面,就可以进入jenkins的配置了,输入密码成功后会进入下面的页面
这里需要注意我们插件后面需要啥咱们再安装啥,所以选择第二个把,然后把所有选中的插件都去掉。
去掉全部选中后,点击安装,然后会进入到设置管理员账号密码的界面
设置完你的账号密码后就会进入下面的页面
点击保存并完成
就可以了
最后你就会看到你熟悉的界面
到此为止,jenkins安装完成
以上就是今天讲的内容,本文主要介绍了CI/CD 的概念和jenkins,以及做CI/CD的环境准备和jenkins的安装,后面会讲到jenkins的使用以及如何使用jenkins实现线上自动化构建打包,即CI/CD,敬请期待