jdk环境:1.8
linux版本:CentOS 6.10
git版本:2.1.1
maven版本:3.5.4
预先准备jdk
1、安装所需插件:Git plugin、Maven Integration plugin
一、安装部署jenkins
1、下载rpm文件:
下载地址:http://mirrors.jenkins-ci.org/redhat/
该示例下载的是 jenkins-2.222-1.1.noarch.rpm
网站上直接下载可能会比较慢 可点击此处在csdn下载 jenkins-2.222-1.1.noarch.rpm
2、上传到服务器并安装
rpm -ivh jenkins-2.222-1.1.noarch.rpm
3、修改jenkins端口(默认8080)
vim /etc/sysconfig/jenkins
4、启动和重启jenkins
-
service jenkins
start
-
service jenkins restart
启动如若报错:Starting Jenkins bash: /usr/bin/java: No such file or directory(没有找到java)
解决方案:vim /etc/init.d/jenkins 添加jdk路径
5、访问jenkins
访问地址:http://ip:6060
首次进入会出现以下内容
cat /var/lib/jenkins/secrets/initialAdminPassword
按照提示去服务器上复制密码粘贴到输入框中登录
6、安装插件和创建用户
首次登录成功后会进入安装插件页面和创建用户页面,插件安装推荐的就行,其他的按照指引一步一步操作
(如果你jenkins不是中文的,安装两个插件:Locale和Localization: Chinese,然后在系统管理->系统配置里Locale的默认语言改为zn_CN)
二、安装部署maven
1、下载、解压、移动、删除安装包
-
wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
-
tar zxf apache-maven-3.5.4-bin.tar.gz
-
mv apache-maven-3.5.4 /usr/
local/maven
-
rm -f apache-maven-3.5.4-bin.tar.gz
2、设置环境变量
vim /etc/profile 在最底下添加下面两行
-
export M2_HOME=/usr/
local/maven
-
export PATH=
$PATH:
$JAVA_HOME/bin:
$M2_HOME/bin
保存后执行 source /etc/profile
3、查看maven版本:mvn -v
出现以下内容即安装成功
三、安装部署Git
1、下载并安装
-
yum -y
install libcurl-devel expat-devel curl-devel gettext-devel openssl-devel zlib-devel
-
yum -y
install gcc perl-ExtUtils-MakeMaker
-
cd /usr/
local/src/
-
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git
-2.1
.1.tar.gz
-
tar -zvxf git
-2.1
.1.tar.gz
-
cd git
-2.1
.1
-
make prefix=/usr/
local/git all
-
make prefix=/usr/
local/git
install
2、添加git到环境变量
-
echo
"export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
-
source /etc/bashrc
3、查看git版本及所在路径 git --version
四、jenkins部署maven项目
1、安装所需插件:Git plugin、Maven Integration plugin
2、全局工具配置
jdk路径:/usr/local/jdk1.8.0_221/ (jdk安装的实际路径)
git路径:/usr/local/git/bin/git
maven路径:/usr/local/maven
3、凭据(配置git的用户名和密码,或者ssh)
这里以用户名和密码为例
(ssh需要服务器生成公私钥,然后在相关的git远程仓库配置公钥,最后再把私钥按照下方例子选择ssh添加到Private Key)
如图所示按照顺序添加git账户和密码
4、创建一个maven项目
源码管理 输入远程仓库地址并选择刚配置好的凭据
构建触发器和构建环境
5、maven项目构建详细配置
Root POM为:pom.xml
Goals and options输入:clean package -Dmaven.test.skip=true
(-Dmaven.test.skip=true 可选 代表不执行测试用例,也不编译测试用例类。)
Post Steps选择第一个Run only if build succeeds(仅在构建成功时执行)
Execute shell输入:
-
BUILD_ID=DONTKILLME
-
sudo cp /var/lib/jenkins/workspace/
test-admin/target/
test-admin-0.0.1-SNAPSHOT.jar /home/admin/data/package/
test-admin-0.0.1-SNAPSHOT.jar
-
sudo nohup /home/admin/data/sh/
test-admin.sh restart 2>&1 &
构建完可在/var/lib/jenkins/workspace/可查看具体构建的项目,在相关的target目录下找到需要启动的jar包 然后执行启动脚本
/home/admin/data/sh/test-admin.sh 为自动部署脚本 内容为:
-
#!/bin/bash
-
#修改为jar包实际路径
-
SpringBoot=/home/admin/data/package/
test-admin-0.0.1-SNAPSHOT.jar
-
-
if [
"$1" =
"" ];
-
then
-
echo -e
"\033[0;31m 未输入操作名 \033[0m \033[0;34m {start|stop|restart|status} \033[0m"
-
exit 1
-
fi
-
-
if [
"$SpringBoot" =
"" ];
-
then
-
echo -e
"\033[0;31m 未输入应用名 \033[0m"
-
exit 1
-
fi
-
-
function
start()
-
{
-
count=`ps -ef |grep java|grep
$SpringBoot|grep -v grep|wc -l`
-
if [
$count != 0 ];
then
-
echo
"$SpringBoot is running..."
-
else
-
echo
"Start $SpringBoot success..."
-
#nohup java -jar $SpringBoot > /dev/null 2>&1 &
-
nohup /usr/
local/jdk1.8.0_221/bin/java -jar
$SpringBoot --spring.profiles.active=
test > /home/admin/data/logs/
test-admin/catalina.out 2>&1
-
fi
-
}
-
-
function
stop()
-
{
-
echo
"Stop $SpringBoot"
-
boot_id=`ps -ef |grep java|grep
$SpringBoot|grep -v grep|awk
'{print $2}'`
-
count=`ps -ef |grep java|grep
$SpringBoot|grep -v grep|wc -l`
-
if [
$count != 0 ];
then
-
kill
$boot_id
-
count=`ps -ef |grep java|grep
$SpringBoot|grep -v grep|wc -l`
-
-
boot_id=`ps -ef |grep java|grep
$SpringBoot|grep -v grep|awk
'{print $2}'`
-
kill -9
$boot_id
-
fi
-
}
-
-
function
restart()
-
{
-
stop
-
sleep 2
-
start
-
}
-
-
function
status()
-
{
-
count=`ps -ef |grep java|grep
$SpringBoot|grep -v grep|wc -l`
-
if [
$count != 0 ];
then
-
echo
"$SpringBoot is running..."
-
else
-
echo
"$SpringBoot is not running..."
-
fi
-
}
-
-
case
$1
in
-
start)
-
start;;
-
stop)
-
stop;;
-
restart)
-
restart;;
-
status)
-
status;;
-
*)
-
-
echo -e
"\033[0;31m Usage: \033[0m \033[0;34m sh $0 {start|stop|restart|status} {SpringBootJarName} \033[0m
-
\033[0;31m Example: \033[0m
-
\033[0;33m sh $0 start esmart-test.jar \033[0m"
-
esac
6、最后点击应用保存 执行
第二列:乌云和太阳的图标代表最近构建的情况
查看具体执行情况时可查看控制台日志
当执行结果为Finished: SUCCESS即代表成功,最后再去确认下项目是否获取最新代码并重启了
7、注意事项
可能会因为jenkins没有sudo权限而执行失败
解决方案 切换为root用户 在/etc/sudoers找到 ## Same thing without a password 然后在下方添加
jenkins ALL=(ALL) NOPASSWD: ALL
具体步骤:
su - root chmod u+w /etc/sudoers vim /etc/sudoers #添加 jenkins ALL=(ALL) NOPASSWD: ALL chmod u-w /etc/sudoers或者直接改变jenkins用户
vim /etc/sysconfig/jenkins 找到JENKINS_USER="jenkins"
将JENKINS_USER="jenkins"改为JENKINS_USER="root"
JENKINS_USER="root"
重启:service jenkins restart
转载:https://blog.csdn.net/q854214434/article/details/106124396