从0开始搭建自动部署环境,jenkins安装及配置

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、安装java

前言

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

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

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.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、安装依赖

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

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,说明成功。

 

1.4设置环境变量... 2

1.5验证JDK有效性

 

[[email protected] java]# java -version

 

 

注意事项

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

2、下载Git

1.5验证JDK有效性... 3

2、安装Git

 

参考

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

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

2、安装Git. 3

2.1安装GCC软件套件

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

 yum install gcc

 

wget

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

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

5.1新建项目,配置Git库

输入项目名称选择自由风格

 

 

2:源码管理选择git,输入库地址添加账号密码,输入分支名称

 

点击Add添加git账号密码

 

如过报错,查看错误提示。

 

提示无法解析主机,域名没有配置。

修改hosts文件

vim /etc/hosts

添加域名即可

 

 

export PATH=/usr/local/git/bin:$PATH

source /etc/profile

 

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

5.2设置构建触发器

 第一种:隔断时间对比git库,发现有变更立即触发构建。

 

构建触发器选择Poll SCM  输入 H/3 * * * *    ‘3’代表3分种对比一次。

 

第二种:设置git钩子,有推送事件立刻触发构建。

 

先勾选Build when a change is pushed to GitLab. GitLab CI Service URL:…….

再选择高级,点击生成按钮,生成一个Secret token

复制Secret token,和GitLab CI Service URL需要去git配置web hook使用。

(不同项目URL和token都不一样)

 

 

 

 

 

Gitlab hook设置

Gitlab版本10.1

1:进入项目选择设置

2:设置里选择集成

3:输入框输入对应URL和token

4:取消SSH验证,保存即可

生效后每次推送都会触发这个钩子,请求Jenkins执行构建任务。

版本不一样设置不一样,该设置适合新版本gitlab和新版Jenkins。

 

 

 

 

 

6、检查是否安装成功

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

5.3构建步骤设置

 

选择Execute shell

输入执行脚本

