说明
这部分在Jenkins服务器中操作。
五、Integrate工具
持续集成、持续部署的工具很多,其中Jenkins是一个开源的持续集成平台。
Jenkins涉及到将编写完毕的代码发布到测试环境和生产环境的任务,并且还涉及到了构建项目等任务。
Jenkins需要大量的插件保证工作,安装成本较高,下面会基于Docker搭建Jenkins。
5.1 Jenkins介绍
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具
Jenkins应用广泛,大多数互联网公司都采用Jenkins配合GitLab、Docker、K8s作为实现DevOps的核心工具。
Jenkins最强大的就在于插件,Jenkins官方提供了大量的插件库,来自动化CI/CD过程中的各种琐碎功能。
Jenkins最主要的工作就是将GitLab上可以构建的工程代码拉取并且进行构建,再根据流程可以选择发布到测试环境或是生产环境上。
一般是GitLab上的代码经过大量的测试后,确定发行版本,再发布到生产环境。
CI/CD可以理解为:
- CI过程即是通过Jenkins将代码拉取、构建、制作镜像交给测试人员测试。
- 持续集成:让软件代码可以持续的集成到主干上,并自动构建和测试。
- CD过程即是通过Jenkins将打好标签的发行版本代码拉取、构建、制作镜像交给运维人员部署。
- 持续交付:让经过持续集成的代码可以进行手动部署。
- 持续部署:让可以持续交付的代码随时随地的自动化部署。
5.2 Jenkins安装
法一:docker run 命令安装
这里使用第一种方法
# 1. 创建并进入目录 mkdir /usr/local/docker/jenkins_docker -p cd /usr/local/docker/jenkins_docker # 2. 拉取镜像,注意版本不能太低,太低的话Jenkins中一部分插件无法下载 docker pull jenkins/jenkins:2.361.2 # 3. 运行 docker run -di --name jenkins \ -p 8080:8080 -p 50000:50000 -u root \ -v /usr/local/docker/jenkins_docker/data:/var/jenkins_home \ --restart always \ jenkins/jenkins:2.361.2 # 4. 配置国内源安装插件 cd /usr/local/docker/jenkins_docker/data/updates wget https://mirrors.aliyun.com/jenkins/updates/update-center.json
法二:yml文件安装
- 拉取Jenkins镜像
docker pull jenkins/jenkins
- 编写docker-compose.yml
# 1. 创建并进入目录 mkdir /usr/local/docker/jenkins_docker -p cd /usr/local/docker/jenkins_docker # 2. 编辑yml文件内容 vim docker-compose.yml version: "3.1" services: jenkins: image: jenkins/jenkins container_name: jenkins ports: - 8080:8080 - 50000:50000 volumes: - ./data/:/var/jenkins_home/ # 3. 执行 docker-compose up -d
3、用yml文件执行,首次启动会因为数据卷data目录没有权限导致启动失败,设置data目录写权限
# 修改权限 chmod -R 777 data/ # 重新启动 docker-compose restart
4、重新启动Jenkins容器后,由于Jenkins需要下载大量内容,但是由于默认下载地址下载速度较慢,需要重新设置下载地址为国内镜像站。如果慢的话可以更换镜像源
cd /usr/local/docker/jenkins_docker/data vim hudson.model.UpdateCenter.xml # 修改数据卷中的hudson.model.UpdateCenter.xml文件 <?xml version='1.1' encoding='UTF-8'?> <sites> <site> <id>default</id> <url>https://updates.jenkins.io/update-center.json</url> </site> </sites> # 将下载地址替换为http://mirror.esuni.jp/jenkins/updates/update-center.json <?xml version='1.1' encoding='UTF-8'?> <sites> <site> <id>default</id> <url>http://mirror.esuni.jp/jenkins/updates/update-center.json</url> </site> </sites> # 清华大学的插件源也可以https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
- 再次重启Jenkins容器,访问Jenkins(需要稍微等会)
docker restart jenkins
登录Jenkins
通过IP:8080登录
- 查看密码登录Jenkins,并登录下载插件
# 通过日志查看密码 docker logs -f jenkins # 或者进入容器内部查看密码 docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword
选择需要安装的插件,这里可以先不用选,进入之后再到插件管理中下载,直接点击安装,就会进入下载界面,如下图。等待一会下载完成
下载完毕设置信息进入首页(可能会出现下载失败的插件,失败也没关系,点击继续就可以,进入之后可以再次安装)
2、创建用户
3、下载插件
来到系统管理—插件管理中—安装下面2个插件(Git Parameter / Publish Over SSH):Git Parameter能够使Jenkins可以从gitlab上拉取代码;Publish Over SSH作用是把构建好的jar包推送到目标服务器,并且发送一个脚本命令告诉目标服务器把当前可运行的目标文件跑起来。