安装包链接

jdk链接: https://pan.baidu.com/s/1hQGJwkX1oAA_7iNWPqSfLg?pwd=xvnh 提取码: xvnh 

maven链接: https://pan.baidu.com/s/1AYoPbfMGAECAiAPciuQniw?pwd=2bwu 提取码: 2bwu

git链接: https://pan.baidu.com/s/1AYoPbfMGAECAiAPciuQniw?pwd=2bwu 提取码: 2bwu

jenkins链接: https://pan.baidu.com/s/1as0L5QSV2r2RRwyKMO6a3A?pwd=r57q 提取码: r57q

jenkins插件包链接: https://pan.baidu.com/s/1BmNmsNIXZXbMiKFUxNFGLg?pwd=pkbw

1、jenkins是java项目所以必须先准备jdk

Jdk配置

解压jdk包

配置环境变量

vi /etc/profile
#java1.8
export JAVA_HOME=jdk路径
export PATH=$PATH:$JAVA_HOME/bin
Export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/security/local_policy.jar:$JAVA_HOME/jre/lib/security/US_export_policy.jar


#wq保存退出
#重新加载配置文件
source /etc/profile
# 检查jdk版本
java -version

出现版本即使配置成功 

 2、jenkins自动化部署需要git拉代码

安装git

解压git压缩包

进入git目录

#安装依赖
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
#执行编译
./configure --prefix=/自定义路径 --with-curl=/usr/bin/curl
make
make install

补充,如果install出现该错误, 

记得先进到git的目录里面再执行进入下面的路径

vi t/unit-tests/clar/clar.c

进入目录后找到下面这段代码

改成这样再保存退出再执行
struct tm;
gettimeofday(out, NULL);

#重新执行make 和make install命令
vi /etc/profile
export GIT_HOME=/git路径
export PATH=$GIT_HOME/bin:$PATH
#wq保存
source /etc/profile
#执行git --version查看版本出现即成功
git --version

 

3、打jar包需要maven工具

#解压安装包
#配置环境变量
vim /etc/profile
export MAVEN_HOME=maven地址
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH

#创建一个文件夹作为 maven 仓库,用于存放 maven 下载的依赖
mkdir maven-repository
#maven配置阿里云镜像
vi maven包/conf/settings.xml

#将仓库地址设置成刚刚新建的文件夹 maven-repository
<localRepository>/a-dev/maven/maven-repository</localRepository>


<mirror>
  <id>alimaven</id>
  <name>aliyun maven</name>
  <mirrorOf>central</mirrorOf>
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>

4、jenkins安装启动

#下载好war包后,配置开机自启动
vi /etc/systemd/system/jenkins.service

[Unit]
Description=Jenkins Automation Server
After=network.target

[Service]
User=root
Group=root
ExecStart=/jdk路径/bin/java -jar jenkins包路径 --httpPort=8888启动端口自己设置
Restart=always
SuccessExitStatus=143
TimeoutStopSec=10
LimitNOFILE=8192

[Install]
WantedBy=multi-user.target


#保存退出
systemctl daemon reload
systemctl start jenkins
systemctl enable jenkins

记得防火墙关一下

systemctl stop firewalld 

systemctl disable firewalld

启动成功后访问ip:8888端口

注意jdk1.8版本的jenkins版本安装不了任何插件,只能自己搜索插件去下载,所以要选择自定义插件下载然后任何插件都不要下,直接跳过。 

 全部取消勾选下一步就行

进入界面后先修改密码

修改完保存即可用新密码登录

上面所说的插件包我这里准备好了包,将原来的备份然后替换

重启jenkins即可

路径基本都是/root/.jenkins

systemctl restart jenkins

jenkins会提示一些插件版本的通知,1.8jdk版本的想更也更不了,必须jdk11,及以上然后去jenkins官网下载支持jdk11以上的版本包才能去正常下载插件,如果不想要那些提示要去设置里面关闭通知

保存

将这上面的全部取消勾选,保存

现在就变得干净很多了

配置国内的镜像源

