Jenkins安装,安装之前需要配置好jdk
- 下载Jenkins安装
https://jenkins.io/zh/download/ - 方式有好几种,本文通过rpm方式进行安装
rpm -ivh jenkins-2.190.3-1.1.noarch.rpm
修改Jenkins配置
vim /etc/sysconfig/jenkins
修改内容
修改内容如下:
#用户
JENKINS_USER="root"
#端口号
JENKINS_PORT="8899"
- 启动服务
systemctl start jenkins
- 访问Jenkins,需要防火墙放行端口
http://ip:8899/
- 获取并输入admin账户密码
cat /var/lib/jenkins/secrets/initialAdminPassword
-
点击安装推荐插件
-
添加一个管理员账户,并进入Jenkins后台
-
Jenkins插件管理
10. 搜索插件,使用的插件有Gitee,nodejs,maven
11. 添加Gitee(码云)链接配置(系统管理->系统配置->Gitee配置)
12. 然后点击 “添加” 即可。添加之后, 点击测试链接, 显示成功ok。
如果爆红提示没有权限,检查上一步,你的帐密输错了没。
13. 全局配置
- 构建vue项目,创建一个自由风格的任务,命名test,按照图片配置选项
- 脚本内容
npm install
rm -rf ./dist/* #删除上一次构建在dist目录产生的文件和目录
npm run build:prod #打包vue项目成web服务器可执行的文件,第一次打包会生成dist目录,里面包含index.html和static目录
cd dist #进入dist目录
# 将dist中的文件打包
tar -zcvf dist.tar.gz *
#删除nginx中之前的压缩包
rm -rf /usr/local/nginx/dist.tar.gz
#将新的压缩包复制到nginx中
scp dist.tar.gz /usr/local/nginx/
#删除之前的dist,这个根据nginx中的的地址填写,有的nginx中默认访问的是html文件夹
rm -rf /usr/local/nginx/html/dist/*
#解压文件
tar -xf /usr/local/nginx/dist.tar.gz -C /usr/local/nginx/html/dist/
#重启nginx
systemctl restart nginx
- Gitee(码云)配置,注意,如果是内网的ip这里设置是不能成功的
17. 如果是内网IP,可以在构建触发器中选择Build periodically选项,通过设置固定时间进行重构
- 有可能遇到的问题
- 报错是这样的, 说明没有用户名密码,解决办法
解决方案
执行 git config --global credential.helper store 命令
然后git push origin master // master就是分支的名字
会让你输入用户名和密码,这时你输入就好了,
然后下次再git push 或者/pull 的时候就不用密码了
- 创建springboot项目
- 后面的步骤和上面类似,不同点如下
- start.sh的内容,将脚本放到/usr/bin目录下,方便全局执行
#!/bin/bash
# 加载环境变量
source /etc/profile
#部署的地址,将jar包上传到deploy
deploy_path="/var/lib/jenkins/workspace/rent-after/rent-admin/target/"
#日志名称
log_name="test-$(date +%Y-%m-%d).log"
#运行环境
#enviroment="prod"
back(){
if [ ! -d $deploy_path ]; then
mkdir $deploy_path
echo "文件夹创建成功!"
elif [ ! -f $log_name ]; then
touch $log_name
echo "日志文件创建成功!"
fi
}
back
#启动方法
start(){
echo "进入启动函数!"
# 表示start方法后跟的第一个参数
APP_NAME="$1";
#判断${APP_NAME}文件是否存在
if [ ! -f $deploy_path$APP_NAME ];then
echo "启动文件地址:$deploy_path$APP_NAME"
echo "没有找到$APP_NAME启动文件!"
return
fi
#进程是否启动,没启动直接启动,启动了就先关闭再重启,awk '{print $2}' 的作用就是打印(print)出第二列的内容,第二列正好是PID
pid=$(ps -ef | grep -v 'grep' | egrep $APP_NAME| awk '{print $2}')
# [ -z STRING ] 如果STRING的长度为零则返回为真,即空是真
#如果不存在返回1,存在返回0
if [ -z "${pid}" ]; then
#不存在,直接启动
$deploy_path$APP_NAME > /dev/null 2>&1 &
nohup java -jar $deploy_path$APP_NAME > $deploy_path$log_name 2>&1 &
echo "不存在进程,项目启动成功!"
else
echo "项目$1已经启动,进程pid是${pid}!"
echo "现在开始关闭进程,重启$APP_NAME!"
for i in $pid
do
kill -9 $i
echo "杀死进程$i成功!"
done
nohup java -jar $deploy_path$APP_NAME > $deploy_path$log_name 2>&1 &
echo "项目启动成功!"
fi
}
# jar包的名称,对应start函数中的$1
start rent-admin.jar
- 修改脚本的执行权限
chmod 777 /usr/bin/start.sh
转载链接:
https://cloud.tencent.com/developer/article/2024230