为了解决项目部署繁琐的编译、打包、上传等操作流程,提升部署效率,自己在本地自搭的CentOS7下安装了jenkins。本人学习时是通过Docker来安装的,以下记录下安装过程。
安装jenkins
使用docker进行jenkins镜像源查询
拉取jenkins镜像
本人取的是第2个jenkins/jenkins。本人第1次下载安装的是支持jdk8的jenkins,但启动后不知道什么原因在部署项目时缺少一些功能。后来又将该版本的jenkins删除后重新下载安装
支持jdk8版本的jenkins下载命令
docker pull jenkins/jenkins:latest-jdk8
可直接使用以下命令下载最新的版本:
docker pull jenkins/jenkins
下载成功后,查询镜像命令:
拉取镜像后,可以开始启动jenkins镜像,因本人当时学习时尚未深入了解,只是照葫芦画瓢,使用的命令是:
docker run -d \
-p 8040:8080 \
-p 50000:50000 \
--restart=always \
--user root \
-v /var/jenkins_home:/var/jenkins_home \
-v /etc/localtime:/etc/localtime \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker \
--name=jenkins \
jenkins/jenkins:latest
但是,后来再回顾学习时,发现网上也有以下命令可以启动
docker run -idt --name my-jenkins -p 80:8001 -p 8009:8009 -p 8080:8080 -p 50000:50000 -v /jenkins_data:/var/jenkins_home/ jenkins/jenkins
注解说明:
run:表示运行
-d:表示后台启动
-p:如:1中将镜像的8080端口(冒号右侧)映射到服务器(或者服务器)的8040端口(冒号左侧),2中是分别将镜像的多个端口一一映射到服务器的端口上。
-v:设置jenkins文件挂载点。如:2中/jenkins_data:/var/jenkins_home目录为容器jenkins工作目录,是将硬盘上的/jenkins_data挂载到/var/jenkins_home【此处前提是需要对/jenkins_data目录有操作权限,需要使用命令设置权限:chmod 777 /jenkins_data。也有使用chown -R 1000 /jenkins_home,但本人未测试过】
--name:表示为jenkins起的一个名字。上述命令中,1中的名字为jenkins,2中的名字为jenkins/jenkins
--user root:以root身份进入jenkins中,在jenkins中能使用宿主机的权限。
启动jenkins
默认使用的是8080端口,以1中为例,因为此处将服务器的8040端口与镜像的8080端口映射,所以此处使用的端口为8040
安装后,访问地址:http://{部署Jenkins所在服务IP}:8040
由上图可知,jenkins的初始化密码可通过以下命令查看:(注:/var/jenkins_home实际路径是上方的配置路径(冒号后的))
cat /var/jenkins_home/secrets/initialAdminPassword
选择安装推荐的插件,安装时间可能比较长,请耐心等待。如果第一次安装插件出现很多失败的,继续进行重试安装,直到全部插件安装成功为止。
配置jenkins环境
基本的插件安装有:maven(maven integration),publish over ssh(如果不需要远程推送则不需要安装),gitee。git自带不用安装
进行全局工具配置:jdk(非必须,也可自行在CentOS上安装,我就是自行安装的),maven,gitee(非必须,可在具体项目中配置),ssh
SSH说是必须配置一个,否则jar包无法上传。
到此,jenkins安装结束。下边就可以进行前后端项目部署实践了。
jenkins简介
Jenkins是一个开源的自动化服务器工具,用于持续集成和持续交付(CI/CD)流程。它允许开发人员自动构建、测试和部署他们的软件项目。
以下是Jenkins的一些关键特点和功能:
- 自动化构建:Jenkins提供了一个可视化界面,可以配置和管理各种构建任务。开发人员可以定义构建步骤,例如编译代码、运行单元测试、生成文档等。当代码发生变更时,Jenkins会自动触发构建过程。
- 持续集成和持续交付:Jenkins支持持续集成和持续交付流程。它可以与版本控制系统(如Git、SVN)集成,监测代码仓库的变更,并在每次提交或定时触发时执行构建和测试操作。此外,Jenkins还可以与其他工具(如Docker、Ansible)集成,实现自动化部署和交付。
- 插件生态系统:Jenkins拥有丰富的插件生态系统,可以扩展其功能。插件涵盖了各种领域,包括构建工具、测试框架、部署工具、报告生成和通知等。用户可以根据需要选择和安装适合的插件,以满足项目的特定要求。
- 可扩展性和灵活性:Jenkins提供了灵活的配置选项,可以根据项目需求进行定制。它支持多节点分布式架构,可以在不同的机器上并行执行任务,并通过Master-Slave模式实现负载均衡和高可用性。
- 流水线管理:Jenkins Pipeline是一种将整个CI/CD流程定义为代码的方式。使用PipelineDSL(Domain Specific Language),开发人员可以编写流水线脚本,描述构建、测试和部署的流程。这样可以实现更复杂的流程控制和自动化操作。
总结而言,Jenkins是一个强大的自动化服务器工具,适用于各种规模的软件项目。它能够帮助开发团队提高效率、降低错误率,并支持快速交付高质量的软件。