搭建自己的服务器环境之Jenkins的安装和使用

5. 自动化部署-Jenkins

官方文档

5.1 下载安装
war包下载运行
# 创建jenkins目录和工作目录
mkdir -p /opt/jenkins & mkdir -p /opt/jenkins/jenkins-data
cd /opt/jenkins
# 下载war包(很慢,可以本地先用下载工具下载下来,再scp到服务器
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war

由于需要用到启动和重启停止的功能,这里提供一个脚本来对应用进行操作

# 进入目录
cd /opt/jenkins
# 创建脚本文件,将下面的内容粘贴进来,保存退出
vim deploy.sh
# 赋予可执行权限
chmod +x deploy.sh

deploy.sh脚本内容

#!/bin/bash
# service running script.
source /etc/profile
action=$1
app=jenkins.war
# 清空日志
cp /dev/null nohup.out
  nohup java -Duser.home=/opt/jenkins/jenkins-data/ -Dhudson.util.ProcessTree.disable=true -Xms256m -Xmx512m -Djenkins.model.Jenkins.slaveAgentPort=50000 -jar $app --httpPort=8801 &
elif [ ${action} == 'stop' ];then
  ps -ef| grep $app | grep -v grep | awk '{print $2}' | xargs kill -15
elif [ ${action} == 'restart' ];then
  ps -ef| grep $app | grep -v grep | awk '{print $2}' | xargs kill -9
  sleep 2
  nohup java -Duser.home=/opt/jenkins/jenkins-data/ -Dhudson.util.ProcessTree.disable=true -Xms256m -Xmx512m -Djenkins.model.Jenkins.slaveAgentPort=50000 -jar $app --httpPort=8801 &
fi

war包运行脚本

说明:

  1. user.home 用来执行jenkins的工作目录, 会在这个目录下生成一个.jenkins的隐藏目录存储jenkins的数据
  2. hudson.util.ProcessTree.disable 这个是jenkins会杀死子进程的特性会导致运行脚本不起作用,所以这里一股脑的给禁用掉了
  3. –httpPort=8801 执行jenkins应用启动端口,注意这里是两个-, 但是这里渲染的看起来像一个
  4. jenkins.model.Jenkins.slaveAgentPort 有一个特性需要用到,这里开启备用
cd /opt/jenkins
# 启动
./deploy.sh start
# 重启
./deploy.sh restart
# 停止
./deploy.sh stop

查看启动日志,jenkins已经启动完成, 使用ip:8801访问,注意日志中会打印密码以及密码所在目录
查看启动日志,jenkins已经启动完成, 使用ip:8801访问,注意日志中会打印密码以及密码所在目录
输入密码之后, 解锁jenkins,一路按照指示安装,第一个安装建议的插件就行了,后续需要再单独下载,然后跟着步骤继续创建管理员帐号, 这部分跟着步骤会提示的,就不详细说明了

5.2 插件安装

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2P5ZVRG8-1606813343627)(index_files/image-20201123195437294.png)]

5.2 配置

配置不区分经典版和Blue Ocean,只是可能入口会多一些通道,但最终都能从主界面进去,因此不单独说明

5.2.1 全局工具配置

注意这些全局用到的工具,一定是提前安装好的,所以要按照自己机器的情况填入正确的路径
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.2.3 个人信息配置

登录后右上角,个人信息图标点击后选择配置

  • API Token
    后面可以用来作为远程构建的参数凭证
    在这里插入图片描述

    在这里插入图片描述

    这个要复制下来记住备用,后面再进来的时候就看不到了
    在这里插入图片描述

5.4 经典版构建任务

通过maven插件的安装,现在构建任务时会多出来一个构建一个maven项目,我们用到的就是这一个

在这里插入图片描述

在这里插入图片描述

General

在这里插入图片描述

Source Code Management

在这里插入图片描述

添加凭证

在这里插入图片描述

Build Triggers

在这里插入图片描述

Build Environment

在这里插入图片描述

Build

在这里插入图片描述

Post Steps

在这里插入图片描述

在这里插入图片描述

这里即为上面脚本的内容,但这部分内容主要是为了理解要做什么,因为不同的应用情况这里执行的情况会有所不同。例如以下脚本的各种目录,这个要根据自己的情况,自己的项目放在了哪台服务器的哪个目录下,启动的方式是什么, 用的什么脚本来启动的,然后就要调整下面的内容,具体详细看一下下面的解释应该就能明白了,其实一共也就两行命令。

#!/bin/bash
# 避免子进程被杀死,无法执行后面的部署脚本
BUILD_ID=dontKillMe
source /etc/profile
# 将构建后的可执行jar包拷贝到项目部署目录, $WORKSPACE/boot-quick/target/spring-boot-quick-exec.jar根据项目名称以及打包后的jar包所在目录和可执行jar包名称按需修改
#   这里$WORKSPACE是jenkins变量为工作空间目录, target/spring-boot-quick-exec.jar为构建后可执行jar包所在目录, 统一在一起也是一个目录
# 拷贝这里有两种情况, 一种是项目部署和jenkins服务器再同一台服务器,那么这里就会变成本地拷贝, 如果不再同一台服务器就要写scp,而且还要配置ssh免登陆
# cp $WORKSPACE/target/spring-boot-quick-exec.jar /opt/services/boot-quick/
\cp -r $WORKSPACE/target/spring-boot-quick-exec.jar /opt/services/boot-quick/
# 执行部署脚本
cd /opt/services/boot-quick/ && sh deploy.sh restart
PUSHLISH OVER SSH(可选)

如果jenkins和目标服务不在同一台服务器除了上面说的用scp命令以外,还可以借助于这个插件,配置目标服务器的认证信息以及传输文件和目标文件夹等然后执行脚本命令等操作。

保存以上配置
构建入口

在这里插入图片描述

在这里插入图片描述

远程构建

参考步骤Build Triggers里的截图部分,将下面的提示url和token组合起来可以触发远程构建,这样不需要进入jenkins,直接访问一下这个url就能触发构建,配合脚本使用,可以节省很多时间,
按上面的例子则为http://xxxxxx:8801/job/boot-quick/build?token=11173ff1df11042e355xxxxxxx

这里有一个特例,在构建步骤General中之前说过有一个参数化构建的选项, 如果自己用到了这个参数化构建,且定义了参数而且在下面的execute shell中用到了这个变量,那么对应的远程构建也要通过url传递这个参数,所以看Build Triggers那里,有两个地址说明一个是简单的build还有一个是buildWithParameters,如果用到了别的参数的话就需要用到这个,当然也可以统一,不论用没有别的参数都用这个
例如http://xxxxxx:8801/job/boot-quick/buildWithParameters?token=11173ff1df11042e355xxxxxxx&param1=hahah&host=127.0.0.1

注意
经过测试,在浏览器上打开是可以直接构建,但原因可能是因为帐号已经登录了,并不是传参生效,因为在脚本中没有生效,还是提示没有权限,要登录。
参考https://stackoverflow.com/questions/25394445/jenkins-authentication-fails

# ApiToken的获取方式在上面有提到
curl -u dingdongfang:${ApiToken} http://xxxx:8801/job/boot-quick-gitee/build?token=11173ff1df11042e3558f45900278ba80d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值