关于jenkins:搭建Jenkins并构建项目

Jenkins是个自动化构建部署工具。不须要咱们在应用原始的部署伎俩,极大的缩短了保护老本。

上面简要说一下本人应用的过程构建的maven我的项目和react我的项目

一.筹备环境

Jenkins既然是做为构建部署工具,首先就须要拿到咱们的源码,其次再做编译打包,最初放到咱们的服务器目录下,启动。那么就须要咱们开发时用到的各种工具,比方jdk,maven,git,nodejs等,有的我的项目可能还会波及到Python,所以咱们还须要装置这些工具及环境。

jdk装置

在线下载:

wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm 

手动下载及装置:
官网下载一个jdk8(当然别的版本也能够),而后将jdk-8u131-linux-x64.tar.gz放到咱们须要的目录下,比方/usr/local/java/,应用命令tar -zxvf jdk-8u131-linux-x64.tar.gz将其解压。
而后须要配置java的环境变量,执行 vim /etc/profile 命令并在文件最初加上如下配置:

# Java 8u131 environment
export JAVA_HOME=/usr/local/java/jdk1.8.0_131
export JRE_HOME=/usr/local/java/jdk1.8.0_131/jre
export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

保留退出,最初确保批改的/etc/profile文件失效,并用命令验证装置胜利

source /etc/profile
java -version

maven 装置

在线下载:

wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