输入地址后保存即可,网站可以百度一下,不过百度的地址都把前面的https改成http不然会报错,去安装插件会显示ssl证书错误,懒得查的可以直接复制下面的地址保存即可

http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.json

我提供的插件包只是有大部分的支持jenkins2.346.1的,会有部分会有漏,需要的要自己去下载插件然后安装。以下是操作步骤

点击进去会转到官网那边自己找版本下载

下载的时候主要jenkins的版本,自己的版本要高于这里显示的版本才能下载成功不然会不兼容

去到插件这里的高级

在这里选择使用刚刚下载的依赖包然后点击deploy然后就会自动下载

Jenkins修改主路径地址

Jenkins通过修改环境变量更改主路径地址

JENKINS_HOME=/路径

但是网上的方法都是vi /etc/profile

进入里面加这个环境变量,我不知道别人怎么样,反正我自己试了很多次,很多方法,一点用都没有。

我验证有用的方法如下,希望有帮助

将jenkins制作成系统服务,然后在系统服务的文件里面注入环境变量(实测有用)

vi /etc/systemd/system/jenkins.service

[Unit]
Description=Jenkins Automation Server
After=network.target

[Service]
User=root
Group=root
Environment=JENKINS_HOME=jenkins路径
ExecStart=/usr/java/jdk1.8.0_131/bin/java -jar /signet/tools/jenkins/jenkins.war --httpPort=希望启动的端口
Restart=always
SuccessExitStatus=143
TimeoutStopSec=10
LimitNOFILE=8192

[Install]
WantedBy=multi-user.target

Environment=JENKINS_HOME=jenkins路径

加这个就行

其余的直接复制就行,保存退出

如果之前没注册过成服务,直接lsof -i:jenkins端口

kill -9 jenkins的pid

直接的jenkins进程直接kill掉

如果之前已经弄过成服务则

systemctl daemon-reload

systemctl restart jenkins

访问ip:端口

如果出现第一次进jenkins的场景则是修改成功

将旧的jenkins主目录的内容直接覆盖新路径的jenkins再重启即可

默认一般是在/root/.jenkins

注意其他路径不要在文件夹前加  .    例如 .hello

这种相当于隐藏目录,自己要是忘了就找不到了

mv /root/.jenkins /新路径

systemctl restart jenkins

Jenkins配置后端java项目

jenkins后台配置全局变量,jdk,mavne,以及git地址

配置maven的settings.xml文件

配置jdk路径

都配成自己刚刚安装jdk,maven,jdk的本地地址,如果选的是自动安装,相当于他会从jenkins的路径先自己先下载一个jdk,然后用这个jdk去启动jar包这种。很不推荐。而且这个是全局变量,如果某个项目需要的jdk版本不一样,要单独在那个项目的配置里面改jdk,在这改也没用。改完记得保存。

配置git,生成git秘钥和私钥

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

一直按回车确认就行

生成之后会在/root/.ssh/下找到这两个文件id_rsa 和 id_rsa.pub

pub结尾的是公钥,没有的是私钥

去git后台配置公钥,这里以gitlab为例子

查看刚刚生成的git公钥

整个复制出来

粘贴到上面,设置好到期时间后保存即可。

Jenkins上配置一下git的私钥(注意是私钥,不是刚刚配置的公钥!!!)

查看私钥id_rsa,同上面一样将整个文件的内容都复制下来,包括开头的

-----BEGIN RSA PRIVATE KEY-----

和结尾的

-----END RSA PRIVATE KEY-----

去到jenkins后台配置git私钥

选择秘钥的形式,当然选择账号密码也行,不过还是推荐秘钥,有时候账号密码会提示不允许连接仓库。

秘钥形式的话输入username,这个只是jenkins上面的一个别称,随便填就行(用git账号密码还是得输入自己的账号名)

添加秘钥后输入,最后创建即可

 

创建完账号后新建项目

Jenkins会把代码拉下来打包,每一次打包都会把之前的代码备份,这个是是否删除旧的代码以及保留几天后删除

选择git

URL是git的链接,最好用ssh的链接不要用https的有时候会报错无法连接https

ssh是最稳的

分支选择自己想要打包的分支