例:rm -f /var/lib/jenkins/workspace/OPM/common/config/main-local.php &&  cp -Rf /var/lib/jenkins/workspace/OPM/* /home/htdocs/opm-it.hjzd.com

 

代码拉取完会执行该脚本。

 

 git --version

5.3构建步骤设置... 20

5.4添加构建后操作

  构建结果可以设置邮件提醒用户。

构建后操作选择Editable Email Notification

 

 

 

 

 

注意以下三点即可

 

邮件下面点击高级设置配置邮件触发条件

 

触发条件选择全部

 

设置成功后会主页点击立即构建,构建后查看邮件发送是否成功。

 

 

 

成功发送的邮件模板为:

 

 

 

在控制台输出里查看构建日志。

钩子触发成功,构建成功,邮件发送成功说明项目已经配置成功。

 

Jenkins安装及配置 目录 1、安装java. 2 1.1安装说明... 2 1.2创建java目录... 2 1.3下载并解压... 2 1.4设置环...

此处使用源码安装,也可以使用yum安装:yum –y install git

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

 

 

二、        JDK、Maven安装

 

1、  下载和解压Maven

 

 tar xf apache-maven-3.3.9-bin.tar.gz

 

 mv apache-maven-3.3.9 /usr/local/maven

 

       

 

2、  安装JDK

 

tar xf jdk-8u111-linux-x64.tar.gz

 

mv jdk1.8.0_111/ /usr/local/java

 

 

 

 

 

3、配置环境变量

 

vim /etc/profile

 

JAVA_HOME=/usr/local/java

 

export MAVEN_HOME=/usr/local/maven

 

export PATH=$PATH:$MAVEN_HOME/bin

1、安装java

export JENKINS_HOME=/home/test/tomcat/webapps/jenkins

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)系统,主要目标是监控软件开发流程,快速显示问题。减少重复过程,提高工作效率。

JRE_HOME=/usr/local/java/jre

1.2创建java目录

[root@localhost ~]# mkdir /usr/java

[root@localhost ~]# cd /usr/java

 

JAVA_BIN=/usr/local/java/bin

1.3下载并解压

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

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

 

 [root@localhost java]# tar -zxvf jdk-8u162-linux-x64.tar.gz

 

JRE_BIN=$JRE_HOME/bin

1.4设置环境变量

 

[root@localhost 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

 

让修改生效:

[root@localhost java]# source /etc/profile

 

PATH=$PATH:$JAVA_BIN:$JRE_BIN

1.5验证JDK有效性

 

[root@localhost java]# java -version

 

 

CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

2、安装Git

 

export JAVA_HOME JRE_HOME JRE_BIN JAVA_BIN PATH CLASSPATH

2.1安装GCC软件套件

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

 yum install gcc

 

 

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

 

 

source /etc/profile

3、安装jenkins

4、检查是否安装成功

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

建议用第一种即可。

 

        java –version

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

 

 

        mvn –version

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.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、防火墙没设置好导致的。

 

三、          部署Jenkins

4、快速配置Jenkins

1、  将jenkins的war包放到Tomcat中并启动Tomcat,成功启动之后访问ip和端口如下:

4.1基本设置

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

 

 

查看文件并复制密码

cat /var/lib/jenkins/secrets/initialAdminPassword

 

 

2:进入后选择插件安装

 

 

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

 

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

 

 

       图片 1

4.2安装插件

-配置邮件提醒

Email Extension Plugin  

-拉取代码
Git plugin           

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

Gitlab Hook Plugin

GitLab Plugin

-备份还原

ThinBackup

 

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

 

 

 

 

 

 

4.3设置插件

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

 

 

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

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

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

可用which git查看路径

 

设置完保存即可。

 

 图片 2

4.4配置邮件

为了实现邮件提醒功能

先进入系统设置

 

 

设置邮件:

SMTP server:smtp.exmail.qq.com

ruanjianbu@hfhjzddata.com

Hjzd@*****

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、创建并配置项目

 

2、  安装插件

5.1新建项目,配置Git库

输入项目名称选择自由风格

 

 

2:源码管理选择git,输入库地址添加账号密码,输入分支名称

 

点击Add添加git账号密码

 

如过报错,查看错误提示。

 

提示无法解析主机,域名没有配置。

修改hosts文件

vim /etc/hosts

添加域名即可

 

 

 系统管理à管理插件à可选插件à过滤

5.2设置构建触发器

 第一种:隔断时间对比git库,发现有变更立即触发构建。

 

构建触发器选择Poll SCM  输入 H/3 * * * *    ‘3’代表3分种对比一次。

 

第二种:设置git钩子,有推送事件立刻触发构建。

 

先勾选Build when a change is pushed to GitLab. GitLab CI Service URL:…….

再选择高级,点击生成按钮,生成一个Secret token

复制Secret token,和GitLab CI Service URL需要去git配置web hook使用。

(不同项目URL和token都不一样)

 

 

 

 

 

Gitlab hook设置

Gitlab版本10.1

1:进入项目选择设置

2:设置里选择集成

3:输入框输入对应URL和token

4:取消SSH验证,保存即可

生效后每次推送都会触发这个钩子,请求Jenkins执行构建任务。

版本不一样设置不一样,该设置适合新版本gitlab和新版Jenkins。

 

 

 

 

 

    Deploy to container Plugin

5.3构建步骤设置

 

选择Execute shell

输入执行脚本

例:rm -f /var/lib/jenkins/workspace/OPM/common/config/main-local.php &&  cp -Rf /var/lib/jenkins/workspace/OPM/* /home/htdocs/opm-it.hjzd.com

 

代码拉取完会执行该脚本。

 

Maven Integration plugin

5.4添加构建后操作

  构建结果可以设置邮件提醒用户。

构建后操作选择Editable Email Notification

 

 

 

 

 

注意以下三点即可

 

邮件下面点击高级设置配置邮件触发条件

 

触发条件选择全部

 

设置成功后会主页点击立即构建,构建后查看邮件发送是否成功。

 

 

 

成功发送的邮件模板为:

 

 

 

在控制台输出里查看构建日志。

钩子触发成功,构建成功,邮件发送成功说明项目已经配置成功。

 

SSH plugin

Windows Slaves Plugin

Email Extension Plugin

Subversion Plug-in

     GIT plugin

3、  Jenjins系统设置

1)  系统管理àGlobal Tool Configuration

 

 图片 3

 

 图片 4

图片 5

 

4、Jenkins Location

 图片 6

 

这里配置的是ip加端口和一个路径名称,邮箱要进行设定,后期会发送jenkins执行的结果到邮件中

5、邮件通知

 图片 7

 

这里我配置的QQ邮箱,大家根据情况进行设置相应的smtp服务器,用户名、密码分别为自己的QQ邮箱何密码,如果不进行设置,后期jenkins构建项目的时候会报错,报错信息很好理解也很好找到是没有配置邮件的问题。

首先,要保证邮件的smtp和pop是开启状态的,这样的话才可以通过验证:

 图片 8

 

最后点击下边的应用、保存即可

5、Configure Global Security

然后回到系统管理,看到Configure Global Security 点击进去,根据下边进行配置即可

 图片 9

 

 

点击应用 保存之后,然后在屏幕的右上角,有一个登录-注册 ,点击注册即可实现用户的登录。

 图片 10

这里,如果是公司内网的话,或者最后搭建的jenkins是公司使用,那么最好用户名和密码为公司的账户密码,邮件也是公司的邮件,这样的话方便后期的操作。

至此Jenkins的基本配置完成。

创建Job

1、创建项目

点击登录之后,会看到下边的界面中:My Views

 图片 11

 

点击进去

 图片 12

 

点击:创建一个新任务

 图片 13

 

选择maven项目,点击OK,这里的Item名称是后边需要用到的,下边的配置也有用到这个的,大家可以很好的对应。

2、进行项目的配置

(1)源码管理选择Git,这个时候添加url之后,下边会报错,显示让去认证,认证即可(其他的安装中又遇到这个问题),如果认证失败,请下载认证Github Authentication plugin插件,这个在插件管理的可选插件中搜索安装。

我这里的rul是我在gitos上的一个项目,credentials是我在gitlab上的用户名和密码认证。

 图片 14

 

(2)构建触发器,就是什么时候执行jenkins的自动化部署

 图片 15

 

选择第一个,其他的基本是定时执行什么的,大家可以自行查找,查看如何设置,根据需要进行配置

(3)Post Steps

 图片 16

 

Goals and options后填 clean package install   -DskipTests

选择上图中的,然后下边 的Execute shell如下,脚本的编写在下边进行了详细的说明:

 图片 17

 

#!/bin/bash 

#copy file and restart tomcat 

 

export JAVA_HOME=/data/home/server/jdk

export CATALINA_HOME=/home/xuliugen/dubbo-provider

export CATALINA_BASE=/home/xuliugen/dubbo-provider

export BUILD_ID=dontKillMe

 

tomcat_path=/home/xuliugen/dubbo-provider

project=dubbo-provider

war_name=dubbo-provider.war 

war_path=http://132.153.131.237/:8022/jenkins/job/ManenDemo/ws/targetserver_port=8082 

file_path=~/.jenkins/jobs/ManenDemo/workspace/spring_provider/target

 

$tomcat_path/bin/shutdown.sh 

 

sleep 3s 

 

echo "rm -rf ${tomcat_path}/webapps/ROOT/*"

 

rm -rf ${tomcat_path}/webapps/ROOT/*

 

cd $file_path

 

cp ${war_name} ${tomcat_path}/webapps/ROOT/

 

cd $tomcat_path/webapps/ROOT/

 

unzip ${war_name}

 

rm -rf ${war_name}

 

sleep 5s 

 

#$tomcat_path/bin/startup.sh

 

cd $tomcat_path/bin/

./startup.sh

 

echo "server restarted"

(4)邮件通知

 图片 18

 

至此基本设置完毕,点击应用、保存

(5)立即构建

点击左上角的立即构建

 图片 19

 

然后看到下边的Build History 点击蓝色的进去,会进入Console

 图片 20

 

下边是进行jar的下载,会下载到宿主服务器的maven仓库中:

 图片 21

 

下边的信息表示项目编译通过:

 图片 22

 

下边是运行脚本的信息:

 图片 23

 

脚本的分析

在Jenkins的服务器上查看:

 图片 24

 

 图片 25

 

可以看到在/root/.jenkins这个目录,实际存放了Jenkins拉取Git代码之后编译好war的位置,到此,大家也许都该明白了,编译后的位置就在这里啊!然后,接着是部署到宿主服务器的Tomcat容器中,如何将编译好的war放到tomcat中,这就需要脚本来完成,也是上述过程中配置的过程,下边对每一行进行分析。

首先我们应该明白,将编译好的war放到tomcat容器中,我们首先要知道这两个的位置:编译后war的位置和目标容器的位置,很显然我们是知道的。

1、脚本文件的头,这个没得说

#!/bin/bash 

2、环境变量设置

export JAVA_HOME=/data/home/server/jdk

export CATALINA_HOME=/home/xuliugen/dubbo-provider

export CATALINA_BASE=/home/xuliugen/dubbo-provider

export BUILD_ID=dontKillMe

上边的各个位置,大家也许都知道,CATALINA_HOME和CATALINA_BASE的位置就是Tomcat容器的位置,这里根据需求我将Tomcat容器的名字改为dubbo-provider了,如果改成/home/xuliugen/tomcat是不是更好理解。

export BUILD_ID=dontKillMe这一句很重要,因为该job启动完后执行下一job,jenkins直接把tomcat进程杀了,所以无论脚本中怎么写了启动tomcat的命令,他是不会启动的。虽然上述截图中显示了Tomcat started、server restarted但是访问项目地址是访问不了的,这在:其他问题的第二个说明了这个问题。

3、其他路径位置

tomcat_path=/home/xuliugen/dubbo-provider #我的Tomcat位置

project=dubbo-provider #我的项目编译的名称

war_name=dubbo-provider.war  #最后打包的war名称

war_path=http://132.153.131.237/:8022/jenkins/job/ManenDemo/ws/targetserver_port=8082 #宿主服务器的ip何端口

file_path=~/.jenkins/jobs/ManenDemo/workspace/spring_provider/target  #编译好的war包存放地址

这个:war_path 其实也就是Jenkins的宿主服务器位置IP,端口为jenkins运行的端口,大家只需要将ip地址端口ManenDemo换成自己的即可;

file_path:就是Jenkins帮我们编译好的项目war的位置,上图中大家也可以看到,并且大家不可以完全按照上边的路径,要找到自己宿主服务器上实际war的位置,进行设置。

4、耳熟能详的执行命令

下边就是我们在使用原始方式,部署war的命令,大家很简单的可以理解,其中:

注意:个人写脚本的能力有限,所以我是假设项目已经在运行的情况下,因此我上来就是先关闭Tomcat,(正确的方式,应该判断端口是否打开,如果本身tomcat未启动,我的这种情况,会在Jenkins的Console中报拒绝连接的问题,如下图)。

 图片 26

 

另外用到了sleep 3s 这个可以让线程休眠一下,这样的话可以看一下tomcat的日志信息。

下边的脚本就是删除原来容器中的文件,然后将编译好的war移动到容器中,解压。运行tomcat。

$tomcat_path/bin/shutdown.sh 

sleep 3s 

echo "rm -rf ${tomcat_path}/webapps/ROOT/*"

rm -rf ${tomcat_path}/webapps/ROOT/*

cd $file_path

cp ${war_name} ${tomcat_path}/webapps/ROOT/

cd $tomcat_path/webapps/ROOT/

unzip ${war_name}

rm -rf ${war_name}

sleep 5s 

cd $tomcat_path/bin/

./startup.sh

echo "server restarted"

将项目布署到远程Tomcat

上述创建项目,可以看出是在本地进行执行的,也就是进行编译后执行的Tomcat是何Jenkins的宿主服务器是在一起的,这很显然不符合我们常规的公司及其部署的方案,通常是将编译之后的代码在运行到其他的Tomcat服务器中的,下边有两种方式,将编译之后的项目部署到远程服务器中。

1、使用脚本的方式部署到远程服务器

采用ansible工具实现:

1)、首先在jenkins服务器上安装ansible,安装方式见ansible安装文档。

2)、在服务器上准备了两个脚本:一个是停tomcat脚本,一个是启动tomcat脚本;

图片 27图片 28

 

 

3)、在ansible的hosts文件(一般放在/etc/ansible/),添加tomcat端的主机ip、ssh端口、用户、密码。

 图片 29

 

点击:创建一个新任务

 图片 30

 

选择maven项目,点击OK,这里的Item名称是后边需要用到的,下边的配置也有用到这个的,大家可以很好的对应。

2、进行项目的配置

(1)源码管理选择Git,这个时候添加url之后,下边会报错,显示让去认证,认证即可(其他的安装中又遇到这个问题),如果认证失败,请下载认证Github Authentication plugin插件,这个在插件管理的可选插件中搜索安装。

我这里的rul是我在gitos上的一个项目,credentials是我在gitlab上的用户名和密码认证。

 图片 31

(2)构建触发器,就是什么时候执行jenkins的自动化部署

 图片 32

 

选择第一个,其他的基本是定时执行什么的,大家可以自行查找,查看如何设置,根据需要进行配置

(3)Post Steps

 图片 33

 

Goals and options后填 clean package install   -DskipTests

选择上图中的,然后下边 的Execute shell如下,脚本的编写在下边进行了详细的说明:

 

 图片 34

图片 35

 

将ansible命令文件里面的内容根据自己的需要粘贴到上图中的command处。

然后先点Apply—再点保存。

保存完成后执行立即构建。

2、使用Deploy to container Plugin插件部署到远程服务器

上述的开始阶段就安装了这个插件,下边就开始发挥其作用。

 

 图片 36

 

在创建的Job左侧点击设置,其他配置何在远程搭建项目是一致的,不同的是在这个地方:

 图片 37

 

以前我们在编译之后,将编译后的通过脚本补助到Jenkins的宿主服务器,使用插件,就不需要这种方式了。

 图片 38

 

还有就是的在构建之后,将编译后的文件**/target/dubbo-provider.war(就是上边的~/.jenkins/jobs/ManenDemo/workspace/spring_provider/target目录)部署到下边的远程Tomcat容器中;这里Containers的用户名和密码是Tomcat管理员的账户密码,Tomcat URL 就是你需要进行部署的远程Tomcat服务器的ip和端口。