手动下载及装置:
在官网上下载了tar.gz包,这里不倡议应用最新的3.8.1版本,而是抉择了3.6.3(点此下载)这个版本(3.8.1对https敏感,如果是http,则会呈现 downloading from maven-default-http-blocker: http://0.0.0.0/xxx这种问题)。
将咱们下载的apache-maven-3.6.3.tar.gz放到目录下,比方 /usr/local/maven

cd /usr/local/maven/
tar -zxvf apache-maven-3.6.3.tar.gz

这里须要配置maven的本地仓库地址以及镜像地址,这个都是在apache-maven-3.6.3/config/setting.xml中设置。不设置则应用默认的配置。

<localRepository>/data/maven/maven-repository</localRepository>
...
...
<mirrors>
    <mirror>
      <id>public</id>
      <mirrorOf>central</mirrorOf>
      <name>public</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>
  </mirrors>

当设置结束后,咱们还须要配置maven的环境变量,在/etc/profile 文件开端加上

# Maven
export MAVEN_HOME=/usr/local/maven/apache-maven-3.6.3
export PATH=${PATH}:${MAVEN_HOME}/bin

保留退出,最初确保批改的/etc/profile文件失效,并用命令验证装置胜利

source /etc/profile
mvn -v

git装置

在线下载:

wget https://www.kernel.org/pub/software/scm/git/git-2.32.0.tar.gz 

手动下载及装置:
官网找到linux版本的git,将其下载并放到linux须要的目录下,比方/usr/local/git,执行命令tar -zxvf git-2.32.0.tar.gz 将其解压。
而后配置git的环境变量,这一步与配置jdk一样,须要在 vim /etc/profile文件的开端加上如下内容:

# Git 2.32.0
export GIT_PATH=/usr/local/git/bin
export PATH=${PATH}:${GIT_PATH}

保留退出,最初确保批改的/etc/profile文件失效,并用命令验证装置胜利

source /etc/profile
git -v

nodeJS装置

在线下载:

wget http://nodejs.org/dist/v14.17.4/node-v14.17.4.tar.gz

当然也有人用上一步搭建好的git来下载的,这里就不做阐明了。

手动下载及装置:
官网下载LTS版本,放到服务器比方/usr/local/nodejs下,能够看到是一个tar.xz文件,咱们通过两个命令解压:

xz -d node-v14.17.4-linux-x64.tar.xz
tar -xcf node-v14.17.4-linux-x64.tar

进入到node-v14.17.4-linux-x64目录下 执行./bin/node -v,能正确失去版本号即可

接下来咱们须要配置一个软连贯使node环境失效:

ln -s /usr/local/nodejs/node-v14.17.4-linux-x64/bin/npm   /usr/local/bin/ 
ln -s /usr/local/nodejs/node-v14.17.4-linux-x64/bin/node   /usr/local/bin/

最初命令验证:

node -v

Tomcat 装置

Tomcat在咱们的零碎中是作为Jenkins的服务容器
在线下载:

wegt https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.69/bin/apache-tomcat-8.5.69.tar.gz

手动下载及装置:

官网中找到左侧的Download,抉择本人须要的版本进行下载,我这里下载了8.5.69这个版本,而后将tar.gz放到须要的目录下,比方 /opt/software/tomcat/。并将其解压:

tar -zxvf apache-tomcat-8.5.69.tar.gz

而后咱们做一些简略配置

  1. 批改tomcat端口号
    批改./config/server.xml文件,将SHUTDOWN端口的8005 ,http端口的8080别离批改为9127和9300。
  2. 配置字符集(能够先不改,呈现乱码再思考)
    批改./config/server.xml文件,在上一步批改的http端口下退出配置URIEncoding="UTF-8"
<Connector port="9300" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8" />
  1. 配置tomcat内存(能够先不改,呈现性能问题再思考)
    批改 ./bin/catalina.sh文件,能够在文件第二行退出上面代码(这里内存大小依照理论需要调整)
JAVA_OPTS="-server -Xms128m -Xmx256m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m"

最初咱们启动tomcat,进入 ./config/bin下,执行命令 ./start.sh,会在./logs/下生成Catalout.log文件,咱们再拜访http://ip:9300就能够看到tomcat的页面了

二.Jenkins启动配置

第一步 启动

官网下载jenkins的war包,并将其放到上一步搭建好的tomcat目录./webapp目录下。期待Jenkins解压并启动后,拜访http://ip:9300/jenkins,就能进入到jenkins的页面了。成果如下图

第一次拜访新的Jenkins时,零碎会要求应用主动生成的明码对其进行解锁。这个明码能够在tomcat输入的日志中找到,也能够在页面上提供的门路中找到。

第二步 插件抉择

这时会呈现一个选择题:

  1. 装置举荐插件
  2. 抉择所需插件装置
    下一步就会举荐装置插件,这里我抉择了后者(我第一次依照举荐来装置插件,可能是我网不好,于是第二次我就抉择了本人装插件)。

官网也提供了插件的查问形式,这里能够间接找到须要的插件,以及以后插件须要的其余依赖插件,十分不便

或者也提供了所有插件的下载地址,这里就能够找到所有的插件。

上面贴出我装置的插件列表,只装置了汉化和maven,git等根底插件,这里只有36个。能够一次性都装置后重启,曾经蕴含所有插件依赖关系,不须要再有额定的插件。

装置实现后大略在插件治理列表中会存在大略几十个插件。

第三步 创立用户

此时咱们须要创立第一个用户,不想记太多的账号密码,索性就不创立了,间接跳过到下一步。这个账号当前须要也是能够创立。这样就到了Jenkins的工作页面了。

第四步 系统管理》全局工具配置

在应用前咱们还需将上几步中的maven和git等做肯定的配置:
1.Maven配置:默认就好,因为咱们配置交由Maven本人治理了

2.JDK:新增JDK,并配置咱们jdk门路

3.Git:增加git,并配置git装置门路

4.Maven:新增Maven,应用咱们本人装置的maven

最初保留。

第五步 系统管理》凭据

这个就是用来配置我的项目git账号,服务器账号等设计到权限的中央

能够在全局新增一个

其中ID和形容就是用来形容这个凭证的,轻易填写

构建我的项目

这里先贴出来一个官网的用户手册,不明确的也能够参考这里的创立流程。
上面贴出来两个我本人应用的例子:

示例一:创立一个React工程:

1.左侧列表抉择新建工作:

2.接下来会呈现创立我的项目类型:

咱们先择创立一个自在格调的软件我的项目,填写名称并确定:
3.从git上获取源码,其中Credentials是在系统管理》凭据中创立。

4.打包命令,就是几个shell命令:

其中的备份是通过参数化构建来实现的:

这样每次构建开始前,都会有一个确认,勾选则对上一个版本做一个备份:

示例二:创立一个Maven工程

1.新建工作;
2.抉择创立一个Maven工程;
3.Pre Steps,这个是指构建前操作,比方我的项目是一个maven父子我的项目,咱们就须要在这里配置(如果不是父子我的项目可疏忽):
4.Build,配置pom文件门路,这个pom文件门路从我的项目根目录开始,Goals and options就是打包时的其余参数,比方我去掉了打包中的Test过程:

5.Post Steps,指构建后操作,咱们构建完包后能够通过shell命令将打进去的包部署。

上面贴出残缺shell脚本,因为我的项目配置不一样,不可能拿过去就能间接用,大家还需自行批改:

#!/bin/bash
# 以后shell脚本执行完结后,jenkins会敞开所有衍生过程,这里批改jenkins构建id避免敞开启动过程
BUILD_ID="$WORKSPACE-$BUILD_NUMBER"

echo "$JOB_NAME 构建分支: $GIT_BRANCH" 

# 获取pom.xml 中的版本号,父子构造工程会获取父工程版本
# version=`awk '/<version>[^<]+<\/version>/{gsub(/<version>|<\/version>/,"",$1);print $1;exit;}' pom.xml`
# echo "构建版本: $version"

# 子工程门路(针对父子工程)
serverPath="xxx"
# 服务名
serverName="xxx-SNAPSHOT.jar"
# 服务部署门路
basePath="/data/xxx/"
# 日志门路
logPath="logs/xxx-debug.log"

echo '查看之前的过程……'
oldPid=`pgrep -f $serverName`
if [ -n "$oldPid" ]
then 
    echo '进行之前的过程……'
    kill -9 $oldPid
fi

echo "是否备份上个版本:$backup"
if [[ -f "$basePath/server/$serverName" ]] && [[ $backup == 'true' ]]; then
    cd $basePath/server/
    bakJar="$serverName.bak-$[$BUILD_NUMBER - 1]" 
    cp $serverName $bakJar
    echo "备份上个版本到: $basePath/server/$bakJar"
fi

# maven工程瘦身后将第三方依赖包提取进去
echo '复制新lib……'
cd $WORKSPACE/$serverPath/target/lib/
cp *.jar $basePath/lib/

# 将打好的包放到指定的启动地位
echo '复制新jar……'
cd $WORKSPACE/$serverPath/target/
cp $serverName $basePath/server/

# 这里简略写个启动参数,并将日志写到对应的门路中去,或者我的项目中曾经配置好了日志门路,则前面就不须要了
echo '启动服务中……'
nohup java -jar -Xms256m -Xmx512m $basePath/server/$serverName > $basePath/$logPath &

# 倡议应用脚本启动,毕竟还是要标准
#cd $basePath/bin/
#./start-xxx.sh

# 期待服务启动,单位秒
sleep 21

echo '查看启动过程号……'
pid=`pgrep -f $serverName`
if [ -n "$pid" ]
then
    echo "$serverName  $pid  启动胜利 ^-^ "
else
    echo "$serverName 启动失败 -_-@"
fi

echo '构建完结,期待Jenkins反馈后果'

最初保留。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理