jenkins 实操 笔记

本文详述了在2019年6月通过Docker安装Jenkins 2.164.3的步骤,包括Docker的安装、Jenkins的启动与初始化、全局插件配置、权限管理插件Role-based Authorization Strategy的安装与配置。此外,还介绍了创建任务、配置Git源、构建脚本、构建后操作、自动部署至远程服务器以及Vue前端项目的发布流程。

本文是在2019年6月编写,安装时,执行的是 docker pull jenkins/jenkins:lts,最终安装完jenkins的版本为2.164.3

 

1、安装docker 参照docker官网安装,没什么特别的 https://docs.docker.com/install/linux/docker-ce/centos/

 

下面给出我安装的步骤:

sudo yum update
#安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
#设置yum源为阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安装docker
sudo yum install docker-ce
#安装后查看docker版本
docker -v
#设置ustc的镜像 
vi /etc/docker/daemon.json  
```
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
```
# 启动docker:
systemctl start docker

2、docker 安装完了,安装jenkins

# 官方维护的jenkins docker镜像  好像废弃了,交给了一个社区维护
#官方地址,在官方地址里面可以发现上面写着DEPRECATION NOTICE,从下面能找到最新社区地址
https://hub.docker.com/_/jenkins
#最新社区地址
https://hub.docker.com/r/jenkins/jenkins
#拉去镜像
docker pull jenkins/jenkins
#运行 (运行前注意一下,挂着路径jenkins可能没有权限读写,我是先创建了个jenkins账户,然后在jenkins 的home目录下,建了个挂载目录没有这个问题)
#还要注意个时间,时区问题  加上 -v /etc/localtime:/etc/localtime  -v /etc/timezone:/etc/timezone
docker run -di -p 8080:8080 -p 50000:50000 --name=jenkins  -v /etc/localtime:/etc/localtime -v /var/jenkins_home:/var/jenkins_home jenkins

3、安装完了在浏览器中打开jenkins,安装提示输入初始密码,建立账户,即可进入jenkins

 

4、在全局配置中配置一下初始插件,基本上自动安装即可了

 

5、安装权限管理插件 Role-based Authorization Strategy

安装完,参照这个文档https://blog.youkuaiyun.com/bluemoon10086/article/details/79403463配置即可

5.1 添加角色

 

 

5.2 给角色授权

 

6、创建一个任务

 

7、配置任务

添加git地址,添加一个git账户,这个首先在git上建好,只有read权限的账户

添加构建脚本 clean bootJar

 

 

添加构建后的操作 **api**/build/lib/**/*.jar

 

8、构建任务

这里有个注意的地方,如果使用的是gradle,选择自动安装时,安装速度极慢,建议还是下载好,指定home目录为妥

 

 

9、最终构建完成

 

10 、还差一点、就是自动部署

 

需要装两个插件

Publish Over SSH用于连接远程服务器

 

安装完,在系统管理里面找publish over ssh

 

这里,我直接用的远程服务器用户名密码的方式,这个就需要远程服务器上统一了

 

11、jar-远程发布

 

脚本

 

**api**/build/libs/*.jar
**api**/build/libs/*.jar
hirong-qrcode-web-api/build/libs/
upload
bash /var/publish/publish.sh hirong-qrcode-web-api  --server.port=8088

jar 远程部署启动脚本 -- shell脚本

#!/bin/bash
_name=$1
_basePath="/opt/web"
echo "$1 文件上传成功!"
_param=$2
echo "传递参数 ${_param}"
_date=`date +%Y%m%d%H%M%S`
if [ ! -d "${_basePath}/${_name}/backup" ];then
  echo "即将创建目录:${_basePath}/${_name}/backup"
  mkdir -p ${_basePath}/${_name}/backup
fi
cp -f ${_basePath}/upload/${_name}*.jar ${_basePath}/${_name}/backup/${_name}_${_date}.jar
cp -f ${_basePath}/upload/${_name}*.jar ${_basePath}/${_name}/${_name}.jar

ID=`ps -ef | grep "${_name}" | grep -vE "grep|test.sh|publish.sh" | awk '{print $2}'`
if [ ! -n "$ID" ]; then
 echo "之前服务器上未运行${_name}"
else
 echo $ID
 echo "---------------"
 for id in $ID
 do
  kill -9 $id
 echo "killed $id"
 echo `ps -ef|grep $id`
 done
 echo "---------------"
fi
echo "即将启动${_name}.jar 服务..."
echo "执行脚本:java -jar ${_basePath}/${_name}/${_name}.jar ${_param} "
cd ${_basePath}/${_name}
rm -rf logs_bak
mv logs logs_bak
mkdir logs
source /etc/profile
# nohup java -jar ${_basePath}/${_name}/${_name}.jar ${_param} >/opt/null  2>&1  &
nohup java -jar ${_basePath}/${_name}/${_name}.jar ${_param} > ${_basePath}/${_name}/logs/catalina.out &
echo "即将读取日志..."
sleep 2s
while [ -f ${_basePath}/${_name}/logs/catalina.out ]
do
    echo `tail -n5 ${_basePath}/${_name}/logs/catalina.out`
    SuccessResult=`grep "Started" ${_basePath}/${_name}/logs/catalina.out `
    ErrorResult=`grep "Failed to start" ${_basePath}/${_name}/logs/catalina.out `
    if [[ "$SuccessResult" != "" ]]
    then
        echo `tail -n500 ${_basePath}/${_name}/logs/catalina.out`
        echo "服务启动成功........success..."
        break
    elif [[ "$ErrorResult" != "" ]] ; then
        echo `tail -n500 ${_basePath}/${_name}/logs/catalina.out`
        echo "服务启动失败 ........Failed ......"
        exit 1
        break
    else
        echo "服务启动中 .....waiting.."
        sleep 1s
    fi
done


echo "end"

12、前端web-vue 发布脚本

a、首先要在插件管理中添加nodejs 插件

b、添加完在构建环境需要选一下构建环境

cd /var/jenkins_home/workspace/hirong-web-admin
npm install --registry=https://registry.npm.taobao.org
npm run build:stage
cd dist
rm -rf hirong-web-admin.tar.gz
tar -zcvf hirong-web-admin.tar.gz *

构建完成之后操作

html_publish.sh 脚本

#!/bin/bash
_name=$1
_basePath="/opt/web"
echo "$1 文件上传成功!"
_date=`date +%Y%m%d%H%M%S`
if [ ! -d "${_basePath}/html/backup/${_name}" ];then
  echo "即将创建目录:${_basePath}/html/backup/${_name}"
  mkdir -p ${_basePath}/html/backup/${_name}
fi
rm -rf ${_basePath}/html/${_name}
mkdir -p ${_basePath}/html/${_name}

cp -f ${_basePath}/upload/${_name}*.tar.gz ${_basePath}/html/backup/${_name}/${_name}_${_date}.tar.gz
cp -f ${_basePath}/upload/${_name}*.tar.gz ${_basePath}/html/${_name}/${_name}.tar.gz
cd ${_basePath}/html/${_name}/
tar -zxvf ${_name}.tar.gz
rm -rf ${_name}.tar.gz
echo "end"

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值