傻瓜式安装Jenkins
CodingJing
共 6909字,需浏览 14分钟
· 2023-05-10
大家好,我是阿晶,今天给大家带来安装部署Jenkins的脚本,需要自取。
下载Jenkins运行包
https://get.jenkins.io/war-stable/2.346.1/jenkins.war ,这里我下载的是 2.346.1 版本。
编写安装部署脚本
jenkins.sh
#!/bin/bash
####################################
# @description jenkins运行脚本,适用于公网环境
# @params $? => 代表上一个命令执行后的退出状态: 0->成功,1->失败
# $1 => 脚本第一个参数-操作类型(init|start|stop|restart)
# @example => sh jenkins.sh start
# @author lijing
# @date 2023/01/19 16:26
####################################
# 在执行过程中若遇到使用了未定义的变量或命令返回值为非零,将直接报错退出
# set -eu
# 检查参数个数
if [ "${#}" -lt 1 ]; then
echo -e "\033[41;37m脚本使用示例: sh jenkins.sh init(初始化环境)|start(运行)|stop(停止)|restart(重启)\033[0m"
exit
fi
# SOFT_DIR='/home/soft'
# 获取脚本第一个参数
APP_OPT=${1}
# 端口
APP_PORT=10000
# 名称
APP_NAME=jenkins
# jar名 | war名
APP_JAR=${APP_NAME}.war
# 程序根目录
APP_JAR_HOME=.
# 日志名
APP_LOG_NAME=jenkins
# 日志根目录
APP_LOG_HOME=.
# 程序运行参数
JAVA_OPTS="--ajp13Port=-1 --httpPort=${APP_PORT} --prefix=/jenkins"
echo "本次操作服务名:[${APP_NAME}]"
echo "本次操作选择:[${APP_OPT}]"
# 初始化环境
function init() {
# 更换yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
install_git
install_jdk
yum -y install wget
install_maven
install_nodejs
# 使配置生效
source /etc/profile
}
function install_git() {
echo "*******************************************************************************"
echo " ↓↓↓↓↓↓ [检查环境:git] ↓↓↓↓↓↓ "
which git
# $?: 指上一次命令执行的状态 成功:0 失败:1
if [ "$?" -eq 1 ]; then
echo "安装git..."
yum install -y git
fi
}
function install_jdk() {
echo "*******************************************************************************"
echo " ↓↓↓↓↓↓ [检查环境:java] ↓↓↓↓↓↓ "
which java
if [ "$?" -eq 1 ]; then
echo "安装jdk..."
yum -y install java-1.8.0-openjdk*
# 配置环境变量 -- 注意$前加上\ 避免shell中获取其变量值追加到配置文件中
cat>> /etc/profile <<EOF
############################## ↓↓↓↓↓↓ set java environment ↓↓↓↓↓↓ #############################
JAVA_HOME=/usr/lib/jvm/java
CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar:\$JAVA_HOME/jre/lib/rt.jar
PATH=\$PATH:\$JAVA_HOME/bin
export JAVA_HOME CLASSPATH PATH
###############################################################################################
EOF
# 使配置生效
. /etc/profile
fi
}
function install_maven() {
echo "*******************************************************************************"
echo " ↓↓↓↓↓↓ [检查环境:maven] ↓↓↓↓↓↓ "
which mvn
if [ "$?" -eq 1 ]; then
echo "安装maven..."
mkdir -p /home/soft/maven/repository
cd /home/soft/maven
yum install -y ca-certificates
wget https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
# 解压
tar -zxvf apache-maven-3.6.3-bin.tar.gz
# 修改配置文件
isExist=$(cat /home/soft/maven/apache-maven-3.6.3/conf/settings.xml | grep "<localRepository>/home/soft/maven/repository</localRepository>")
if [[ "$isExist" == "" ]]
then
# 不包含
# 在第55行插入
sed -i '55i <localRepository>/home/soft/maven/repository</localRepository>' /home/soft/maven/apache-maven-3.6.3/conf/settings.xml
# 在第160行插入
sed -i '160i \
<!-- 国内中央仓库的配置-阿里云中央仓库 --> \
<mirror> \
<id>nexus-aliyun</id> \
<mirrorOf>central</mirrorOf> \
<name>Nexus aliyun</name> \
<url>http://maven.aliyun.com/nexus/content/groups/public</url> \
</mirror> \
' /home/soft/maven/apache-maven-3.6.3/conf/settings.xml
fi
# 配置环境变量
cat>> /etc/profile <<EOF
############################## ↓↓↓↓↓↓ set maven environment ↓↓↓↓↓↓ #############################
MAVEN_HOME=/home/soft/maven/apache-maven-3.6.3
PATH=\$PATH:\$JAVA_HOME/bin:\$MAVEN_HOME/bin
export MAVEN_HOME PATH
################################################################################################
EOF
# 使配置生效
source /etc/profile
fi
}
function install_nodejs() {
echo "*******************************************************************************"
echo " ↓↓↓↓↓↓ [检查环境:NodeJS] ↓↓↓↓↓↓ "
which npm
if [ "$?" -eq 1 ]; then
echo "安装NodeJS..."
mkdir -p /home/soft
cd /home/soft
wget https://nodejs.org/dist/v16.13.0/node-v16.13.0-linux-x64.tar.xz
# 解压
tar -xvf node-v16.13.0-linux-x64.tar.xz
# 配置环境变量
cat>> /etc/profile <<EOF
############################## ↓↓↓↓↓↓ set nodejs environment ↓↓↓↓↓↓ #############################
NODEJS_HOME=/home/soft/node-v16.13.0-linux-x64
PATH=\$PATH:\$NODEJS_HOME/bin
export NODEJS_HOME PATH
#################################################################################################
EOF
# 使配置生效
source /etc/profile
# 将npm软连接到`/usr/bin`目录下 => 解决`sudo: npm:找不到命令`问题
sudo ln -s /home/soft/node-v16.13.0-linux-x64/bin/node /usr/bin/node
sudo ln -s /home/soft/node-v16.13.0-linux-x64/bin/npm /usr/bin/npm
sudo ln -s /home/soft/node-v16.13.0-linux-x64/bin/cnpm /usr/bin/cnpm
sudo ln -s /home/soft/node-v16.13.0-linux-x64/bin/npx /usr/lib/npx
# 设置淘宝`NPM`镜像
npm install -g cnpm --registry=https://registry.npm.taobao.org
fi
}
# 停止
function stop(){
echo "<-------------------------------------->"
echo "[${APP_NAME}] ... stop ..."
# 查看该jar进程
pid=`ps -ef | grep ${APP_JAR} | grep -v 'grep' | awk '{print $2}'`
echo "[${APP_NAME}] pid="${pid}
# 存在则kill,不存在打印一下吧
if [ "${pid}" ]; then
kill -9 ${pid}
# 检查kill是否成功
if [ "$?" -eq 0 ]; then
echo "[${APP_NAME}] stop success"
else
echo "[${APP_NAME}] stop fail"
fi
else
echo "[${APP_NAME}] 进程不存在"
fi
}
# 运行
function start(){
echo "<-------------------------------------->"
echo "[${APP_NAME}] ... start ..."
cd ${APP_JAR_HOME}
echo "当前路径:`pwd`"
# 赋予可读可写可执行权限
chmod 777 ${APP_JAR}
echo "启动命令: nohup java -jar ${APP_JAR} ${JAVA_OPTS} >> ${APP_LOG_HOME}/${APP_NAME}.log 2>&1 &"
nohup java -jar ${APP_JAR} ${JAVA_OPTS} >> ${APP_LOG_HOME}/${APP_NAME}.log 2>&1 &
if [ "$?" -eq 0 ]; then
echo "[${APP_NAME}] start success"
else
echo "[${APP_NAME}] start fail"
fi
}
# 重启
function restart(){
echo "<-------------------------------------->"
echo "[${APP_NAME}] ... restart ..."
stop
start
}
# 多分支条件判断执行参数
case "${APP_OPT}" in
"init")
init
;;
"stop")
stop
;;
"start")
start
;;
"restart")
restart
;;
*)
echo -e "\033[41;37m提示:不支持参数命令 -> ${APP_OPT} \033[0m"
;;
esac
运行脚本
此脚本适用于公网环境,将 Jenkins 运行包和脚本文件放到同一级目录下,切换到此目录
# 初始化环境,如果你的服务器上没有安装jdk,git,maven,nodejs的话,会自动拉取安装
./jenkins.sh init
# 启动jenkins
./jenkins.sh start
# 停止jenkins
./jenkins.sh stop
# 重启jenkins
./jenkins.sh restart
评论
教你基于 Jenkins 搭建一套 CI/CD 系统
原文链接:https://mp.weixin.qq.com/s/KVc4IFky1z7kZn-7bz79DQ一、CI/CD环境介绍本次要实现如下效果,开发人员完成功能开发并提交代码到gitlab仓库,jenkins自动完成拉取代码、编译构建、代码扫描(sonarqube)、打
码农编程进阶笔记
0
机房水冷空调管路应该如何安装布局?
近年来随着云计算技术的快速发展,全球数据中心开始向着巨型化的方向发展,单机柜功率密度不断提高,5KW、7KW、10KW甚至几十KW功率机柜已逐步成为常规配置。新一代数据中心更显著的表现为:规模更大、密度更高、制冷要求更高、局部过热成为常态等特点。本文就来探讨下水
数据中心运维管理
0
请问哪位大佬有空?我自己搞不定pycharm安装调试了?
点击上方“Python共享之家”,进行关注回复“资源”即可获赠Python学习资料今日鸡汤残云归太华,疏雨过中条。大家好,我是Python进阶者。一、前言前几天在Python最强王者交流群【斌】问了一个Python环境安装的问题,请问哪位大佬有空?我自己搞不定pycharm安装调试了。二、实现过程这
IT共享之家
0
侠盗猎车手免安装教程,支持安卓+PC!
前几天有粉丝朋友问我有没有侠盗猎车手罪恶都市这个游戏,今天就从解决实际问题的角度上,亲测这款游戏从安装到试玩,当然这篇文章使用的免安装版本,方便大家解压即玩!废话不多说先来看一下实测结果吧,我两台电脑都可以玩,一台是Win10,一台是Win11免安装,解完压缩就可以直接玩:非常经典的游戏开始画面:《
dotNET全栈开发
10
LangChain:安装与环境配置
使用以下命令安装 LangChain:pip install langchain或者:conda install langchain -c conda-forge环境设定使用LangChain通常需要与一个或多个模型提供程序、数据存储、 A
Python之王
0
Google 应用无法安装解决方案
和你一起终身学习,这里是程序员Android经典好文推荐,通过阅读本文,您将收获以下知识点:一、 国家或地区限制导致无法安装二、手机feature不支持导致无法安装Google PlayStore应用无法安装的原因:一、 国家或地区限制导致无法安装某些应用只在某些国家和地区才能使用,所以Google
程序员Android
10
Jenkins vs GitLab CI/CD 到底怎么选?
转 自: InfoQ, 作者:Rahul Jain,策划:田晓旭 近十年来,持续集成(Continuous Integration,CI)和持续交付(Continuous Delivery,CD)领域都取得了很大的进步。DevOps 测试的兴起导致了对 CI/CD 工具的快速需...
DevOps技术栈
0
100万级安装量的开源作品,一年有多少打赏收入?
来源:juejin.cn/post/7341593721100451880推荐:https://t.zsxq.com/18a5DmYYL❝我的答案是:330元答案不卖关子、不吹不黑,按我个人作品2023年的打赏收入来算,打造一款100万级安装量的开源作品,一年能带来 330元...
业余草
0