空的话会打包失败

这里最好选择第一个仅在构建成功后执行,第三个是无论是否构建成功都执行

构建完成执行任务,可自己添加一些操作,这边举例子执行shell命令

我这里在服务器上写了一个sh脚本

这里就是sudo去执行这个脚本

sudo sh /tenant-platform/jenkins.sh

以下是这个脚本的内容

里面的变量记得改一下,我的只是示例包名每个项目都不一样还有jenkins路径和需要放jar包的路径,仅供参考哈,自己写的话可以简单一点直接就java -jar 执行jar包,写脚本这些这些后面可以自己慢慢调试(注意这个jenkins里面不支持直接写这种变量的shell脚本的,所以最好是自己在系统上写好shell脚本然后再jenkins这里去sh ***.sh执行这个shell脚本)

记得下面有些参数我表明了注释记得改成自己的比如jar包包名路径等等

# 定义变量
#FILE_PATH是实际需要放jar包的启动路径
FILE_PATH="/tenant-platform"
#JAR_FILE是jar包的包名
JAR_FILE="tenant-platform.jar"
#备份之前的jar包加个时间
NEW_JAR_FILE="tenant-platform$(date +'%Y%m%d_%H%M%S').jar"
#SOURCE_JAR是jenkins的打包目录,就是上面更改jenkins主目录的目录我这里是/tools/jenkins/jenkins/   jenkins打包会生成一个workspace路径存项目tenant是我的那个项目名,打包完成后会生成一个target目录jar包就在这里面
SOURCE_JAR="/tools/jenkins/jenkins/workspace/tenant/target/tenant-platform.jar"
# 定义错误处理函数(只打印错误,不退出脚本)
handle_error() {
    echo "❌ Error: $1"
}

# 按顺序执行命令

# 1. 移动旧的 JAR 文件
sudo mv "$FILE_PATH/$JAR_FILE" "$FILE_PATH/$NEW_JAR_FILE"
if [ $? -ne 0 ]; then
    handle_error "找不到$FILE_PATH该路径下的jar包,或者是包的路径不对,请检查路径是否正确,或者该路径下的jar包是否存在"
    echo "只是备份不了,不影响后续执行"
else
    echo "✅Successfully 已将jar包备份为 $NEW_JAR_FILE"
fi
# 2.将新 JAR 文件移动到目标目录
sudo mv "$SOURCE_JAR" "$FILE_PATH/"
if [ $? -ne 0 ]; then
    handle_error "Failed 找不到$SOURCE_JAR,无法启动脚本,请检查jenkins打包路径是否正确,或jenkins是否打包成功"
    echo "行不行啊小伙子,要不考虑一下回家耕田吧,自己好好想想能力有没有提升"
    # 增加延时3秒
    sleep 10
    echo "⚠️还在搁这看nm呢,还不赶紧tm去问度娘,GPT,不想干了是不是"
    echo "    _____  "
    echo "  /       \ "
    echo " |   ^  ^  | "
    echo " |    ⏺    | "
    echo "  \ \___/ / "
    echo "   ------- "
    echo "去吧少年!!!"
    exit 1
else
    echo "✅ Successfully 成功将jenkins打包的$JAR_FILE移动到$FILE_PATH"
fi

# 3. 执行启动jar包
sudo java -jar $FILE_PATH$JAR_FILE
if [ $? -ne 0 ]; then
    handle_error "Failed 找不到jar包或者是权限报错"
