Jenkins安装与配置指南

Jenkins 安装与配置指南

前言

安装jenkins前必须先安装jdk,最新版的jenkins需要jdk11以上。这里我安装jenkins-2.346+jdk8(jdk1.8),同时安装好git和maven,做好配置,方便后期使用。

下图是各jenkins版本和所需jdk版本的匹配图

https://www.jenkins.io/doc/book/platform-information/support-policy-java/

image.png

!> 注意,一定要匹配版本,否则后续安装Jenkins会缺失依赖。

步骤一:安装 JDK

安装JDK(自行百度或者参照笔记文章 Linux篇)

步骤二:下载并安装 Jenkins

wget https://repo.huaweicloud.com/jenkins/redhat-stable/jenkins-2.346.3-1.1.noarch.rpm
rpm -ivh jenkins-2.346.3-1.1.noarch.rpm

配置 jenkins JDK路径

vim /etc/init.d/jenkins 

image.png

执行 :wq 保存

步骤三:修改 Jenkins 用户权限为 root

编辑 /etc/sysconfig/jenkins 文件,将 JENKINS_USER 设置为 “root”:

vim /etc/sysconfig/jenkins

image.png

执行 :wq 保存

步骤四:启动 Jenkins 服务

# 在 /etc/init.d/ 目录下执行
./jenkins start  # 启动服务
./jenkins stop    # 关闭服务
./jenkins restart # 重启服务

确保防火墙允许外部访问 Jenkins,默认端口为 8080:

# 开启防火墙 8080 端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
systemctl restart firewalld   # 重启防火墙服务

在云主机环境下,还需在云服务商控制台中配置相应的入站规则。

获取 Jenkins 默认登录密码

cat /var/lib/jenkins/secrets/initialAdminPassword

步骤五 登录 Jenkins 并完成初始化配置

image.png

可以选择推荐安装或者自定义选择插件安装

image.png

也可以选择 无需下载插件,因为很多插件下载太慢,容易下载失败浪费时间,后面针对性下载所需插件即可

image.png

image.png

image.png

image.png

设置中文显示
点击 Dashboard>Manage Jenkins>Plugin Manager 我的是已经安装了的。

image.png

下载
Localization: Chinese (Simplified)
Locale

image.png

设置为中文

image.png

重启jenkins

cd /etc/init.d/ 
./jenkins restart

重新设置语言为中文显示,点击保存即可

image.png

安装插件(和中文插件安装方式一样,搜索对应插件,勾选安装)

步骤六:安装其他必备插件

  • Maven Integration(用于基于 Maven 的编译、打包)
  • Node.js(适用于前端 Vue 项目打包)
  • Git(用于代码拉取)
  • Gitee/GitHub/GitLab 插件(针对私有代码仓库集成)
  • Publish Over SSH(用于与其他服务器间的文件传输)

服务器安装 maven、node、git 可参阅笔记Linux

步骤七: 全局工具配置

image.png

image.png

image.png

image.png

image.png

后端项目构建:

image.png
image.png
image.png
image.png
image.png
image.png

图中的 --update-snapshots clean package -P dev

-P 为在Maven构建命令中,-P 参数是用来激活(或选择)构建时特定的构建profile。
在Maven的pom.xml文件中,可以定义多个profile,每个profile都有一组特定的构建配置,例如依赖项、插件配置、构建目标等。
当通过 -P 参数指定profile时,Maven将在构建过程中使用该profile中的配置。

image.png
image.png
image.png

Post Steps 配置构建后执行的脚本

image.png

whoami
cd  /root/usr/apps/your-app/bin
#停止程序
sh stop.sh
#删除jar包 可以备份到别的地方,我这里直接删除
rm -rf your-app-0.0.1-SNAPSHOT.jar
#将构建的jar包复制到构建目录
mv /var/lib/jenkins/workspace/your-app/target/your-app-0.0.1-SNAPSHOT.jar /root/usr/apps/your-app
#执行程序目录的启动脚本
sh start.sh

stop脚本

#!/bin/sh

export APP_HOME_BIN_PATH=$(cd `dirname $0`; pwd)
export APP_HOME=${APP_HOME_BIN_PATH%/bin}

export C_PID=`ps -ef | grep java | grep $APP_HOME | grep -v grep | awk '{print $2}'`

if [ ! -z "$C_PID" ]; then
  kill -9 $C_PID;
fi

start脚本

#!/bin/sh

export BUILD_ID=dontkillme
if [ -z $JAVA_HOME ] ;
then
JAVA_HOME="/usr/local/jdk/jdk1.8.0_371"
fi

export APP_HOME_BIN_PATH=$(cd `dirname $0`; pwd)
export APP_HOME=${APP_HOME_BIN_PATH%/bin}

$JAVA_HOME/bin/java -jar -server -Xmx512m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m $APP_HOME/your-app-0.0.1-SNAPSHOT.jar >/dev/null 2>&1 &

构建前端项目

image.png

选择配置的nodejs nodejs参照上文,如果没有需要先全局配置。

image.png

image.png

image.png

上述脚本和上面类似,将打包的依赖先清空,然后设置镜像源,将打包好的dist目录创建压缩包,然后移动到对应的your-node-app你的前端程序目录
然后解压

cd /var/lib/jenkins/workspace/your-node-app
pnpm -v
node -v

rm -rf node_modules/f-*
rm -rf package-lock.json
pnpm set registry https://registry.npmmirror.com/
npm i
yarn build
cd /var/lib/jenkins/workspace/your-node-app/dist
tar -zcf root.tar.gz *
mv root.tar.gz /root/usr/front/your-node-app/
cd /root/usr/front/your-node-app/
tar -zxf root.tar.gz
rm -rf root.tar.gz

构建到远程服务器

前面的步骤一样,

注意此处 执行脚本处对应命令就不需要了,因为对应的dist包会发到远程服务器。

mv root.tar.gz /root/usr/front/your-node-app/
cd /root/usr/front/your-node-app/
tar -zxf root.tar.gz
rm -rf root.tar.gz

image.png

image.png

在此处配置远程server:系统配置 > 滑动到最底部(Publish over SSH)

image.png

image.png

注意此处的Exec command 是在文件传输完成之后,在远端服务器执行的命令。

#构建完成之后,对应的文件会传送到此目录
cd /root/usr/front/your-node-app
#解压
tar -zxf root.tar.gz
rm -rf root.tar.gz

原文链接 https://www.hanyuanhun.cn | https://node.hanyuanhun.cn

posted @   汉源魂  阅读(735)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示