使用Jenkins配置Git+必威Maven的自动化构建,本地安

Jenkins安装及配置

jenkins安装及配置-centos6.9,jenkins-centos6.9

Jenkins安装及配置

目录

1、安装java. 2

1.1安装说明... 2

1.2创建java目录... 2

1.3下载并解压... 2

1.4设置环境变量... 2

1.5验证JDK有效性... 3

2、安装Git. 3

2.1安装GCC软件套件... 3

2.2下载安装Git. 4

3、安装jenkins. 5

3.1下载安装... 5

3.2启动Jenkins. 5

3.3设置防火墙... 6

3.4错误解决方法... 7

4、快速配置Jenkins. 8

4.1基本设置... 8

4.2安装插件... 10

4.3设置插件... 11

4.4配置邮件... 12

5、创建并配置项目... 16

5.1新建项目,配置Git库... 16

5.2设置构建触发器... 18

5.3构建步骤设置... 20

5.4添加构建后操作... 21

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

从0开始搭建自动部署环境(续)

使用Jenkins配置Git+Maven的自动化构建

必威 1

目录

1、安装java

前言

上一篇从0开始搭建自动部署环境虽然环境搭建起来了,但是配置少了一部分步骤。本来应该写到上一篇中,但是这样做篇幅过长了。另外,此篇会使用自动部署一个同步在Github上的Spring Boot项目为例,介绍如何使用该自动部署环境。

实现背景:Jenkins通过给定的代码地址URL,将代码拉取到其“宿主服务器”(就是Jenkins的安装位置),进行编译、打包和发布到容器中。在Jenkins的宿主服务器中必须要有可以进行:代码clone(Git)、代码编译(Maven)、代码运行(Tomcat)的基本环境

在学习搭建Jenkins CI环境时踩过许多大坑小坑,记录了一些下来,以作备忘
有些坑踩完就忘了,只记录下记得的
后续研究时候继续踩坑再更新

1、安装java. 2

1.1安装说明

本说明基于服务器版本:虚拟机CentOs 6.9  内存4G

Java版本: 1.8

Jenkins版本:2.103

GItlab版本:10.1

自己注意java版本(建议用1.8以上)

建议安装vim: yum -y install vim-enhanced

 

Jenkins是一款持续集成CI(Continuous integration)系统,主要目标是监控软件开发流程,快速显示问题。减少重复过程,提高工作效率。

配置Global Tool Configuration

继上一篇,登录jenkins,完成上一篇没有完成的后续配置。Jenkins——》系统管理——》Global Tool Configuration,在其中配置JDK、git、Maven。

<html>
<table>
<tr>
<td>Tool</td>
<td>Configuration</td>
</tr>
<tr>
<td rowspan="2">JDK</td>
<td>别名=openjdk1.8.0</td>
</tr>
<tr>
<td>JAVA_HOME=/usr/lib/jvm/java</td>
</tr>
<tr>
<td rowspan="2">git</td>
<td>Name=git</td>
</tr>
<tr>
<td>Path to Git executable=/usr/bin/git</td>
</tr>
<tr>
<td rowspan="2">Maven</td>
<td>Name=maven3.5.2</td>
</tr>
<tr>
<td>MAVEN_HOME=/opt/apache-maven-3.5.2</td>
</tr>
</table>
</html>

一、   安装Git

1. Failed to connect to repository

为job设置git repository的时候报Failed to connect to repository
解决办法:本地安装git客户端,或者�在Jenkins全局系统设置那里指定git的执行路径。

1.1安装说明... 2

1.2创建java目录

[[email protected] ~]# mkdir /usr/java

[[email protected] ~]# cd /usr/java

 

安装插件并重启

  • Maven Integration plugin (Maven集成,否则新建的时候没有Maven Project)
  • Deploy to container Plugin (部署到Java容器中的插件)
  • Publish Over SSH (远程Shell)
  • Monitoring (监控Jenkins所消耗的系统资源,如内存使用等)

插件安装完成后需要重启jenkins。http://ip:8080/restart就能重启jenkins。

1、安装依赖

2. No JDK named ?null? found

