Jenkins安装、插件下载及构建环境配置详解
Jenkins简介
1.1 简介
Jenkins 是一个基于Java开发的开源持续集成工具,它提供了一个开放且易用的软件平台,主要用于自动化构建、测试和部署软件项目,以实现持续集成(CI)和持续交付/部署(CD)。
自动化构建:Jenkins能够自动从版本控制系统中拉取最新的代码,并根据项目配置的构建脚本或命令进行编译和构建;
自动化测试:Jenkins能集成各种测试工具和框架,如JUnit、Selenium等,自动运行测试并生成测试报告;
自动化部署:如果测试通过,Jenkins还能将构建好的软件包自动部署到目标环境中,如测试服务器、生产服务器等;
持续集成(CI):持续集成是一种软件开发实践,支持开发人员频繁地将代码集成到主干分支。在每次集成都通过自动化的构建(包括编译、打包、部署、测试)来验证,从而尽早地发现和修复错误;
持续交付/部署(CD):持续部署(Continuous Deployment)是在持续集成的基础上,自动将通过测试的代码部署到生产环境。持续交付(Continuous Delivery)则是指将集成后的代码部署到更贴近真实运行环境的类生产环境中,以便进行更多的测试,如果代码没有问题,可以继续手动部署到生产环境;
1.2 工作流程
持续集成(CI) 工作流程
1)开发人员提交代码到版本控制系统(如 git );
2)Jenkins检测到代码变更后,自动触发构建任务;
3)Jenkins执行构建脚本(如Maven构建),生成可部署的软件包;
4)Jenkins执行单元测试和其他自动化测试,验证新代码与原有代码的集成情况;
5)根据测试结果,Jenkins生成构建报告,并通过邮件、RSS等方式通知相关人员;
持续交付/部署(CD)工作流程
1)Jenkins在持续集成阶段完成构建和测试后,生成可部署的软件包;
2)Jenkins将软件包部署到类生产环境(如Staging环境)中进行更多的测试;
3)测试人员执行手动测试或自动化测试,验证软件包的稳定性和功能正确性;
4)如果测试通过,开发人员或运维人员可以手动将软件包部署到生产环境;
Docker安装Jenkins镜像
2.1 环境准备
1)安装Docker、docker-compose
2.2 Jenkins安装
1)拉取Jenkins镜像
可通过Jenkins官网首页的Download,选择Docker方式,进入Hub的Docker镜像仓库进行下载。但由于外网可能无法访问,可以从国内可用的Docker镜像仓库中下载。如:Docker Hub Search,下载 lts 长期维护版本。
docker pull jenkins/jenkins:2.479.3-lts
2)创建docker-compose.yml
2.1)先创建一个目录,用于存放该yml文件,如/usr/local/docker/jenkins_docker;
2.2)在jenkins_docker目录中,创建data目录,作为jenkins容器和宿主机的数据卷映射目录;
docker-compose.yml的内容如下:
version: '3.1'
services:jenkins: # docker实例名称image: jenkins/jenkins:2.479.3-lts # 使用的镜像container_name: jenkins # docker容器名称ports: # 端口映射- 8080:8080 - 50000:50000 volumes: # 数据卷映射- ./data/:/var/jenkins_home/ # 本机当前地址的data目录,映射到容器的/var/jenkins_home目录
说明:
1)8080端口是Jenkins默认的端口;
2)50000端口主要用于JNLP(Java Web Start)通信。 Jenkins使用JNLP协议来启动Java应用程序,而50000端口是JNLP协议所需的端口;
3)/var/jenkins_home:默认情况下,Jenkins将其所有数据存储在文件系统的此目录中;
3)启动容器
docker-compose up -d
4)查看日志
docker logs -f jenkins # 查看jenkins启动的初始密码
密码如果忘记,也可以从jenkins容器的 /var/jenkins_home/secrets/initialAdminPassword 文件中查看。
2.3 登录Jenkins
1)在浏览器中访问Jenkins
http://IP:8080
首次登录使用Jenkins提供的初始密码,如果忘记,在界面有提示密码的位置。
2)选择“选择插件来安装”
3)安装插件,直接点击“安装”即可
在插件安装过程中,可能很多插件会按照失败,即使全部失败也没有关系。后续可在后台管理中根据需要安装插件。
如果插件安装失败,如果一直安装失败,可以重新设置下载地址。修改的文件在容器的/var/jenkins_home/hudson.model.UpdateCenter.xml。由于在docker-compose.yml对该目录做了数据卷映射,所以该文件也在宿主机的 /var/local/docker/jenkins_docker/data目录中。修改的信息如下:
<?xml version='1.1' encoding='UTF-8'?>
<sites><site><id>default</id><url>http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url></site>
</sites>
4)创建新用户
插件安装完之后(没安装成功也没有关系,点击下一步进行用户创建),进入用户创建。
5)实例配置
自动识别jenkins的url,点击“保存并完成”即可。
6)进入Jenkins
Jenkins 插件安装
3.1 后台插件管理
1)进入插件管理界面
通过Manage Jenkins菜单,选择Plugins,进入插件管理界面。
2)选择插件,并安装
a)Available plugins:可用未安装的插件列表,可进行搜索,选择要安装的创建。可以搜索Chinese,查找中文插件;
b)Installed plugins:已安装的插件列表;
c)选择要安装的插件后点击“安装”即可;
d)Advanced settings:高级设置;
3.2 高级插件安装
1)从官网后台下载需要安装的插件
输入要下载的插件,进行搜索。
2)下载插件
查找一个合适的版本,下载对应的hpi文件。
3)管理后台安装插件
在插件管理后台,选择“Advanced settings”,选中下载的hpi(如果不下载,直接在url中输入url地址也可以),点击“部署”,进入插件安装流程。
Jenkins Maven 构建环境配置
对于使用Maven构建的Java项目,需要Maven及JDK。
4.1 资料准备
1)下载JDK(以下以1.8为例)、Maven,并上传到服务器;
2)Maven 配置,修改Maven的settings.xml文件,添加阿里仓库地址、配置JDK;
2.1)添加阿里仓库。在<mirrors>标签中添加如下:
<mirror><id>nexus-aliyun</id><mirrorOf>central</mirrorOf><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
2.2)配置JDK,以下以1.8为例。在<profiles>标签中添加如下:
<profile><id>jdk8</id><activation><activeByDefault>true</activeByDefault><jdk>1.8</jdk></activation><properties><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion></properties></profile>
4.2 将Maven和JDK解压到Jenkins容器
在安装Jenkins容器时,将data目录映射到容器的/var/jenkins_home目录,所以只需将Maven和JDK放在data目录即可。本例为/usr/local/docker/jenkins_docker/data目录。
4.3 在Jenkins 后台配置Maven和JDK
1)进入“全局工具配置”
2)Maven和JDK配置
在全局工具配置中,默认可安装或配置JDK、Git、Gradle、Ant、Maven。
在全局工具配置中,除了上面的安装项以外,还可以通过安装插件,扩展更多的功能。如SonarQube Scanner插件,进行代码质量检查。
2.1)JDK安装
a)JDK可自动安装,如果已经下载并上传到Jenkins容器,则取消“自动安装”的选择性,输入jdk的目录;
b)如果输入的目录错误,会自动提示;
2.2)Maven安装
Maven的安装和JDK的安装一样。
结尾
以上为本篇分析的全部内容。
关于本篇内容你有什么自己的想法或独到见解,欢迎在评论区一起交流探讨下吧。