centos7.4jenkins2.141 持续集成 springboot,nodejs
环境准备
1.安装 jdk8
在 centos7 下采用 yum 安装 jdk8
yum -y install java-1.8.0-openjdk*
安装完成后:
2.安装 apache-tomcat
可以到官网下载 tomcat8.5.11,也可以直接点击下面的下载链接。
3.启动 war 包
下载 war,可以到 jenkins 官网下载,也可以使用下面的下载链接。
将 jenkins.war 放到 tomcat 的 webapps 目录,启动 tomcat 后,删除 jenkins.war,将 jenkins 文件夹重命名为 ROOT,然后重启 tomcat。
配置 jenkins
访问 ip+ 端口后出现如下界面:
在服务器上执行
/root/.jenkins/secrets/initialAdminPassword
获取密码.
安装插件:
等待一段时间安装好插件。然后配置账号密码就可以登录了。进入主界面:
部署 springboot 程序
配置 jdk
系统管理 > 全局工具配置:
安装 git
- 1.删除系统已经安装好的 git
yum remove git
- 2.安装依赖
yum install gcc perl-ExtUtils-MakeMaker
- 3.下载 git2.9.5
cd /usr/local/src
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
- 4.解压并且编译安装 git
cd /usr/local/src
tar zxf git-2.9.5.tar.gz
cd git-2.9.5/
mkdir /usr/local/git
./configure --prefix=/usr/local/git && make install
- 5.将 git 添加到系统环境变量
vim /etc/profile
在最后一行加上 export PATH=$PATH:/usr/local/git/bin 保存退出即可!
- 6.让配置文件马上生效
source /etc/profile
到此 git2.9 版本源码安装结束!
测试:输入指令
git --version
结果:
配置 maven
maven 版本为 3.3.9,可以到 maven 官方下载,也可以使用下面的下载地址。
maven3.3.9 下载
安装 jenkins 插件
- Maven Integration plugin maven 插件
- Publish Over SSH 传输文件到 ssh
- SSH2 Easy Plugin
- Hudson SCP publisher plugin
- Generic Webhook Trigger Plugin 用于 git 钩子回调。
新建一个 maven 项目
- 新建项目
- 项目基本介绍
- 增加 gitlab 代码库,同时需要提供代码库的账号密码
- 配置 gitlab 钩子
首先为用户配置 token
回调地址如下:
http://user_id:user_api_token@ip:port/generic-webhook-trigger/invoke?token=xxxx
- 发布脚本
配置 Publish Over SSH 插件
系统管理-> 系统设置
脚本 deploy.sh 内容如下:
echo "正在发布程序:"$1"..................."
DATE=$(date +%Y%m%d%H%M)
export JAVA_HOME PATH CLASSPATH
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
DIR=/root/soft
JARFILE=$1
echo "创建备份文件夹.............................."
if [ ! -d $DIR/backup ]
then
mkdir -p $DIR/backup
fi
cd $DIR
pid=`ps -ef | grep "$JARFILE" | grep "java" | awk '{print $2}'`
echo "旧应用进程id:$pid"
if [ -n "$pid" ]
then
echo "kill jincheng..............."
kill -9 $pid
fi
mv $JARFILE backup/$JARFILE$DATE
mv -f tmp/$JARFILE .
echo "正在启动应用程序"
nohup ${JAVA_HOME}/bin/java -jar $JARFILE 2>&1 &
echo "启动成功,pid:"$!":"$?
if [ ! $? = 0 ]
then
sleep 30
tail -n 50 nohup.out
fi
echo "保留5条备份文件................................"
cd backup/
ls -lt|awk 'NR>8{print $NF}'|xargs rm -rf
echo "发布完成........................."
sleep 20
部署 nodejs 程序
安装 node js 插件
cd /usr/local
wget https://npm.taobao.org/mirrors/node/v8.11.4/node-v8.11.4-linux-x64.tar.gz
tar zxvf node-v8.11.4-linux-x64.tar.gz
mv node-v8.11.4-linux-x64 nodejs
配置环境变量
vim /etc/profile
source /etc/profile
配置 npm 全局路径:
cd /usr/local/nodejs
mkdir node_global
mkdir node_cache
npm config set prefix "/usr/local/nodejs/node_global"
npm config set cache "/usr/local/nodejs/node_cache"
npm install -g cnpm --registry=https://registry.npm.taobao.org
ln -s /usr/local/nodejs/node_global/bin/cnpm /usr/bin/cnpm
deploy_web.sh 脚本内容如下:
FILENAME=$1
DATE=$(date +%Y%m%d%H%M)
DIR=/usr/local/nginx/html
BACKDIR=/root/soft/backup
if [ ! -d $BACKDIR/web ]
then
mkdir -p $BACKDIR/web
fi
echo "备份"$FILENAME".................."
mv $DIR/$FILENAME $BACKDIR/web
cd $BACKDIR/web
mv $FILENAME $FILENAME_$DATE
cd /root/soft
echo "发布程序:"$FILENAME"......................"
mv /root/soft/tmp/web/$FILENAME".zip" $DIR
cd $DIR
unzip $FILENAME".zip"
mv dist $FILENAME
chown -R www:www $FILENAME
rm -rf $DIR/$FILENAME".zip"
echo "发布成功:"$FILENAME
android 打包未完成。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于