任务执行失败的console里面有这样一句话:No JDK named ?null? found
解决办法:在Jenkins系统设置中指定有效JAVA_HOME路径

1.2创建java目录... 2

1.3下载并解压

可以本地先下载好再传服务器去,下载地址

--使用WinSCP工具传到/usr/java里,然后解压

 

 [[email protected] java]# tar -zxvf jdk-8u162-linux-x64.tar.gz

 

创建Docker本地仓库

参考Docker Registry 2.0

docker run -d -p 5000:5000 --restart always --name registry registry:2
       yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

3. node: command not found

针对command not found 我主要总结两种解决方案,对于网上说的那些方法我没看懂

  • 方案一:如果你使用service jenkins start启动了jenkins进程,那么久有可能出现Jenkins运行环境跟用户不同。最简单粗暴的方法是使用 java -jar /usr/lib/jenkins/kenkins.war
  • �方案二:把要用的命令创建一个快捷方式到/usr/bin,如 ln -s /usr/local/bin/node /usr/bin/,这样在Jenkins shell中就能用到node命令了。当然如果是node命令找不到的话可以直接使用Nodejs Plugin解决

1.3下载并解压... 2

1.4设置环境变量

 

[[email protected] java]# vim /etc/profile

 

在profile中添加如下内容:

 

#set java environment

JAVA_HOME=/usr/java/jdk1.8.0_162

JRE_HOME=/usr/java/jdk1.8.0_162/jre

CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

export JAVA_HOME JRE_HOME CLASS_PATH PATH

 

让修改生效:

[[email protected] java]# source /etc/profile

 

新建项目

hello项目是我写的一个用来测试环境的Spring Boot项目,代码托管在github上。我想实现的是:jenkins每隔15分钟自动检查github上的hello项目源码,如果项目有更新,就自动获取更新打包部署。

新建——》构建一个Maven项目。名称就叫hello,点击“OK”跳转到项目配置页面。具体配置如下:

  • 源码管理——》Git,Repository URL值为https://github.com/jeesun/hello
  • 构建触发器——》Poll SCM——》日程表,值为H/15 * * * *(设置每隔15分钟做一次检查)
  • Build——》Goals and options,值为clean package docker:build
  • Post Steps——》Add post-build step——》Execute shell,内容为
API_NAME="hello"
API_VERSION="0.0.1"
API_PORT=8761
IMAGE_NAME="127.0.0.1:5000/com.jeesun/$API_NAME:$BUILD_NUMBER"
CONTAINER_NAME=$API_NAME-$API_VERSION

cd $WORKSPACE/target
cp classes/Dockerfile .
docker tag 127.0.0.1:5000/com.jeesun/$API_NAME $IMAGE_NAME
docker push $IMAGE_NAME

cid=$(docker ps | grep "$CONTAINER_NAME" | awk '{print $1}')
if [ "$cid" != "" ]; then
 docker rm -f $cid
fi

docker run -d -p $API_PORT:8080 --name $CONTAINER_NAME $IMAGE_NAME

配置完成后,点击“Save”。选择页面左侧的“立即构建”,如果顺利,访问http://ip:8761,页面出现hello, new world,说明成功。

 

4. 如何设置源码库浏览器

在Jenkins使用Git SCM的时候有一项源码库浏览器的设置,起初不知道有何用,只是看了说明大概知道是会对每次build生成changes,然后并没有告诉怎么设置,选择一种浏览器后要填一个URL,然后就各种百度谷歌没找到答案。最后自己随便填了一个,build了一下,点击changes里面的链接,报404,看了一下URL的生成规则,才知道怎么设置。
对于githubweb的URL应该填https://github.com/�your_name/your_repo_name/

1.4设置环境变量... 2

1.5验证JDK有效性

 

[[email protected] java]# java -version

 

 

注意事项

如果无法访问http://ip:8761,需要确认防火墙是否关闭,或者选择开放8761端口。

2、下载Git

5. 单独发送邮件给对构建造成不良影响的责任人

必威 2

勾选了这个选项之后没什么反应,如果用的是git源码库,可以在系统设置中勾选自动创建提交人

