一、先介绍正向代理和反向代理
正向代理
反向代理
二、安装反响代理得到固定域名
三、Jenkins与Github集成
配置前要求:
1.Jenkins已经安装Github插件
2.Jenkins服务器已经拥有一个公网IP地址(如果没有公网IP则需要安装反向代理进行获取域名)
第一步:github授权,关联项目
登录github---->setting---->Developer settings--->Personal access tokens
Generate new token(选repo,admin:repo_hook)
拉到下面确定生成token
第二步:配置Jenkins全局
尽管Jenkins已经配置与Github代码库进行通信,但我们需从Jenkins手动启动构建,如需启动自动构建,Jenkins需要在Hook URL中监听Github的Post请求,才会进行自动构建
要获取Jenkins的Hook URL,打开Jenkins首页控制台--》系统管理
在Github插件的配置中,点击“高级”按钮
启用Hook URL,并将Hook URL复制出来,并保存刚才的设置
第二步:配置Github项目仓库
还需要配置Github项目仓库,因为Github经常有代码处理动作,需要配置Github项目仓库在处理这些动作的同时会发送信号至Jenkins,才使用Jenkins自动构建
在"Webhooks"选项卡中,点击"Add webhook"
将在Jenkins生成的Hook URL填入至Payload URL中,另外,选择自主事件
以Push为例,并保存,即当Github收到了客户端有Push动作时,会触发一个Hook
保存WebHook之后
第三步:配置Jenkins项目
最后需要配置Jenkins项目触发的条件,到此刻,Github遇到Push事件时,Jenkins会收到通知,但Jenkins应该做什么呢?此步骤就是做最后的构建的动作。
登录jenkins,系统管理,系统设置,找到Github服务器
保存
jenkins创建任务
任务配置
先save保存,目前为止jenkins已成功与github项目关联了,如果push代码到github上,jenkins就可以得到通知了,关于得到通知后下一步怎么更新服务器上的代码并重启项目,看这里jenkins+docker+github实现项目自动部署(下)
紧接上文,本文实现push代码到github,服务器自动更新代码并重启
想要更新服务器的代码有很多方式,比如如果你项目是java web项目,你可以打包成war包,再发送到服务器的tomcat文件夹下。
我这里采取的方式是在项目里写一个启动脚本,启动脚本里git pull拉取最新代码,这样来更新代码,然后脚本里重启项目,以springboot项目为例,脚本代码如下:
#!/usr/bin/env bash
git pull #更新代码
#后面这些不重要,就是一些启动项目的指令,别复制了,会有问题的,
#反正就是把项目的启动指令放这了,比如java -jar 或者打war包,然后mv xxx.war 到tomcat里
proj_home=$PWD
img_output="demo"
#更新依赖
mvn clean package -U
docker build -t $img_output .
docker rm -f demo
docker run -d --restart=on-failure:5 --privileged=true
-p 8080:8080
--name demo demo
java
-Duser.timezone=Asia/Shanghai
-jar /home/demo.jar
好了,现在启动脚本有了,那么怎么让jenkins在知道有代码push时怎么执行这个脚本呢?
回到jenkins,我们需要装个ssh插件来远程登录服务器,运行脚本
系统管理----》插件管理
刷新一下,重启中,等待片刻
系统管理----》系统配置,如果插件安装成功的话,会多一个这个配置
保存
继续完成上一篇尚未完成的任务配置
保存,至此所有配置都已完成,可以点这里测试一下,是否能重启项目
如果这样能成功启动的话,可以试一下push代码看看是否能自动触发