centos下安装jenkins自动部署到远程服务

 

各位小伙伴们,我也是第一次学jenkins,由于搞了两天踩了很多坑,这里就将最完整的搭建方法列举出来。

废话不多说,开始干!

一 . 首先现在centos中下载jenkins包,这里有两种方式:

       1.下载并运行 jenkins.war 

       wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war

      启动命令:java -jar jenkins.war  默认使用的8080端口如这里端口被占用的话可以这样启动

                        java -jar jenkins.war --httpPort=8089  :启动jenkins指定端口

 

       2. 使用npm命令安装jenkins,如果没有npm 使用 yum install -y npm进行插件安装

         下载命令:https://prodjenkinsreleases.blob.core.windows.net/redhat/jenkins-2.143-1.1.noarch.rpm 我这里安装比较稳定的版本,其他版本自行选择 。链接:https://pkg.jenkins.io/redhat/

        下载好之后解压:  rpm -vih jenkins-2.140-1.1.noarch.rpm

 

      3. 修改jenkins服务端口(我这里使用默认的8080,如果想修改如下)

          vim /etc/sysconfig/jenkins

       

 

      4.启动jenkins,执行:

         service jenkins start

      如果启动失败了如这样:

 解决方法:

   修改jenkins配置文件中JDK路径是否与本地路径一致,不一致则将Java的正确路径加入

   vim /etc/init.d/jenkins

   

   然后再启动    -常用命令service jenkins start/stop/restart(启动、关闭、重启)

 

    5. 访问jenkins页面

      这里要讲一下如果你的linux没有关闭防火墙的话是访问不到的,关闭防火墙命令如下:

       查看防火墙状态:firewall-cmd --state

       停止firewall  :systemctl stop firewalld.service

       禁止firewall开机启动 :禁止firewall开机启动

      好了到这里结束,访问 IP+端口

 

    6.你会看到这样的页面

     

      进入虚拟机 查看密码:cat /var/lib......  就是上面框框里的路径

     

   7.看到这界面jenkins就安装完成了,然后查看密码文件的密码复制到框里点击Continue进入选择插件安装界面选择,我选的第一个(推荐安装)或者第二个(自定义安装)

 

8.等一会插件安装完毕进入创建用户界面:

 

9.彻底卸载jenkins命令

    (1)service jenkins stop

    (2)yum clean all

    (3)yum -y remove jenkins

    (4)rm -rf /var/cache/jenkins

    (5)rm -rf /var/lib/jenkins/

 

 

二 . 部署推送到远程服务器

    1.首先给大家看一个图,这个比较好理解

      

 

    2. 配置环境 jenkins需要 很多环境这个贼麻烦,当初我也是搞了很久,身为开发还要兼职运维工作 ,不过多学一点你手上的砝码就多一点,好了不多说请往下看

       这里需要下载三个东西:(1)jdk1.8 这个不多说官网自己下;(2)apache-maven-3.6.0 官网下,我这里用的是最新的;                                                  (3) git 环境下载 我用的是gitlab 代码托管平台 ,参考:https://www.cnblogs.com/wenwei-             blog/p/5861450.html 

     下载完成之后配置环境:vim /etc/profile

     

      gitlab不需要配置环境变量但是要在页面上配置,不要走开后面更精彩!

 

   3.进入页面后安装插件如:

      Maven Integration 使我们可以开始一个maven项目作为任务

      Git plugin 使我们可以读取存放在git仓库的项目

      publish over ssh 顾名思义就是将提交的代码推送到 jenkins上

  如图在过滤里面选择以上三个插件即可!

 

 

   4.配置jenkins全局工具

è¿éåå¾çæè¿°

jdk在选取安装的时候,如果在我们的服务器上已经安装好的话,直接填写JAVA_HOME路径即可,否则jenkins自动安装的话,需要提供Oracle的账号以及密码

 

进入之后如下图:

这里注意Git环境必须安装,如果你不安装如图

 

5.开始构建项目

   这里我用的是Springboot 构建jar包的方式部署到远程服务器,ofcourse 你也可构建maven项目,如果用maven的话打成war发送到远程服务器Tomcat是一样的。步骤都一样,这个很好理解。

首先新建项目如图:

 

点击完之后如下图,描述这块记得写上,最开始这块没写,在构建项目的时候会有报错,报不能配置name[ ],这里写上就好了

 

 