1.5验证JDK有效性... 3

2、安装Git

 

参考

  1. jenkins new job 没有maven项目选项
  2. 使用Jenkins实现自动构建Maven项目
  3. Docker Registry 2.0

选择一个目录,存放下载的git,例如我的是:/home/test/,大家可以根据需求到官网下载相应的版本

6. 设置完权限之后无法登录怎么办

sudo vi /var/lib/jenkins/config.xml
将<useSecurity>true</useSecurity>改为false
重启Jenkins,重新设置权限

2、安装Git. 3

2.1安装GCC软件套件

用来编译git。如果安装过则忽略。

 yum install gcc

 

wget

7. 为Jenkins配ssh

可以直接将你的密钥放到/var/lib/jenkins/.ssh/下
也可以使用ssh的插件完成

2.1安装GCC软件套件... 3

2.2下载安装Git

确认当前没有装过git的rpm包(如有则卸载)

yum remove git

 

安装所需依赖

yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib zlib-devel gcc perl-ExtUtils-MakeMaker wget

 

 

下载并编译git

 

cd /usr/local/src/

wget

tar zxf git-2.15.1.tar.gz

cd git-2.15.1

./configure

make prefix=/usr/local/git all

make prefix=/usr/local/git install

 

按顺序执行即可。

 

添加git变量

echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc

 

使设置生效

source /etc/bashrc

 

查看git版本

git --version

 

查看git位置

which git

 

 

    

2.2下载安装Git. 4

3、安装jenkins

3、解压Git

3、安装jenkins. 5

3.1下载安装

wget -O /etc/yum.repos.d/jenkins.repo

rpm --import

yum install jenkins

 

wget -O /etc/yum.repos.d/jenkins.repo

rpm --import

yum install jenkins

建议用第一种即可。

 

因为下载的是一个zip,所以使用命令将其解压到git目录下:

3.1下载安装... 5

3.2启动Jenkins

 

修改Jenkins启动配置文件,指定java安装路径。

 vim /etc/init.d/jenkins

 

在candidates中第一行添加java路径,如下:

 

candidates="

/usr/java/jdk1.8.0_162/bin/java

/etc/alternatives/java

/usr/lib/jvm/java-1.6.0/bin/java

/usr/lib/jvm/jre-1.6.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-1.8.0/bin/java

/usr/lib/jvm/jre-1.8.0/bin/java

/usr/bin/java

"

 

 

修改Jenkins端口

vim /etc/sysconfig/jenkins

 

 

 

service jenkins start/stop/restart

chkconfig jenkins on

chkconfig --list |grep jenkins

jenkins         0:off   1:off   2:on    3:on    4:on    5:on    6:off

 

 

unzip v2.3.0 -d git

3.2启动Jenkins. 5

3.3设置防火墙

 

修改防火墙允许8080端口访问

vim /etc/sysconfig/iptables

 

加入

-A INPUT -p tcp -m state --state NEW -m tcp --dport 9090 -j ACCEPT

 

按i 即可编辑     按Esc再输入:wq回车即可保存并退出。

 

重启防火墙生效:sudo service iptables restart

保存防火墙设置:sudo service iptables save

永久关闭防火墙:chkconfig iptables off

永久开启防火墙: chkconfig iptables on

 

打开防火墙:service iptables start

关闭防火墙:service iptables stop

查看防火墙状态:service iptables status

 

输入ip地址+8080即可访问jenkins

 

 

3.3设置防火墙... 6

3.4错误解决方法

1:丢失密码

 jenkins登录密码在这个文件里

 

vi /var/lib/jenkins/secrets/initialAdminPassword

cat /var/lib/jenkins/secrets/initialAdminPassword

2:执行shell脚本提示没有权限

修改所有者即可

1) vim /etc/sysconfig/jenkins

 

2) 找到$JENKINS_USER改为 “root”:

$JENKINS_USER="root"

 

3)然后更改Jenkins home,webroot和日志的所有权:

chown -R root:root /var/lib/jenkins

chown -R root:root /var/cache/jenkins

chown -R root:root /var/log/jenkins

 

