jenkins部署心得

jenkins自动部署

  • jenkins安装
    • 1.下载jenkins
    • 2.安装jenkins
    • 3.配置jenkins
    • 4.启动服务
    • 5.访问链接,
  • jenkins配置
    • 1.java配置
    • 1.maven配置
  • 安装Publish Over SSH插件
    • 1.安装插件
    • 2.配置ssh servers
    • 3.配置参数构建
  • 安装node.js

安装jenkins前先安装java环境(略)

jenkins安装

1.下载jenkins

wget https://pkg.jenkins.io/redhat/jenkins-2.83-1.1.noarch.rpm

2.安装jenkins

rpm -ivh jenkins-2.83-1.1.noarch.rpm

3.配置jenkins

vi /etc/sysconfig/jenkins
可以修改用户和端口
JENKINS_USER=“jenkins” (这个可以改成root 不然jenkins会操作某些文件夹没有权限。)
JENKINS_PORT=“8080”

4.启动服务

systemctl start jenkins
如果是自定义安装的java,需要在/etc/rc.d/init.d/jenkins中添加java设置。否则服务无法启动。
jenkins部署心得_第1张图片

5.访问链接,

从/var/lib/jenkins/secrets/initialAdminPassword中获取初始密码串,一路继续,选推荐安装,填账号密码等。

jenkins配置

1.java配置

在全局工具设置中
jenkins部署心得_第2张图片

1.maven配置

安装插件
在这里插入图片描述
然后进入全局工具配置安装maven,这里使用自己下载的maven,方便配置settings.xml文件
jenkins部署心得_第3张图片
注意:构建的时候会报xxxxx.RELEASE.pom.part.lock (No such file or directory) and ‘parent.relativePath’ points at wrong local POM的错误,原因是jenkins用户没有权限不是root,修改仓库文件夹权限即可

#是否存在用户组:jenkins
 cat /etc/group|grep jenkins
#是否存在用户:jenkins
cat /etc/passwd|grep jenkins
#查看用户jenkins的用户组
 groups jenkins
————修改权限————
 chown -R jenkins:jenkins repository
 chmod -R g-w repository
 chmod -R o-wx repository

阿里云地址


      alimaven
      aliyun maven
      http://maven.aliyun.com/nexus/content/groups/public/
      *        

至此可以可以使用jenkins编译打包java jar报。部署在其他服务,还需要安装Publish Over SSH

安装Publish Over SSH插件

1.安装插件

jenkins部署心得_第4张图片

2.配置ssh servers

在系统配置中找到
jenkins部署心得_第5张图片
点击高级配置连接账号和密码。
注意:Remote Directory一定要设置,不然目录变成root目录下。

3.配置参数构建

jenkins部署心得_第6张图片
配置git,执行构建参数clean package -Dmaven.test.skip=true,构建后配置如下
jenkins部署心得_第7张图片
其中,startService为shell脚本

#!/bin/bash
source  /etc/profile
command=$1
jarName=$2
springProfilesActive=$3
serverPort=$4
echo "参数:$@   数量:$#"
usage="Usage: `basename $0` (start) jarName env serverPort "
#filePath=/usr/local/xxxxxx/
filePath=`pwd`
#echo ${filePath}
function start(){
	#关闭旧服务
	pid=`jps -l | grep ${jarName} | awk '{print$1}'`
	if [ $? -ne 0 ];
		then
		  echo "------------$?-----${pid}请配置java /etc/profile环境---------------"
		  exit 2
	fi
	
	#pid=`ps -ef | grep ${jarName} | grep -v 'grep' | awk '{print$2}'` #这个为空时表现与窗口不同
	echo "---$?----${pid}================="
	if [ -n "${pid}" ];then
	   kill -9 ${pid}
	   echo "=======原有服务pid=${pid}已经被停止========="
	fi
	#启动新服务
	echo ${filePath}
	cd ${filePath}
	ser=`nohup java -jar "${jarName}" -Duser.timezone="Asia/Shanghai" --spring.profiles.active=${springProfilesActive} --server.port=${serverPort} > /dev/null 2>&1 &`
	echo "后台启动服务======》${ser}"
	sleep 30

	result=`curl http://localhost:${serverPort}/swagger-ui.html`
	if [ $? -eq 0 ];
	   then
			echo "=======部署成功${springProfilesActive}========"
	  else
			 echo "-----------------部署失败${springProfilesActive}---------------"
			 tail -n 40  "${filePath}/mylog.log"
			 exit 2
	fi
}

function copy(){
	cd ${filePath}
	if test -e "${jarName}";
	   then
	   cp "${jarName}"  "${jarName}.bak"
	   echo "文件拷贝成功---------${springProfilesActive}"
	fi
}


case $command in
	(start)
		if [ $# -ne 4 ];then
		  echo "jarName=$2 springProfilesActive=$3  serverPort=$4"
		  exit 2
		fi
	   start
	   ;;
	(copy)
		if [ $# -ne 3 ];then
		  echo "jarName=$2 参数只能有两个 第一个copy 第二个jar包名,第三个环境"
		  exit 2
		fi
		copy
	;;
	(*)
		echo "Error command"
		echo "$usage"
    ;;
esac

安装node.js

1.安装
在这里插入图片描述
2.配置全局插件
jenkins部署心得_第8张图片
jenkins部署心得_第9张图片
执行shell

echo $PATH
node -v
npm -v
#npm install -g cnpm --registry=https://registry.npm.taobao.org
#cnpm install chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver
cnpm install 
cnpm run build
cd dist
rm -rf laserAdmin.tar
tar -zcvf laserAdmin.tar *
cd ../

远程执行的shell,目的是拷贝一个备份,如果不需要就不要这段。

#!/bin/bash
source  /etc/profile
devPath=/usr/local/nginx/html/dev
cd ${devPath}
#删除下面的所有文件,排除之前部署的压缩包
shopt -s extglob
rm -rf !(laserAdmin.tar)
#备份一个文件
if test -e laserAdmin.tar;
   then
   cp laserAdmin.tar laserAdmin.tar.bak
   echo "文件拷贝成功---------dev"
fi

拷贝到nginx下并解压,注意需要修改文件和文件夹权限。

#!/bin/bash
source  /etc/profile
devPath=/usr/local/nginx/html/dev
cd ${devPath}
#解压上传的包
tar zxvf laserAdmin.tar
chmod 644 `find -type f`
chmod 755 `find -type d`

你可能感兴趣的:(运维)