Jenkins安装+部署

系统:centos7,以部署spring cloud 项目的jar包为例。

1,准备环境:jdk maven

首先,需要jdk是必须要安装好的。本人使用的linux是centos,直接使用yum安装。

  先找到合适的版本:

yum search java | grep jdk

  然后运行安装:

yum install 合适版本全称

  安装maven(看个人使用的项目构建工具自行选择)

yum install maven

  安装git(看个人项目管理工具自行选择)

yum install git

2,安装Jenkins

官网下载安装包:https://jenkins.io/download/ 。 按照自己的系统选择下载。

软件准备:

jenkins-2.7.4-1.1.noarch.rpm      java环境

安装jenkins:

[root@localhost modules]# rpm -ih jenkins-2.7.4-1.1.noarch.rpm

jenkins 常用命令:

service jenkins start/stop/restart

chkconfig jenkins on

jenkins的目录结构:

/usr/lib/jenkins/jenkins.war     WAR包 

/etc/sysconfig/jenkins          配置文件

/var/lib/jenkins/               默认的JENKINS_HOME目录

/var/log/jenkins/jenkins.log      Jenkins日志文件

修改jenkins端口:

vim /etc/sysconfig/jenkins

JENKINS_PORT="8888"

防火墙、端口开放设置:

iptables设置:

[root@localhost modules]# vim /etc/sysconfig/iptables

# Firewall configuration written by system-config-firewall

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT



firewalld设置:

firewall-cmd --zone=public --add-port=8888/tcp --permanent

firewall-cmd --zone=public --add-port=8888/udp --permanent

firewall-cmd --reload

默认密码:

[root@localhost secrets]# cat /var/lib/jenkins/secrets/initialAdminPassword

97c675381d524414ba11e61c4f4b7ef0

安装插件:

jenkins修改启动用户,解决执行脚本权限问题

1.将jenkins账号分别加入到root组中

gpasswd -a root jenkins



2.修改/etc/sysconfig/jenkins文件中,

# user id to be invoked as (otherwise will run as root; not wise!)

JENKINS_USER=root

JENKINS_GROUP=root

修改为root权限运行



3.重启Jenkins

service Jenkins restart

部署脚本(方案一)

#maven打包
mvn clean package
#杀掉现有进程
sh /root/shutdown.sh cb-app
#备份,更新jar包
today=$(date +%Y-%m-%d-%H%M%S)
mv /root/jar-path/cb-app.jar /root/jar-path/backup/cb-app-$today.jar
mv /var/lib/jenkins/workspace/cb-user/target/cb-app.jar /root/jar-path
#重设buildId,守护进程不被杀死(Jenkinsbuild后会杀死所有子进程)
export BUILD_ID=dontKillMe
#启动
nohup java -jar -Xms256m -Xmx512m -jar /root/jar-path/cb-app.jar >/dev/null 2>&1 &
#必须sleep几秒钟,否则无法启动
sleep 5s

部署脚本(方案二)

注:cb-app为jar包名称。

jenkins-server.sh脚本内容:

#!/bin/sh

if [ ! -n "$JAVA_HOME" ]; then
#JDK安装路径
export JAVA_HOME="/home/jdk1.8.0_144"

fi



#进程名称(jar包名称)

PROCESS_NAME=$1

#进程ID

PID=0

#Jenkins工作空间路径

JENKINS_WORKSPACE="/var/lib/jenkins/workspace"

#jar包放置的目标位置(自定义)

JAR_TAGET_PATH="/root/jar-path/"

#jar备份位置(自定义)

JAR_BACKUP_PATH="/root/jar-path/backup"



#maven打包

cd $JENKINS_WORKSPACE/$PROCESS_NAME

mvn clean package



#杀掉已有进程

javaps=`$JAVA_HOME/bin/jps -l | grep $PROCESS_NAME`

if [ -n "$javaps" ]; then

PID=`echo $javaps | awk '{print $1}'`

else

PID=0

fi

echo 'running PID:'$PID

if [ $PID -ne 0 ]; then

echo -n "Stopping $PROCESS_NAME(PID=$PID)..."

kill -9 $PID

echo "[kill process success-PID:$PID]"

else

echo "$PROCESS_NAME is not running"

fi

echo "===================================================KILL PROCESS SUCCESSFUL==========================================================="



#jar包备份,移动至标的位置

today=$(date +%Y-%m-%d-%H%M%S)

mv $JAR_TAGET_PATH/$PROCESS_NAME.jar $JAR_BACKUP_PATH/$PROCESS_NAME-$today.jar

mv $JENKINS_WORKSPACE/$PROCESS_NAME/target/$PROCESS_NAME.jar $JAR_TAGET_PATH

echo "jar包部署路径:$JAR_TAGET_PATH/$PROCESS_NAME.jar"

echo "jar包备份路径:$JAR_BACKUP_PATH/$PROCESS_NAME-$today.jar"

echo "===================================================MANAGE JAR SUCCESSFUL============================================================="



#启动jar包

export BUILD_ID=dontKillMe

nohup java -jar -Xms256m -Xmx512m -jar $JAR_TAGET_PATH/$PROCESS_NAME.jar >/dev/null 2>&1 &

sleep 5s

echo "$PROCESS_NAME start success!"

echo "===================================================START JAR SUCCESSFUL==============================================================="

猜你喜欢

转载自blog.csdn.net/sunfragrence/article/details/84973532
今日推荐