这里需要进行设置的是远程Tomcat的管理员信息,修改远程Tomcat容器下的conf–tomcat-users.xml文件,在内添加下边的内容:

<role rolename="manager"/>

<role rolename="manager-gui"/>

<role rolename="manager-script"/>

<role rolename="admin"/>

<user username="admin" password="admin" roles="admin,manager,manager-script,manager-gui"/>

即可实现远程的访问,测试是可以通过的,但是有一个问题,通过这种方式,只将war复制到了wenapps下:

 图片 39

 

因此这种方式的话,我们访问的时候必须是ip、端口和项目名,例如:

http://115.159.151.247:8030/dubbo-provider/

当然这种方式 也是在实际的应用中不提倡的,解决方式就是修改Tomcat默认的访问路径即可,设置Tomcat–conf–server.xml文件如下:
在Host节点之间添加:

<Context path="" docBase="dubbo-provider" debug="0" reloadable="true" />

 图片 40

 

或者在docBase里边输入项目的绝对路径,例如我的:

<Context path="" docBase="/home/xuliugen/dubbo-provider/webapps/dubbo-provider" debug="0" reloadable="true" />

然后重启Tomcat,这样的话, 和http://ip:8030这两种方式都可以访问到该项目。

 

 图片 41

 

其他问题

