过程中遇到的一些问题,记录下来,希望能帮到一些有需要的人

 Jenkins官网下载地址(相关安装这里我就不做任何阐述了,网上有很多相关文章)

Jenkins git账户 jenkins gitblit_git

Jenkins+ Gitblit部署前端项目Vue自动化部署遇到的问题

首先进入插件管理安装nodejs 和gitblit插件

Jenkins git账户 jenkins gitblit_Jenkins git账户_02

 

Jenkins git账户 jenkins gitblit_Jenkins_03

Jenkins git账户 jenkins gitblit_运维_04

配置在系统全局设置配置nodejs

这里可以配置多个nodejs,可以下来进行选择

 

Jenkins git账户 jenkins gitblit_自动化_05

 

Jenkins git账户 jenkins gitblit_Jenkins_06

 首先,在GitBlit创建一个仓库并且提交相关代码

git提交相关操作这里就不做说明了

Jenkins git账户 jenkins gitblit_自动化_07

1.设置源代码管理

这里遇到的第一个问题(仓库名称不能为中文)
如果是中文git拉取代码的时候会提示以下错误
解决方式把仓库名称改为英文

Jenkins git账户 jenkins gitblit_自动化_08

当jenkins不提示有问题时,就说明验证就通过了

 

Jenkins git账户 jenkins gitblit_自动化_09

 2.配置构建触发器(我这里主要是用Poll SCM 定时轮询获取gitbilit代码进行构建和钩子post-commit进行构建)

 Poll SCM 定时轮询

首先格式为:* * * * *(五个星);

第一个*表示分钟,取值0~59
第二个*表示小时,取值0~23
第三个*表示一个月的第几天,取值1~31
第四个*表示第几月,取值1~12
第五个*表示一周中的第几天,取值0~7,其中0和7代表的都是周日

使用举例:
每隔10分钟构建一次:H/5 * * * *
每隔1小时构建一次: H H/1 * * *
每月30号构建一次:  H H 30 * *

 

Jenkins git账户 jenkins gitblit_Jenkins_10

然后继续配置构建环境,这里nodejs 我选择的是默认,我默认前面全局配置的nodejs

Jenkins git账户 jenkins gitblit_运维_11

最后配置构建步骤

首先创建一个IIS站点,我这里站点访问的文件路径为E:\IISFile\TestTest


然后依次使用Execute Windows batch command
cd C:\ProgramData\Jenkins\.jenkins\workspace\Test //进入到项目目录
npm config set registry https://registry.npm.taobao.org //设置npm 淘宝镜像
npm config get registry //检测镜像是否设置成功
npm install    //执行初始化
npm run build    //执行构建发布


XCOPY "C:\ProgramData\Jenkins\.jenkins\workspace\Test是\dist" /E/Y "E:\IISFile\TestTest"  //拷贝文件

然后保存

Jenkins git账户 jenkins gitblit_git_12

最后手动按点击现在构建

然后进入到控制台查看构建情况

如果没有提示出错则表示构建成功

 

Jenkins git账户 jenkins gitblit_运维_13

 

Jenkins git账户 jenkins gitblit_运维_14

访问IIS站点是否正常

Jenkins git账户 jenkins gitblit_Jenkins git账户_15

 钩子post-commit后触发构建

jenkins 源码构建器设置

只要勾选 SCM  就可以了不用加定时器,其他的设置和上面一致

Jenkins git账户 jenkins gitblit_运维_16

首先进入gitblit服务器
找到data\groovy 目录下jenkins.groovy

这里可以复制一份,处理改也可以,在原来的基础上改也可以

Jenkins git账户 jenkins gitblit_自动化_17

打开jenkins.groovy文件编辑
把原来的http://yourserver/jenkins 替换成你jenkins地址
我这里是http://127.0.0.1:8080

Jenkins git账户 jenkins gitblit_Jenkins_18

进入gitblit仓库管理里选择hook脚本

 

Jenkins git账户 jenkins gitblit_Jenkins_19

然后修改代码git提交查看构建,
提交后进入jenkins查看,发现没有触发构建


进入gitblit 里查看日志出现错误

Jenkins git账户 jenkins gitblit_自动化_20

然后用cmd curl curl http://127.0.0.1:8080/git/notifyCommit?url=https://zenghy@git.huipinyc.cn:8443/r/testtesttest.git  
访问校验,发现提示需要授权token

Jenkins git账户 jenkins gitblit_Jenkins_21

到此,又到了填坑的地方了,一开始,以为是登录jenkins的账号密码token ,然后设置了token 加入链接里访问,依然是提示这个错误,然后就开始百度,发现百度里没有出现相关答案,也看到有些博主的一些解决方式,但是最终按照操作还是没有解决,最后没辙去看jenkins git 插件官网有没有相关现象,可能是运气好,还被真找到了,原来jenkins 在 Git 插件 4.11.3 及更早版本中,可以使用 GET 请求访问此终端节点,而无需进行身份验证。/git/notifyCommit(Git 插件网络钩子中缺少身份验证机制)

Jenkins git账户 jenkins gitblit_Jenkins_22

 点击文档查看(发现是github仓库里有说明)

Jenkins git账户 jenkins gitblit_Jenkins git账户_23

Jenkins git账户 jenkins gitblit_运维_24

然后对Jenkins全局安全配置

进入jenkins 全局安全配置

然后下来找到Git plugin notifyCommit access tokens

添加添加token 添加生成


然后复制token 

最后把token 拼接到gitblit  data\groovy\jenkins.groovy 文件中url拼接起来

 

Jenkins git账户 jenkins gitblit_自动化_25

 

Jenkins git账户 jenkins gitblit_运维_26

Jenkins git账户 jenkins gitblit_自动化_27

Jenkins git账户 jenkins gitblit_运维_28

最后修改文件,提交git 

发现已正常触发自动构建

Jenkins git账户 jenkins gitblit_自动化_29

 

Jenkins git账户 jenkins gitblit_Jenkins git账户_30

 

using GIT_SSH to set credentials gitblit Verifying host key

using known hosts file

You're using 'Known hosts file' strategy to verify ssh host keys, but your known_hosts file does not exist, please go to 'Manage Jenkins' -> 'Configure Global Security' -> 'Git Host Key Verification Configuration' and configure host key verification.

出现此问题是:jenkins登录使用的是jenkins系统用户,而不是windows系统用户,所以读取known_hosts提示找不到

解决方式:
C:\Users\Administrator\.ssh 会有config,id_rsa,id_rsa.pub,known_hosts文件,把这4个文件拷贝到C:\Windows\System32\config\systemprofile\.ssh

注意:
另外Administrator账户是指windows登录账户
.ssh 目录不存在,则创建

到此构建就完成了