else    
echo "@               耗时两年半开发完成               @"
    echo "@----------拥有两年半的实力运行是必然的----------@"
    echo "@                    鸡哥佑我
    echo "@                          ##@&&$#               @"
    echo "@                          #$=++++&#             @"
    echo "@                          @=++++++&             @"
    echo "@                          $+++***+*@            @"
    echo "@                       @# $***,*+**$            @"
    echo "@                     $*,&#*,**,+&*,&            @"
    echo "@                    +,,,,#=,,***&&=@            @"
    echo "@                   &.,,,,+#*,,*,&@              @"
    echo "@                  #,,,,,,,@$,,,,*#              @"
    echo "@                  =,,,,,,,+#,,,,,#              @"
    echo "@                 &,,,,,,,,,@+.+$=&              @"
    echo "@                @,,,,,,,,,.{{input}             @"
    echo "@                *,,,**,,,,,+@#*..,+             @"
    echo "@               $.,,.=*,,,,,*&*.,,,,$            @"
    echo "@              #*,,.*#*,,,,.=$.,,,,.&            @"
    echo "@              $.,,.=@,,,,,.&$.,,,,.$            @"
    echo "@              &.,,.=+,,,,,.&&.,,,,.&            @"
    echo "@              @,.,,+,,,,,,.$=.,,,,.,#           @"
    echo "@               @,.,,,,,,,,.$=.,,,,,.$           @"
    echo "@                @.,,,,,,,,.@+.,,,,,.&           @"  
    echo "@                 &.,,,,,,,,#*.,,,,,.=           @"
    echo "@                  =.,,,,,,,$*,,,,,,.=           @"
    echo "@                   =,,,...,*.,,,,,,,@           @"
    echo "@                 #  ===+***=*,,,,,,,#           @"
    echo "@                  @=&&&&&==&==**,,.,#           @"
    echo "@                  ==&&==========*,,&            @"
    echo "@                 #=&&&&=======&=+@              @"
    echo "@                 #&&&&&==========$              @"
    echo "@                 @&&&&===========&              @"
    echo "@                #&&&&=============@             @"
    echo "@                {{input}}&&&=====+==            @"
    echo "@               @&&&====+++++++===&&&#           @"
    echo "@              #&&&====+++==+++++===&#           @"
    echo "@              {{input}}&=====++& #&++           @"
    echo "@             @&&&====+=@    $++=====$           @"
    echo "@            {{input}}&      $+=====&#           @"
    echo "@           &&&===+&         &+=====$            @"
    echo "@          {{input}}         #++====&#           @"
    echo "@         &===++=#           @++++=&#            @"
    
    echo "✅Successfully executed $SCRIPT_FILE"
    echo "恭喜你启动成功了!!!"
echo "                _ooOoo_"
echo "               o8888888o"
echo "              88\" . \"88"
echo "              (| -_- |)"
echo "               O\\ = /O"
echo "           ____/'---'\\____"
echo "         .'  \\\\|     |//  '."
echo "        /  \\\\|||  :  |||//  \\"
echo "       /  _||||| -:- |||||_  \\"
echo "       |   | \\\\\\  -  /// |   |"
echo "       | \\_|  ''\\---/''  |_/ |"
echo "       \\  .-\\__  '-'  ___/-. /"
echo "     ___ . .'  /--.--\\   . . __"
echo "  .\"\" '<   .___\\_<|>_/___.   > \"\"."
echo " | | :   - \\ .; \\ _ / ;./ -   : | |"
echo "  \\ \\   -.   \\_ __\\ /__ _/   .-' / /"
echo "=== -.____ -.___\\_____/___.- ____.- ==="
echo "                 =---="
echo ""
echo "............................................."
echo "        佛祖保佑       永无BUG"
echo "............................................."
fi

最后这一步可做可不做,这里是整个构建完成后需要执行的步骤,我这里是将workspace里面的源码删掉了,我这里是在上一步已经将打包好的jar包放到其他地方了,所以我把workspace删除了,但是如果你们没有像我一样弄到其他地方的话会连着打好的jar包一起删除,刚开始的话这一步可以省略。

最后保存运行

这三个节点需要记一下pre steps是预步骤,简单点就是在构建开始前执行某些操作,

Post steps是完成时,构建后操作就是最后的节点了,实际上可操作的内容是一样的只是分成了三个前中后去执行。

所有的步骤都准备好了之后将项目进行构建

这里有项目的执行构建的日志点击进去查看具体的内容

最后出现success就是成功了,要是中间报错了估计是maven、jdk、或者是git配置有问题了。

以上都是本地部署jenkins然后拉代码打包到本地去执行,有一些是需要将本地打包好的jar包传到另一服务器上运行的,这个后面再更新。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