jenkins构建过程的wiki

写在前面—基础平台jenkins搭建的必要性

  • 由于hubble 系统此前没有引入jenkins进行自动化构建部署项目,开发人员需要操作服务器或者使用ftp之类的工具来进行项目的部署发布,这样的操作既繁琐又容易出错,如果有jenkins,就会事半功倍。

过程文档(本过程在CentOS 服务器搭建,搭建使用的服务器为:10.75.26.77)

0.前言

  • 运行环境: java 8 以上(8版本以下jdk)

    安装前可以查看java 版本

     $ java -version
    

    未安装jdk 通过下面命令安装

     yum -y install java-1.8.0-openjdk
    

1.jenkins 安装

  • 安装
    注意使用yum 安装比较慢,我是把安装包下载下来之后移动到文件夹中的 下载的安装包版本为jenkins-2.227-1.1.noarch.rpm
cd /etc/yum.repos.d/
wget http://pkg.jenkins.io/redhat/jenkins.repo
rpm --import http://pkg.jenkins.io/redhat/jenkins.io.key

将jenkins-2.227-1.1.noarch.rpm文件移动到/etc/yum.repos.d/目录下 执行下面

rpm -ih jenkins-2.227-1.1.noarch.rpm
  • 启动jenkins
 service jenkins start

以下是扩展的几个操作jenkins常用的方法

rpm -e jenkins  // rpm卸载jenkins
rpm -ql jenkins  // 检查是否卸载成功
service jenkins stop // 停止运行jenkins
  • 浏览器访问jenkins 默认端口欧8080启动的浏览器http://base.biz.weibo.com:8080/

     yum -y install java-1.8.0-openjdk
    

2.jenkins 使用

  • 配置gitlab仓库

    • 安装git插件
    • 新建一个项目 填写我们自己的gitlab 仓库地址 这样远程仓库就和我们的jenkins进行了关联
  • 配置构建脚本

    • 构建脚本可以分步进行 分为在jenkins 工作目录进行安装代码依赖包 和 运行编译代码的过程以及将生成的静态资源部署到对应服务器的过程
    • shell命令如下
      安装依赖和运行编译代码
       chown -R jenkins.jenkins /var/lib/jenkins
       cd /data0/jenkins/workspace/hubble_test/m/Hubble-fe
       rm -rf node_modules
       rm -rf package-lock.json
       npm install cnpm -g
       cnpm install
       npm run testbuild
      
      部署到服务器上的脚本如下

    #!/bin/bash
    cd /data0/jenkins/workspace/hubble_test/pro
    rm -rf hubble_test.tar.gz #删除上次打包生成的压缩文件(一般建议备份,不要直接删除,这边测试就无所谓啦)
    tar -zcvf hubble_test.tar.gz * #把生成的项目打包成压缩包,方便移动到项目部署目录
    cd /data1/hubbleweb/Hubble-Fe #进入web项目根目录
    mv /data0/jenkins/workspace/hubble_test/pro/hubble_test.tar.gz ./ #移动刚刚打包好的项目到web项目根目录
    tar -zxvf hubble_test.tar.gz -C pro/ #解压项目到pro目录
    rm -rf hubble_test.tar.gz #删除压缩包

    看到这里,你一定有一个疑惑,那就是我jenkins是在10.75.26.77 这台服务器上搭建的,而我的前端项目hubble是在10.13.40.64和10.77.31.233 这两台服务器搭建的,jenkins是如果操作服务器权限的呢,问了几个运维的同学,他们说的大多阳春白雪,比如说Send build artifacts over SSH 这个工具或者使用类似的
    
rsync -az -e ssh --delete /opt/jenkins/workspace/abc/ root@172.16.1.1:/opt/www/abc/

命令实现,再或者说ansible等等。术业有专攻,咱也不是专业的,就搞点下里巴人的东西就好了,所以选择了代理服务的方式,这种方式比较简单,另一个选择他的原因是,我们如果选择ssh方式链接需要走跳板机的流程,我们为了绕过这个流程,选择代理服务的方式。只需要把几个jar包放到目标服务器上的某一个位置,然后执行一段脚本即可
在jenkins操作页面增加10.13.40.64 这台机器的节点管理

  • 全局安全配置
    在增加节点的时候 需要在全局安全配置中设置 否则会保存不成功,指定端口选择随机选取即可,这样在增加节点的时候才可以增加成功
    TCP port for inbound agents
    指定端口 : 随机选取
    下面是一个全局安全配置的截图
    -[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rBzweRkP-1589883362073)(http://guozimo.top/static/img/qj.png)]

  • 限制项目的运行节点配置
    Help for feature: 限制项目的运行节点
    标签表达式 填写成我们刚才增加的节点管理的name即可 name不可以为中文 否则保存会报错,不会成功

  • 10.13.40.64 这台机器需要安装一个agent.jar包到相应的目录下面
    在这个jar所在的目录运行如下的脚本,静默运行

java -jar agent.jar -jnlpUrl http://10.75.26.77:8080/computer/10.13.40.64/slave-agent.jnlp -secret ad75a378972525c2575bb546827d0e1d55c5d2f0897c7d84772e0bb1dcf616f8 -workDir "/data0/jenkins" 1>/dev/null  2>&1  &
  • 构建项目时,会在10.13.40.64 这台机器上生成对应的项目
    生成的目录如下 /data0/jenkins/workspace/

详细的内容见如下的截图展示
-[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PEMy1rYp-1589883362075)(http://guozimo.top/static/img/image/gj1.png)]
-[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FoptJ4GS-1589883362084)(http://guozimo.top/static/img/image/gj2.png)]
-[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cbn90RUx-1589883362098)(http://guozimo.top/static/img/image/gj3.png)]
-[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mGkSFWwi-1589883362104)(http://guozimo.top/static/img/image/gj4.png)]
-[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s2ToMGPf-1589883362109)(http://guozimo.top/static/img/image/gj5.png)]
-[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MlSEwTLN-1589883362116)(http://guozimo.top/static/img/image/jdgl1.png)]
-[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ldpff8IJ-1589883362126)(http://guozimo.top/static/img/image/jdgl2.png)]

参考文献:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值