linux服务器安装jenkins

一、环境准备

1.1 环境介绍

名称版本下载地址
linux7.0http://mirrors.163.com/centos/
git2.22.0https://github.com/git/git/releases
jdk8http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
maven3.6.1http://mirror.bit.edu.cn/apache/maven/maven-3

我所有的资源文件都放到/opt/resources下

1.2 jdk安装

[root@bogon resources]# cd /opt/resource
[root@bogon resources]# tar -zxvf jdk-8u40-linux-x64.tar.gz -C /opt
[root@bogon resources]# vi /etc/profile
--------------------------------------------------------------------------------------
#最下面添加如下内容:
#jdk
export JAVA_HOME=/opt/jdk1.8.0_40
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
---------------------------------------------------------------------------------------
[root@bogon resources]# source /etc/profile
[root@bogon resources]# java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)

1.3 maven安装

  • 下载解压maven安装包
[root@bogon resources]# cd /opt/resources/
[root@bogon resources]# wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
[root@bogon resources]# tar -zxvf apache-maven-3.6.1-bin.tar.gz 
[root@bogon resources]# mv apache-maven-3.6.1 ../
  • 配置环境变量
[root@bogon resources]# vi /etc/profile
----------------------------------------------------------------------------------------------------------------
#maven 添加:
export MAVEN_HOME=/opt/apache-maven-3.6.1
export PATH=$PATH:$MAVEN_HOME/bin
----------------------------------------------------------------------------------
[root@bogon resources]# source /etc/profile
[root@bogon resources]# mvn -v
Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-05T03:00:29+08:00)
Maven home: /opt/apache-maven-3.6.1
Java version: 1.8.0_40, vendor: Oracle Corporation, runtime: /opt/jdk1.8.0_40/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"

1.4 git安装

  • 下载git安装包
[root@bogon resources]# wget https://codeload.github.com/git/git/tar.gz/v2.22.0

耐心等待下载完成。我们可以看到下载后的文件名是v2.22.0,并不是压缩包的格式,不用担心,这只是链接的问题,手动修改文件名为git-2.22.0.tar.gz

[root@bogon resources]# tar -zxvf git-2.22.0.tar.gz -C /opt
[root@bogon resources]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
[root@bogon resources]# yum remove git
[root@bogon resources]# cd /opt/git-2.22.0/
  • 编译git源码
[root@bogon resources]# make prefix=/usr/local/git all

在这里插入图片描述

  • 安装git至/usr/local/git路径
make prefix=/usr/local/git install

在这里插入图片描述

  • 配置环境变量
[root@bogon opt]# vim /etc/profile
----------------------------------------------------------------------------------------------------
#添加
export PATH=$PATH:/usr/local/git/bin
---------------------------------------------------------------------------------------------------
[root@bogon opt]# source /etc/profile
[root@bogon opt]# git --version
git version 2.22.0

1.5 gitlab配置ssh key

ssh-keygen -t rsa -C 'xxx@xxx.com'		//然后一路回车(-C 参数是你的邮箱地址)

在这里插入图片描述

  • 复制ssh值到gitlab上面
[root@bogon .ssh]# cat /root/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDS0Bxbd+wIS9mnKNtYln1E7/fHoZ3duup9HWKg3jrH+rOtCUJbvK0r6+aIss4rumT6N7m2FYwjPCEzj+rnebuUXAcEN3BCgZDpgQJqkUGPLhpCRvhD05qmgT16u0hr+Hsz+QSJeetdhTsBzn+St6DD+HDX6Sm+zrfslLmUED3YYmxc8cglAUetIuBCRFl3CduvTjnbMXj5kkxJCAHBt9bg84LRIs+oSO484BZarwcAeas1pNyGwwXndbdCWG6z/XCFrEt/n2McoBhpaH2DbOz5eRAYftHClzp4uD3WHopQ4ARuuwHKSMXMAzyJ23sRAVanu2mGETpvR+z1cNS9XP2N hld@imlaidian.com

复制上面的值到gitlab
在这里插入图片描述

1.6 jenkins安装

这里推荐使用yum方式安装Jenkins,最简单方便。
yum的repos中默认是没有Jenkins的,需要先将Jenkins存储库添加到yum repos

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

在这里插入图片描述

  • yum安装Jenkins
yum install jenkins

现在Jenkins已经安装好了,不过启动之前最好稍微修改一下配置。默认情况是Jenkins是使用Jenkins用户启动的,但这个用户目前系统并没有赋予权限,这里我们将启动用户修改为root;另外Jenkins默认端口是8080,这个跟tomcat的默认端口冲突,我们也修改一下默认端口。
输入命令进入Jenkins配置文件

vi /etc/sysconfig/jenkins

在这里插入图片描述
此处修改配置

JENKINS_USER="root"
JENKINS_PORT="8081"

