Jenkins安装配置和项目部署

安装环境

测试环境使用的是Ubuntu16.04
检查是否安装了JDK,如果没有需要先安装。

sudo apt-get update
sudo apt-get install openjdk-8-jdk

命令行安装

命令行安装或者war包安装均可。命令行安装依次执行下面的几行命令

wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins

安装完成后,在浏览器输入 Jenkins服务器ip地址:8080即可开始配置。
Jenkins默认端口是8080,可以进行修改:修改/etc/default/jenkins文件,将HTTP_PORT对应的端口号由8080改成自己的端口即可。
端口更改后最好系统管理 - 系统设置 Jenkins URL 也更下下端口(安装完成后操作)

war包安装

可以从这个网址点击对应版本的链接:http://updates.jenkins-ci.org/download/war/
下载速度很快,将war包放到对应服务器,比如tomcat中即可。比如jenkins.war放入tomcat的webapps中,那么访问路径就是Jenkins服务器ip地址:8080/jenkins

配置

浏览器输入Jenkins服务器ip地址:8080(war包安装的是Jenkins服务器ip地址:8080/jenkins)第一次打开的页面如下
在这里插入图片描述
输入管理员密码,位置可以直接从页面处复制,使用cat命令查看即可

cat /var/lib/jenkins/secrets/initialAdminPassword

输入密码后点击继续
在这里插入图片描述
这次选择安装推荐的插件即可,点击后跳转到下一页
在这里插入图片描述
插件会自动下载安装,网速一般的话时间略长,上面的进度条会显示进度,如下
在这里插入图片描述
插件安装完成后,开始配置管理员账户
在这里插入图片描述
输入用户名密码等,比如admin/123456,点击保存并完成(不建议使用admin账户继续,后面再调整会比较麻烦)
在这里插入图片描述实例配置页可以不用修改,直接点击保存并完成。

命令

# 查看jenkins运行状态
sudo service jenkins status

# 启动jenkins服务
sudo service jenkins start

# 重启jenkins服务
sudo service jenkins restart

# 停止jenkins服务
sudo service jenkins stop

# 卸载Jenkins
sudo apt-get remove jenkins
sudo apt-get remove --auto-remove jenkins
sudo apt-get purge jenkins
sudo apt-get purge --auto-remove jenkins

部署Java项目到本机

使用一个springboot项目用来测试,逻辑是将git项目到本机打成jar包,然后使用java -jar执行。

插件管理中查看是否安装了以下插件

Maven Integration
Git Plugin

如果本地还没有安装Git,需要先安装好:

sudo apt-get install git

全局工具配置中找到Maven,使用自动安装
在这里插入图片描述
选择 “新建任务” – “构建一个maven项目”,输入项目名称。
源码管理部分输入代码git地址
在这里插入图片描述
Credentials默认是空的,点击添加,输入访问git的用户名和密码,添加后即可选择上。
在这里插入图片描述
在构建Build部分输入内容

clean package -Dmaven.test.skip=true

在Post Steps部分输入下图内容
在这里插入图片描述
思路为:将本地生成的jar包重命名,然后移动到某个文件夹中。执行某个sh类型文件,该sh文件里面执行的就是java -jar命令。

上图中文字如下:

#!/bin/sh -l
echo "Stopping Application"
pid=`ps -ef | grep ejijiu.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
   kill -9 $pid
fi
rm /usr/local/ejijiu/ejijiu.jar
mv -f /var/lib/jenkins/workspace/ejijiu/target/ejijiu-0.0.1-SNAPSHOT.jar /usr/local/ejijiu/ejijiu.jar
chmod 777 /usr/local/ejijiu/ejijiu.jar
BUILD_ID=dontKillMe /usr/local/ejijiu/start.sh

sh文件内容如下

nohup java -jar /usr/local/ejijiu/ejijiu.jar &

部署VUE项目到本机

整体思路和部署Java项目的一致,不同的仅仅是vue项目需要执行下npm install 和 npm run build
选择 “新建任务” – “构建一个自由风格项目”,输入项目名称。
源码管理部分输入代码git地址
在这里插入图片描述
Credentials默认是空的,如果有直接使用,如果空的点击添加,输入访问git的用户名和密码,添加后即可选择上。
在这里插入图片描述
在构建选择“执行shell”,思路是npm install和npm run build生成html文件,然后将文件打包,放入到tomcat(也可以是其他服务器)对应目录覆盖掉旧的,然后将压缩包删除。
在这里插入图片描述
上图对应的文字

npm install
npm run build --report
cd dist
rm -rf admin.tar.gz
tar -zcvf admin.tar.gz *
cp admin.tar.gz /usr/local/某个目录/tomcat/webapps/admin/
cd /usr/local/某个目录/tomcat/webapps/admin/
tar -zxvf admin.tar.gz
rm admin.tar.gz

部署java项目到远程服务器

还是使用某个springboot项目为例。
系统管理–>插件管理中,检查是否已经安装了Publish Over SSH,如果没有需要先安装好。安装后重启jenkins,可以通过访问 服务器地址:8080/restart重启。

在系统管理–>系统配置中,最靠下的地方找到Publish over SSH,添加对应的内容信息。如果是用密码登录,要添加的信息有

Passphrase: 远程服务器登录密码
SSH Servers可以添加多个,各个字段含义
Name:服务器的标识,随便起个名字方便记忆
Hostname:远程服务器IP地址
Username:远程服务器登录用户名,比如root
Remote Directory:远程服务器的目录,后续操作目录都是基于这个目录前缀

源码管理部分,输入git地址和分支。

在构建Build部分输入内容

clean package -Dmaven.test.skip=true

Post Steps部分,选择“执行shell”,勾选Run only if build succeeds or is unstable,输入内容样例如下(仅仅重命名一下文件,也可以什么都不操作)

#!/bin/sh -l
echo "已经生成了,开始重命名文件"
mv -f /var/lib/jenkins/workspace/testproject/target/testproject-0.0.1-SNAPSHOT.jar /var/lib/jenkins/workspace/testproject/target/testproject.jar

构建后操作
选择Send build artifacts over SSH,各个字段填写:

Name:选择第一步对应的远程服务器名称
Source files:本地文件和所在目录,如 target/testproject.jar
Remove prefix:Source files的目录,如target/
Remote directory:基于远程服务器目录前缀的下级目录,如 mytest
Exec command:远程服务器上执行的shell,如nohup sh /xxx/xxx/xx/test.sh & sleep 1
点击高级,需要填写的内容有
Pattern separator:保留默认值 [, ]+
Exec timeout (ms):超时时间,传输文件时间较长可以修改如1200000
Exec in pty:需要勾选上

参考图:
在这里插入图片描述
对应上面的目录和文件,/xxx/xxx/xx/test.sh,内容为(该文件位于远程服务器上)

#!/bin/bash
source /etc/profile
cd /xxx/xxx/xxxx/xxxx
echo "Stopping Application xxxx"
pid=`ps -ef | grep testproject.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
   kill -9 $pid
fi
cd /xxx/xxx/xxxx/xxxx
BUILD_ID=dontKillMe nohup java -jar /xxx/xxxx/xxx/testproject.jar &

部署vue项目到远程服务器

系统管理–>插件管理中,检查是否已经安装了Publish Over SSH,如果没有需要先安装好。安装后重启jenkins,可以通过访问 服务器地址:8080/restart重启。

在系统管理–>系统配置中,最靠下的地方找到Publish over SSH,添加对应的内容信息。如果是用密码登录,要添加的信息有

Passphrase: 远程服务器登录密码
SSH Servers可以添加多个,各个字段含义
Name:服务器的标识,随便起个名字方便记忆
Hostname:远程服务器IP地址
Username:远程服务器登录用户名,比如root
Remote Directory:远程服务器的目录,后续操作目录都是基于这个目录前缀

源码管理部分,输入git地址和分支。

Post Steps部分,选择“执行shell”,勾选Run only if build succeeds or is unstable,输入内容样例如下(生成html文件后压缩,用于后续文件传输)

npm install
npm run build --report
cd dist
rm -rf bgoldensun.tar.gz
tar -zcvf bgoldensun.tar.gz *
cd ../

构建后操作
选择Send build artifacts over SSH,各个字段填写:

Name:选择第一步对应的远程服务器名称
Source files:本地文件和所在目录,如 target/testproject.jar
Remove prefix:Source files的目录,如target/
Remote directory:基于远程服务器目录前缀的下级目录,如 mytest
Exec command:远程服务器上执行的shell
如 cd usr/local/kongjianma/tomcat/webapps/bgoldensun/(进入目录)
tar -zxvf bgoldensun.tar.gz(解压缩文件)
rm -rf bgoldensun.tar.gz(删除压缩文件)
点击高级,需要填写的内容有
Pattern separator:保留默认值 [, ]+
Exec timeout (ms):超时时间,传输文件时间较长可以修改如1200000
Exec in pty:需要勾选上

构建和构建后操作参考图:
在这里插入图片描述

其他

问题1. 如果git是gitlab上的代码,引入会一直报异常,多方尝试无果后,只能将jenkins改为root启动。修改配置文件

vim /etc/default/jenkins

内容调整

将下面两个参数修改为root
----------修改前--------
JENKINS_USER=root #原来是$NAME
JENKINS_GROUP=root #原来是$NAME

问题2.更换jenkins国内源
系统管理>>管理插件>>高级
将 [升级站点] 更换为
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.json
上面配置的是 清华大学开源软件镜像站
jenkins镜像地址列表
http://mirrors.jenkins-ci.org/status.html

问题3.磁盘空间爆满
出现这种情况一般的原因是构建记录没有清理。jenkins构建记录位于/var/lib/jenkins/jobs/
查看各个构建项目空间占用情况

du -sh .[!.]* * | sort -hr

依次删除builds文件夹下各个版本

为了避免这种情况,配置的时候可以设置自动丢弃构建历史数据
配置中勾选丢弃旧的构建,填上相关数据保存即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lootaa

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值