Jenkins结合Git实现自动发布

一、设置用户

虽然安装jenkins的时候有让我们设置了一个账户,但是登录进来之后,还要进行设置,否则只要退出jenkins的登录,你就无法登录系统了,不论是用admin默认的超级用户还是刚刚创建的nongkaige用户,都不能进行登录,如果真的是还没有对账号进行设置,就已经退出了jenkins,别着急,还有一个办法,那就是使用admin账户,输入刚刚的cat /a01/apps/jenkins/data/secrets/initialAdminPassword中的密码,还可以救你一次,但是这次千万要记住来设置账号了,否则就得暴力搞jenkins了,废话不多说,下边来说说怎么设置

“用户”——“admin”——“设置”——“密码”——“修改密码”——“保存”

FBT1V1.png

二、安装git

在配置git之前,先到jenkins服务器上安装git,然后查看git的位置

1
2
3
yum -y install git
which git
/usr/bin/git

然后去设置git,“系统管理”——“全局工具配置”——“Git”,把上边我们看到的git的位置填上即可

FBTNxe.png

三、安装nodejs

因为我们的项目是使用nodejs来构建,所以安装,如果你的项目不需要,则省略

“系统管理”——“全局工具配置”——“NodeJS”,

FBTwqA.png

FBTDat.png

四、源码管理(Git)

这里我们已经创建了一个vue2-ln的项目,接下来要配置这个项目

FBT6G8.png

FBTfqs.png

找到“源码管理”,选择Git,Repository URL填写git仓库的地址:

FBT4Zn.png

Credentials有两种方式,一种是配置以git的用户名和密码,另外一种是使用密钥对的方式

1、使用用户名和密码的方式来配置,点击add

FBTTiV.png

FBTbzF.png

这里的93bok用户是拥有git仓库权限的用户,而不是随便填写一个用户

2、通过ssh密钥对的方式来配置

先在任意一台主机上生成一对密钥:

1
ssh-keygen -t rsa

再把生成的公钥上传到你的git仓库上,然后配置权限啥的,这里自行百度,不再叙述

最后是把你生成的私钥粘贴到下边的位置即可

FB79JK.png

五、构建环境

由于我们的项目是使用nodejs来构建,所以需要nodejs的插件,先去安装插件

“系统管理”——“管理插件”——“可选插件”——“过滤NodeJS”

FB7PzD.png

安装完插件之后,继续配置我们的项目,找到“构建环境”,勾选Provide Node & npm bin/ folder to PATH

FB7nFP.png

六、构建

npm install用来安装一些依赖的包,只是第一次的时候需要安装,这是根据自己的环境来的,请不要照搬代码。构建完之后删除之前构建的tar包,然后把开发写好的代码打包。

FB7uJf.png

七、构建后的操作

接着上一步,把开发写好的代码打包之后,通过配置ssh插件来把tar包发布到测试环境,下边的source files就是我们打包好的代码,Remove prefix就是过滤掉h5目录,Remote directory就是发布到测试环境的什么路径,这里为什么我不设置,因为在系统设置中我已经设置过了,如下边的第二张图。

FB7Ges.png

FB7UYV.png

八、设置SSH

SSH,远程机开启SSH服务,允许Jenkins所在机器通过SSH服务登录到远程机执行脚本;可以设置SSH使用用户名/密码或通过key登录

先去安装插件“Publish over SSH”

然后去“系统管理”——“系统设置”

FB7wSU.png

参数说明

Passphrase: SSH的密码,使用用户名/密码登录时为用户名的密码,使用私钥登录时为私钥的密码。

Path to key: SSH私钥的文件路径,私钥文件的路径,可以是绝对路径,也可以是相对$JENKINS_HOME的相对路径

Key: 私钥,私钥导出后的文本内容

如果“Key”和“Path to key”都设置,则“Key”的优先级较高,私钥的密码是“Passphrase”中设置的内容。

Disable exec: 禁止在目标机上执行命令,勾选后将会忽略在Job配置中“Exec command”选项中设置的命令。Jenkins的说明文档中的“The Disable exec in the advanced settings for individual configurations will be ignored.”没有完全理解,从实际效果来看,只要“Disable exec”被勾选后,不管SSH Server中是否勾选“Disable exec”,Job中设置的命令都将补忽略。

SSH Server 配置

SSH Server配置为Publish Over SSH中运程机的配置,分“基本设置”和“高级设置”两部分;“基本设置”主要是运程机IP、SSH用户名、SSH端口、连接超时时间等,“高级设置”和大部分“全局设置”中的选项相同。Job中使用的每一个运程机都要在这里进行配置。

基本设置

SSH Server的基本设置如下图:

FB7DOJ.png

此处设置在使用“172.16.18.192-SSH”的所有设置中都生效,相当于此运程SSH节点的全局设置;基于与“全局设置”中同样的原因这里的设置在Job中也可以被覆盖,这在多用户进行远程操作时很有必要,如在172.16.18.192这台机器上有userA和userB两个用户分别用来部署”应用A”和“应用B”。

参数说明

Name: SSH节点配置的名称,在Job中使用Publish over SSH插件时,此名称将出现在“SSH Server”中“Name”的下拉列表中

Hostname: 通过SSH连接到的机器的主机名或IP

Username: SSH服务使用的用户名,使用key进行连接时为key指定的用户名

Remote Derictory: 运程机器上真实存在的目录,并且“Username”指定的用户要有访问此目录的权限,插件将把文件传送到此目录下。

高级设置

高级设置里可以设置SSH端口、重试时间以及重新设置“全局设置”中的选项,由于做用相似,不再做重复说明,设置如下图:

FB7sm9.png

九、开始构建

弄完以上的步骤之后,就可以开始构建了

FB7ywR.png

FB76T1.png

FB7gFx.png

查看控制台输出

FB7RfK.png

FB7fSO.png

博主QQ:1012405802
技术交流QQ群:830339411
版权声明:网站内容有原创和转载,如有侵权,请联系删除,谢谢!!
感谢打赏,93bok因你们而精彩!!(支付宝支持花呗)
0%