修改完配置后,保存退出。
好了,现在配置文件也修改好了,可以启动Jenkins了。
输入启动命令以启动Jenkins服务。

service jenkins start

在这里插入图片描述
出现OK表示Jenkins启动成功。

如果启动失败 出现如下所示在这里插入图片描述
执行status jenkins.service发现如下错误信息:
在这里插入图片描述
解决方案:

[root@iZ2ze13kpist8bmp2hsgn3Z bin]# vi /etc/init.d/jenkins
---------------------------------------------------------------------------------------------------------------------------
candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/lib/jvm/java-11.0/bin/java
/usr/lib/jvm/jre-11.0/bin/java
/usr/lib/jvm/java-11-openjdk-amd64
/usr/bin/java
/opt/jdk1.8.0_40/bin/java			#添加jdk路径
"
-----------------------------------------------------------------------------------------------------------------------
[root@iZ2ze13kpist8bmp2hsgn3Z bin]# systemctl daemon-reload

重新执行 service jenkins start 启动服务

在浏览器输入ip:8081进入Jenkins登录页面
在这里插入图片描述
进入登录页面后,Jenkins提示我们需要输入超级管理员密码进行解锁。根据提示,我们可以在/var/lib/jenkins/secrets/initialAdminPassword文件里找到密码。

tail /var/lib/jenkins/secrets/initialAdminPassword

在这里插入图片描述
找到密码后,复制密码,粘贴到Jenkins解锁页面,点击Continue继续初始化配置。
有可能会出现jenkins离线提示
在这里插入图片描述
解决方法:
打开配置页面:http://ip:8081/pluginManager/advanced ,修改升级站点https协议改为http,如下图:
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191216155929971.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhbjk0OTQxNzE0MA==,size_16,color_FFFFFF,t_70
在这里插入图片描述
在这里插入图片描述
提交完之后,重启Jenkins:service jenkins restart
重新ip:8081访问jenkins。

没出现jenkins离线的话,短暂的等待后,进入插件安装页面
在这里插入图片描述
这里我们点击的Install suggested plugins,安装默认插件,当然你也可以点击另一个按钮安装指定的插件。
点击后,页面进入了插件下载安装页面。

在这里插入图片描述
耐心等待全部安装完成。安装完成后,页面自动进入了管理员账户注册页面。
在这里插入图片描述
这个页面大家肯定都不陌生,自己输入信息注册吧。输入完信息点击Save and Finish
在这里插入图片描述
默认地址不用修改,保存并完成
在这里插入图片描述
点击Start using Jenkins,进入Jenkins主页面。
在这里插入图片描述

二、配置jenkins自动化部署

这里需要先准备好一个gitlab项目,可以参考上传代码到gitlab

2.1 jenkins全局工具配置

在这里插入图片描述
在全局工具配置页面,我们可以配置JDK、GIT、maven。

  • 这里我们先配置JDK,点击新增JDK,配置上面安装jdk时的路径

在这里插入图片描述

  • 配置GIT路径
    在这里插入图片描述
  • maven配置
    在这里插入图片描述
    点击Save,GIT配置完成

2.2 jenkins配置

创建一个新任务
在这里插入图片描述
general配置
在这里插入图片描述
Repository URL字段填写git远程仓库地址,你可以从github上找到
在这里插入图片描述
进入任务配置页面,在源码管理选择git
在这里插入图片描述
点击添加按钮弹出添加账号,添加完账号之后上面红色报错信息一般就会消失。
在这里插入图片描述
如果还是报错的话,到jenkins服务器上面执行:

 [root@iZ2ze13kpist8bmp2hsgn3Z sysconfig]#  /usr/local/git/bin/git ls-remote -h -- git@192.168.179.132:root/template.git HEAD
The authenticity of host '192.168.179.132 (192.168.179.132)' can't be established.
ECDSA key fingerprint is SHA256:UVFQw/pMyVxMoelXDBPlXN+p1oahP0vnG08FfWLxJpA.
ECDSA key fingerprint is MD5:67:4a:f1:03:88:1d:a0:51:d9:e6:3f:dd:2a:1d:9e:68.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.179.132' (ECDSA) to the list of known hosts.
//报错提示host不识别,所以需要去/etc/hosts配置一下ip
[root@iZ2ze13kpist8bmp2hsgn3Z sysconfig]# vi /etc/hosts
-----------------------------------------------------------------------------------------------------------------------------
//添加一行配置,这里我gitlab和jenkins安装到同一台服务器上 所以配置成localhost
192.168.179.132		localhost
------------------------------------------------------------------------------------------------------------------------------

在项目控制台页面,点击立刻构建,来测试Jenkins是否可以成功从git仓库下载代码。
在这里插入图片描述
等待构建执行结束,在服务器进入Jenkins工程目录/var/lib/jenkins/workspace。可以看到目录下有文件夹template。进入文件夹,可以看到项目相关代码
查看相关代码
至此Jenkins使用GIT下载代码配置成功。

