利用Jenkins实现往github提交代码后自动部署打包

3,065 阅读5分钟

前言

本地写好代码后部署到服务器的tomcat上确实是一件麻烦的事情,需要先打成war包,再上传到服务器,再启动tomcat,确实是一件麻烦的事情,作为程序员岂能做这种重复且没有技术含量的事情,于是就想到了利用jekins来进行自动化,我只负责提交代码,别的就不管了,也是一件很棒棒的事情.

事前准备

  1. maven(下载压缩包之后直接解压 再配置下环境变量 这是为了可以直接使用mvn clean install命令)
 vim /etc/profile
//在这个文件末尾加上
export MAVEN_HOME=/root/maven3.4.5 
export PATH=$MAVEN_HOME/bin:$PATH
//保存后在命令行输入,启动配置
. /etc/profile
export下看下输出看看配置成没成功
  1. jdk(我选择的是java8,反正安装教程网上一搜大把,这里不做赘述)
  2. git(yum -y install git 注意可能有git版本不够的问题 建议centos版本不够的还是自行下载安装) 4.jenkins(建议大家还是取jenkins官网去下载最新的版本,我是用rpm安装的,当然docker也可以,但docker进行某些配置的时候可能会遇到目录和路径的问题,需要挂载目录,实在让人脑壳疼)
rpm -ivh jenkins-2.175-1.1.noarch.rpm
vi /etc/sysconfig/jenkins
#修改用户和端口(这里不是再最后面添加了 是修改原本就有的值)
JENKINS_USER="root"
JENKINS_PORT="8888"
systemctl start jenkins
#这时候就可以直接访问IP+8888来进行安装啦 之后会跳出一个需要密码的界面 去提示的路径获取密码 然后选择建议安装 然后等待安装好插件就可以了

5.mysql8(我是选择docker安装的方式 因为快 没装docker的可以去百度下怎么安装docker)

docker pull mysql:8.0
# --restart-always: docker服务启动时,自动启动容器,并且当容器停止时,尝试重启容器。
# MYSQL_ROOT_PASSWORD: root账号的密码
# --character-set-server --collation-server 默认数据库编码和默认排序
docker run --name mysql -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=root -v /var/lib/mysql/:/var/lib/mysql/ -d mysql:8.0 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
docker exec -it mysql /bin/bash
mysql -uroot -p root
#先更改ser表中用户为root的host字段,使他可以远程访问
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
flush privileges;

正文

一切顺利的话,你会进入到如下的界面中(也许会有点点不一样 因为我有新建任务了):

要想实现自动化部署打包,首先jenkins得有权限从github那边拿到代码,然后每次提交代码github得能够通知到jenkins.前者我们在github里面配置私有token,后者利用github的webhook来进行.

1.配置token:github->setting->developer setting->personal access tokens->generate new token(然后scopes选择admin和admin:repo_hook就行了.cretae之后会返回给你一个token,自己先保存此token,如果丢失,之后再也无法找到这个token.请注意这个token 它很重要 也就是后文中出现多次的secret text )

2.配置webhook:(把图中的ip换成自己的就可以了 注意这里的github-webhook是需要你安装好了github插件才可以正确回调的,所以确认自己的插件安装好了,没有的话 jenkins中:系统管理-->插件管理-->可选插件 找到github插件并安装 )

3.确认jenkins中已安装好github插件,没有的话去插件管理里面去搜索安装,接下来去配置认证. 系统管理 --> 系统设置 --> GitHub Server --> 添加

注意secret填写之前github那边获取到的token,id可以不填,描述就洒洒水啦.

设置完成后,点击TestConnection,提示Credentials verified for user xxxx, rate limit: xxx,则表明有效。

4.系统管理-->全局工具管理->设置好你之前安装好的jdk git maven路径.

5.当然是最激动人心的环境 新建任务(选择一个自由风格的任务): 1).填写项目描述和项目主页(github上的地址,注意不是下载的git地址,是项目主页,github.com/自己用户名/项目名的那个)

2).源码管理(Credentials 选择自己之前创建好的那个,源代码浏览器配置之后可以在jenkins查看github的代码,最Additional Behaviours->check out to an sub-directory 是把项目下载到这个文件夹里面 下面配置路径的时候要注意)
3).构建触发选择当接收到github hook的时候 构建环境选择使用secret text(也就是之前github里面的那个token)
4).构建的操作,执行shell命令,注意操作还是通过sh脚本来完成的

sh脚本(注意win状态下编辑可能会产生^M的情况 用vim-b来进行查看并修改) 附上

5).构建后操作选择set github status就可以啦

然后提交代码享受自动打包部署的快感吧. (ps:本人打包的时候总是报 mvn clean install的错误 查找多次后发现是自己配置的war包打包插件的路径配置的不对,折腾了很长时间,大家有报错的可以看任务的输出日志来定位查找情况)

才疏学浅 错漏之处在所难免