4).重新启动Jenkins并检查用户是否已被更改

service jenkins restart

 

3:启动成功,不能进入系统

  1、很可能是端口冲突导致的。先排查端口。

  2、防火墙没设置好导致的。

 

4、编译安装Git

3.4错误解决方法... 7

4、快速配置Jenkins

将其安装在“/usr/local/git”目录下,命令如下

4、快速配置Jenkins. 8

4.1基本设置

1:首次登陆系统需要解锁

 

 

查看文件并复制密码

cat /var/lib/jenkins/secrets/initialAdminPassword

 

 

2:进入后选择插件安装

 

 

取消所有选中(不装插件直接进入系统)

 

3:设置管理员账号进入系统

 

 

make prefix=/usr/local/git all

4.1基本设置... 8

4.2安装插件

-配置邮件提醒

Email Extension Plugin  

-拉取代码
Git plugin           

-设置钩子推送后及时构建
Gitlab Authentication plugin

Gitlab Hook Plugin

GitLab Plugin

-备份还原

ThinBackup

 

进入系统管理,点击管理插件,点击可选插件搜索出对应插件点击直接安装即可。

 

 

 

 

 

sudo make prefix=/usr/local/git install

4.2安装插件... 10

4.3设置插件

 先配置java和git,实现代码拉取功能

 

 

名称随便填,JAVA_HOME填实际地址。本次为/usr/java/jdk1.8.0_162

Path to Git executable 填写Git可执行文件的路径。设置错误拉取代码会出错。

本次为 /usr/local/git/bin/git  

可用which git查看路径

 

设置完保存即可。

 

 

4.3设置插件... 11

4.4配置邮件

为了实现邮件提醒功能

先进入系统设置

 

 

设置邮件:

SMTP server:smtp.exmail.qq.com

[email protected]

[email protected]*****

Default Subject: 构建通知:${BUILD_STATUS} - ${PROJECT_NAME} - Build # ${BUILD_NUMBER} !

Default Content:

 

    <!DOCTYPE html> 

    <html> 

    <head> 

    <meta charset="UTF-8"> 

    <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title> 

<style>

b{

font-size:16px;

}

td{

font-size:16px;

}

li{

font-size:16px;

}

</style>

    </head> 

     

    <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" 

        offset="0"> 

        <table width="95%" cellpadding="0" cellspacing="0" 

            style="font-size: 20px; font-family: Tahoma, Arial, Helvetica, sans-serif"> 

       <tr>

            <td>(本邮件是程序自动下发的,请勿回复!)</td>

        </tr>

        <tr>

            <td><h2>

                    <font color="#0000FF">构建结果 - ${BUILD_STATUS}</font>

                </h2></td>

        </tr>

            <tr> 

                <td><br /> 

                <b><font color="#0B610B">构建信息</font></b> 

                <hr size="2" width="100%" align="center" /></td> 

            </tr> 

            <tr> 

                <td> 

                    <ul> 

                        <li>项目名称 : ${PROJECT_NAME}</li> 

                        <li>构建编号 : 第${BUILD_NUMBER}次构建</li> 

                        <li>触发原因: ${CAUSE}</li> 

                        <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li> 

                        <li>构建  Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li> 

                        <li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li> 

                        <li>项目  Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li> 

                    </ul> 

                </td> 

            </tr> 

            <tr> 

                <td><b><font color="#0B610B">变更集</font></b> 

                <hr size="2" width="100%" align="center" /></td> 

            </tr> 

             

            <tr> 

                <td>${JELLY_SCRIPT,template="html"}<br/> 

                <hr size="2" width="100%" align="center" /></td> 

            </tr> 

            

            

        </table> 

    </body> 

    </html> 

 

系统自带邮件可以测试邮件设置是否成功

 

默认邮箱多个使用英文逗号隔开。设置好保存即可。

 

5、配置环境变量

4.4配置邮件... 12

5、创建并配置项目

 

vim /etc/profile

本文由必威发布于必威-操作系统,转载请注明出处:使用Jenkins配置Git+必威Maven的自动化构建,本地安

相关阅读