Jenkins-自动部署项目
Jenkins-Windows
部署前
https://www.jenkins.io/download/
下载.msi安装包,跟着提示下一步,安装成功:在网页打开:https://localhost:xxxx; xxxx是安装时设置的端口
设置
打开页面后:
其余跟着提示下一步,完成初始化设置,进入页面。
修改JenKins工作空间
在安装Jenkins目录下,找到jenkins.xml。
<service>
<id>jenkins</id>
<name>Jenkins</name>
<description>This service runs Jenkins automation server.</description>
<env name="JENKINS_HOME" value="%ProgramData%\Jenkins\.jenkins"/>
</service>
修改 env 标签中的value,值为修改后的工作空间路径
工作空间:JenKins关联项目打包产生的缓存及包,以及GitLab拉取的代码和Jenkins工作缓存的存储空间。
TIP:1、注意如果需要修改工作空间,则在修改前不进行插件、项目等的关联、安装。
2、JenKins在Windows环境下为系统服务,修改前后需在服务中将名为Jenkins的服务重新启动
修改国内镜像
进入Manage Jenkins >> Manage Plugin >> Advanced,将最下面的Update Site URL更改为:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
修改服务器配置:打开Jenkins工作目录下的\updates\default.json
将其中的体内进行替换:
updates.jenkins.io/download/plugins -> mirrors.tuna.tsinghua.edu.cn/jenkins/plugins
www.google.com -> www.baidu.com
重启Jenkins服务
安装插件
推荐安装以下插件:
- Git plugin
- GitLab plugin
- Maven Integration plugin
- Localization: Chinese 【中文插件】
- Publish Over SSH【SSH连接器】
- Safe Restart Plugin【安全重启插件】
- SSH server 【SSH节点插件】
全局配置
依次从上往下配置:
系统配置
Jenkins访问端口
SSH节点
TIP: 注意合理设置timeout,SSH的默认连接时间大多超过秒级,所以控制在3000ms内即可
SSH连接器
参数介绍:
- Passphrase【连接密码】
- Path to key 【秘钥路径】
- Key【秘钥】
- Name【本连接器名称】
- Hostname【服务器主机address】
- Username【连接用户名】
- Remote Directory【本次连接指向的服务器路径】
部署项目
基本设置
- 策略【Log Rotation 日志循环】
- 保持构建的天数【超过设置天数的构建记录将被删除】
- 保持构建的最大个数【构建记录中只会存在X个记录,新加记录将删除最远旧记录】
这些推荐使用默认,也可以根据需要选择,作用名如其名
源码管理
TIP: 指定分支,一定需要 指定到具体的分支上,比如*/release ,这里的 * 代表全匹配,一般在Git不设置的情况下都是 origin
构建触发器
触发器的功能:当条件触发时,本项目将自动项目构建、打包、部署
- Build after other projects are built【当指定项目构建后,触发。指定项目为在Jenkins中配置的项目】
- Build periodically【定期触发】
- Build when a change is pushed....【当Git中有更新分支推送上来时,触发。不推荐】
- ...
- ...
- Poll SCM【时间轮询,在自定义时间的时间片中,将定时的去返回Git查询有无更新分支,如果有则触发】
构建前
如果项目需要在构建前进行一些系统变量或配置文件的更改与新建,则可以通过以上两个,实现SSH远程调用Shell脚本/执行目标服务器的Shell脚本/执行目标服务器的命令/SSH传输文件的方式进行配置
设置打包命令以及根依赖文件。
clean -Dmaven.repo.local=F:\MAVEN -DskipTests=true install -P gvsmaven,alimaven,releasemaven
构建
构建步骤,一般步骤为:
删除就Jar包备份,拷贝当前服务器下该项目已存在,运行的Jar包作为备份。
选择Execute shell script on remote host using ssh
SSH site 为在系统配置中配置的SSH节点
Command为在目标服务器中执行的 Linux 指令
将最新的代码打包,发送给目标服务器
选择 Send files or execute commands over SSH
- Source files 【打包后的jar包目录,绝对路径指向jenkins的工作空间,.jenkins/workspace】
- SSHServer【SSH连接器】
- Remove prefix 【打包后,去掉的文件名路径前缀,这里一定要去,不然到服务器中文件指向路径会是 指定的目标目录/工作空间路径/*.jar 】
- Remote directory【文件传输目录,这个路径会和SSH连接器中的Remote Directory 进行拼接】
- Exec command【在本服务器中执行的命令】
在目标服务器中运行该jar包/war包
如果是way包,那么不需要管,只要准确的将war包发送至目标服务器的webapps目录下
如果是jar包:
直接运行jar包,【已知目标服务器已搭建Jdk环境,jar包自带Tomcat】
通过Shell脚本运行
选择Execute shell script on remote host using ssh
构建后
邮件通知
- 下载[ Email Extension] 插件
- https://blog.csdn.net/mengtao0609/article/details/123867919
Jenkins-Linux
War包
按照正常的war包应用,将下载到的jenkins.war包放到Tomcat的webapps目录下,并且访问其localhost:XXXX/jenkins。
其余设置与上述配置一模一样。
Docker
下载镜像
docker pull jenkins/jenkins
查看jenkins镜像
docker images
创建工作空间
mkdir -p /home/jenkins_home
启动
docker run -d -uroot -p 9095:8080 -p 50000:50000 --name jenkins -v /home/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime jenkins/jenkins
命令 | 意义 |
---|---|
-v /home/jenkins_home:/var/jenkins_home | :/var/jenkins_home目录为容器jenkins工作目录,我们将硬盘上的一个目录挂载到这个位置,方便后续更新镜像后继续使用原来的工作目录 |
查看日志
docker logs jenkins
在/initialAdminPassword,查看初始化密码。
访问Jenkins:localhost:9095,后续配置与上述一致