1、部署项目的时候报错

 图片 42

 

这个大家很好理解,是因为下载jar失败的问题,由于是第一次使用Maven,需要第一次下载很多jar到Maven仓库中,由于网络的问题下载失败,大家可以多次构建让他重新下载,或者直接到: 根据报错的jar,在maven2中找到自己缺失的jar,然后在/root/.m2/repository 相应的位置添加jar即可。

2、编写脚本文件启动tomcat但是项目仍然运行不起来

就是上边说道的问题了:
添加:export BUILD_ID=dontKillMe,因为该job启动完后执行下一job,jenkins直接把tomcat进程杀了,所以无论脚本中怎么写了启动tomcat的命令,他是不会启动的。

3、遇到下边的问题

 图片 43

 

这就是在系统设置的时候,设置的git的地址不对,上述已经说明了,应该是git的可执行文件的地址,如果只是git的目录,是无法找到git这个可执行文件的,如下:

 图片 44

 

可以看出使用的是这个:/usr/local/git/bin/git 进行git仓库的配置何代码的拉取,因此这设置git的目录,jenkins默认是不会找bin目录下的git可执行文件的。

 

本文由星彩网app下载发布于星彩网app下载,转载请注明出处:从0开始搭建自动部署环境,jenkins安装及配置

TAG标签: 星彩网app下载
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。