2.3 Jenkins使用maven构建代码

构建选择调用顶层maven目标
在这里插入图片描述
如下图配置
在这里插入图片描述
现在使用maven构建代码也配置好了,我们来测试一下,在任务页面点击立即构建,等待执行成功。
在这里插入图片描述
执行成功后,进入Jenkins工程目录,发现/var/lib/jenkins/workspace/template文件夹下多出了个build文件下,里面有构建后的文件,在target文件夹下,可以找到构建后的工程文件publicTools.jar
至此,通过Jenkins使用git下载代码并使用maven构建工程成功

2.4 配置Jenkins使用SSH插件推送jar包到其他服务器,并启动jar包

现在我们已经可以通过maven构建用git下载的代码了,还需要将构建后的jar包推送到其他服务器去运行。Jenkins提供了SSH传输的插件,我们可以使用插件来推送文件。
先来安装SSH插件,从系统管理进入管理插件页面。
在这里插入图片描述
在可选插件中找到Publish Over SSH,选中后点击直接安装。
在这里插入图片描述
安装中页面,勾选上安装完成后重启,耐心等待安装完成。
在这里插入图片描述
现在插件安装好了,开始配置插件。从系统管理进入系统设置页面。
在这里插入图片描述
在页面中找到Publish over SSH,点击增加。
在这里插入图片描述
Name起一个别名,这里叫node132;Hostname填写服务器ip地址;Username填写服务器登录用户名;Remote Directory填写登录后路径;点击高级打开扩展页面,勾选上使用密码认证,在密码里填写登录用户名对应的密码。
在这里插入图片描述
全部填写好后,点击Test Configuration测试是否可以成功访问服务器,如果填写的信息都正确,应该提示Success,点击保存完成访问服务器的配置。

现在设置好了访问服务器,我们来配置把jar包传过去运行。
打开任务,进入任务配置页面,在构建后操作栏目下,点击增加构建后操作步骤,选择Send build artifacts over SSH。
在这里插入图片描述
在配置页面填写参数,Name选择我们刚才配置的服务器node132;Source files输入我们希望上传的包相对于工程根目录的路径,根据maven构建的位置,这里应该填target/publicTools.jar;Remove prefix是移除前缀,这里填写target/,如果不填的话,插件会把target/publicTools.jar连文件夹一起传过去,填写了就会只传一个publicTools.jar文件;Remote directory是服务器传接收上传文件的路径;最后Exec command为上传成功后在服务器上执行的命令。这里我们输入如下命令
在这里插入图片描述
服务器/work/product/template目录下创建一个restart.sh脚本

cat restart.sh
----------------------------------------------------------------------------------------------
#!/bin/bash
#查询进程id
ID=`ps -ef | grep "publicTools.jar" | grep -v "$0" | grep -v "grep" | awk '{print $2}'`
echo $ID
echo "---------------"
for id in $ID
do
# 杀死进程
kill -9 $id
echo "killed $id"
done
echo "---------------"
#重新启动项目
nohup /opt/jdk1.8.0_40/bin/java -jar   /work/product/template/publicTools.jar --server.port=8092 --debug > /work/product/template/printout.log 2>&1 &
---------------------------------------------------------------------------------------------

至此ssh上传jar包配置完成,再次点击立即构建,控制台输出,构建成功
在这里插入图片描述
查看服务器相关目录下是否存在jar包以及jar包是否启动
在这里插入图片描述

2.5 jenkins配置gitlab钩子

  • 安装插件Gitlab Hook Plugin插件
    在这里插入图片描述
    安装完插件之后执行service jenkins restart重启jenkins服务
  • 配置钩子
    在Jenkins的每个任务中,在钩子的Build Triggers配置处获取到Jenkins生成的钩子回调地址,并且可以配置Secret token。后面需要将这两个信息copy到GitLab上的配置中,如下:
    在这里插入图片描述
  • gitlab配置钩子
    在GitLab端可以配置全局的钩子,也可以在项目上配置钩子(推荐直接在项目上配置,可以细粒度的配置)。进入项目后选择Settings -> Integrations,就进入了钩子配置页面。每一个项目可以配置多个钩子,根据不同的触发条件进行配置。比如我们之前项目会安装测试环境和开发环境,根据不同的项目分支(Branch)进行配置和条件触发。

进入页面,

1、将jenkins上的钩子地址和Secret token拷贝到上面,

2、并且配置触发条件,我们一般选择

Push events 往仓库中进行push操作,并且可以配置分支

Merge request events 往该分支上进行merge操作时

其他是提交Comments,往tag上推,提问题等就可以不用配置了。。。
在这里插入图片描述
页面测试钩子
在这里插入图片描述
点击后,如果事件发生成功:
在这里插入图片描述
再看看Jenkins上是否已经触发了:
在这里插入图片描述
至此安装配置完成

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值