后点击源码管理如下图,我们选择git,repository url  写gitlab仓库的地址,credentials是指信任,我们需要在gitlab中添加jenkins的公钥 ,在下图的key中填写jenkins服务器的公钥,title处填写jenkins,然后在到jenkins上就可以看到credentials处可以选择jenkins了,然后点击构建触发器选项卡 注:我这里用的是http方式的git仓库,只是为了先试试能否正常运行,当然你也可以使用shh方式的git地址。

 

 

点击触发器选项卡之后如下图,我们点击Build when a change is pushed to GitLab. GitLab CI Service URL: http://192.168.4.117:8080/project/test,记住这个url地址,待会我们需要在gitlab上配置  ,然后点击构建选项卡   构建环境暂不配置

点击构建选项卡之后如下图:maven version处选择我们在global tool configuration处配置的maven名称  goals处填写maven命令,因为我们要打包,所以填写clean package,不懂的可以去学一下maven命令,然后点击构建后操作选项卡

 

点击构建后选项卡之后如下图,选择send build artifacts over ssh

 

 

完成后接下来配置ssh,也就是要上传的测试服务器ssh信息

首先我们先要在jenkins服务器上生成秘钥,然后利用秘钥要进行免密登录

在jenkins服务器上执行ssh-keygen -t rsa,一路回车就可以  一路回车的话密码为空,这样就在/root/.ssh/下生成的两个文件id.rsa(私钥)和id.rsa.pub(公钥),我们需要把公钥的内容写到测试服务器(tomcat服务器上)的/root/.ssh/authorized_keys文件中  如果没有就新建一个,接下来我们开始配置

点击系统管理---系统设置

进去之后找到Publish over SSH项,如下图

 

详细解释:Passphrase是指在生成秘钥的时候设置的密码,由于我们都是一路回车下来的所以此处不用写

path to key是指私钥的位置/root/.ssh/id.rsa

key是指私钥的内容  path to key 和key任选其一即可

 name是指你要远程到tomcat的名称  随便写就可以,后期为了区分,所以我写了测试服务器

hostname是指测试服务器的ip

username是指测试服务器的用户

remote directory是指要放到测试服务器的目录,根据自己情况定义路径

 

然后点击测试看是否连接成功

 

 

到此,jenkins自动打包,上传就配置完成了,接下来我们验证一下,点击项目构建,控制台输出如下,

进入测试服务器前面/usr/local看是否有jar包,这里也有个坑注意:

这里的路径是指,测试服务器当前根路径而构建后的路径是指你将要把jar包放到哪个位置,两个路径不能写一样,不然会发不过去的

 

二 .提交代码到gitlab,Jenkins监听到自动打包部署

首先我说明一下,网上的教程大多都是不完整的,给出的全是成功的情况,所有这里我踩了很多坑。下面就总结下坑的地方

步骤:



gitlab上的配置:

Gitlab+Jenkinså®ç°èªå¨é¨ç½²

Gitlab+Jenkinså®ç°èªå¨é¨ç½²

Gitlab+Jenkinså®ç°èªå¨é¨ç½²

Gitlab+Jenkinså®ç°èªå¨é¨ç½²

注意注意注意,重要的事情说三遍:坑的地方,上面是正常的成功流程,如果你出现错误了

 

错误提示:

#很多朋友使用最新版本的gitlab做自动部署时,在增加web钩子那一步,
#点击test  push events时会报错:Url is blocked: Requests to the local network are not allowed

Gitlab+Jenkinså®ç°èªå¨é¨ç½²

 

解决方法:一定要使用admin的账号进入设置

 

#这是因为新版的gitlab为了安全默认禁止了本地局域网地址调用web hook
#我们在设置里允许就行,具体步骤如下:

 

Gitlab+Jenkinså®ç°èªå¨é¨ç½²

 Gitlab+Jenkinså®ç°èªå¨é¨ç½²

 

这里如果200就OK了......这里如果报错是 Hook executed successfully but returned HTTP 500 你就看看错误信息一堆的HTML错误,往下找会看到报错的详情~

还有一种错误是点击push events时转了很久,报错这个错误不好模拟,是因为你的虚拟机和gitlab的服务器通讯失败,虚拟机ping 物理机失败,这个超级简单自己解决!

 

从安装到搭环境到自动部署全部步骤已完成,如果有什么问题请在下方留言,此篇博客算是很详情了,花了两个多小时写的,请认真——∩

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值