• [CI]jenkins安装&插件管理&java-helloworld之旅


    持续集成概述

    • 没有持续集成时的情况

    持续集成最佳实战

    • 维护一个单一的代码库
    • 使构建自动化
    • 执行测试是构建的一部分
    • 集成日志及历史记录
    • 使用统一的依赖包管理库
    • 每天至少集成一次

    jenkins实现持续集成、自动测试、持续部署的超级引擎,支持自定义工具集、多种交付通道。

    jenkins rpm安装

    yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
    下载地址
        https://pkg.jenkins.io/redhat-stable/
    
    RPM安装
        rpm –ivh jenkins-2.32.3-1.1.noarch.rpm
        service jenkins start
        ckconfig Jenkins on
    
    /var/lib/jenkins 主目录
    /etc/init.d/jenkins 启动文件
    /var/cache/Jenkins 程序文件
    /var/log/Jenkins 日志文件
    
    
    修改/etc/init.d/Jenkins
    将用户修改为root,可以调用root工具
    106行,113行
    修改启动端口85行,$JENKINS_PORT
    systemctl daemon-reload
    service jenkins restart
    
    工作目录设置
    Maven项目配置
    设置系统JDK ANT MAVEN
    Jenkins Location
    邮件通知
    
    Configure Global Security
    

    调试模式启动:(这里要说的)

    java -jar jenkins.jar
    
    - 指定参数启动
    /usr/local/jdk_8u25/bin/java -Dhudson.model.DownloadService.noSignatureCheck=true -Djava.awt.headless=true -DJENKINS_HOME=/log/data/jenkins -jar /log/jenkins_war/jenkins.war --logfile=/var/log/jenkins/jenkins.log --httpPort=8080 --httpListenAddress=192.168.10.1 --ajp13Port=-1 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
    
    

    工作目录:

    /root/.jenkins/workspace/  
    

    如构建java-helloword项目

    /root/.jenkins/workspace/java-helloword/ 
    
    • 所有stage里执行命令都是基于这个目录
    • 每次构建会将这个项目目录git pull拉代码覆盖到最新代码.
    • jenkins执行的所有命令都是基于这个目录进行的.

    安装jenkins插件

    默认的插件

    常用的插件

    其次手动安装pipeline插件

    更换插件镜像

    全部镜像
    http://mirrors.jenkins-ci.org/status.html
    更换镜像
    http://updates.jenkins-ci.org/update-center.json
    https://mirrors.tuna.tsinghua.edu.cn/
    http://mirror.esuni.jp/jenkins/updates/update-center.json
    https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

    更新: 如果安装不上插件(我发现最新的war lts包) 可以先java -jar jenkins.war 然后停下

    改成
    https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

    插件目录需要备份

    解压备份plugin.tar.gz
      mv plugins /var/lib/jenkins/
      chown -R jenkins.jenkins plugins/
      service jenkins restart
    

    最简单的java-helloworld自动构建之旅-手动mvn打包

    mvn安装和阿里云源配置参考: https://github.com/lannyMa/java-helloword

    cd /usr/local/src/
    git clone https://github.com/lannyMa/java-helloword.git
    cd java-helloworld
    mvn clean
    mvn package
    cd target
    java -jar testweb-v1.0.jar
    

    最简单的java-helloworld自动构建之旅-配置jenkins自动编译打包

    mvn安装和阿里云源配置参考: https://github.com/lannyMa/java-helloword


    安装好jenkins后,直接开始新建项目:(默认你已安装pipline插件)

    新建一个pipeline项目

    配置pipeline

    stage 'prepare'
    node{sh "mvn -v" }
    
    node{
        git "https://github.com/lannyMa/java-helloword.git"
        state: 'clean'
        sh 'mvn clean'
        stage 'package'
        sh 'mvn package'
        stage 'test'
        sh 'java -jar target/testweb-v1.0.jar'
    }
    

    构建

    构建完毕!!!

    以下是以前整理的一些jenkins目录细节,个人觉得没必要细究了.

    我们主要关注这些

    • 安装目录
    • 数据目录
    • 日志目录
    • jobs目录
    • 插件目录
    • 数据目录 /var/jenkins_home

    安装jenkins(物理机jar包方式)

    选择lts版.

    发现lts版的http://updates.jenkins-ci.org/update-center.json这个插件源可以更新插件,每周更新版的那个却没法更新,很蛋疼.

    docker启动jenkins

    参考: https://github.com/jenkinsci/docker/blob/master/README.md

    But if you want to attach build slave servers through JNLP (Java Web Start): make sure you map the port: -p 50000:50000 - which will be used when you connect a slave agent.

    8080是webui
    50000是jnlp协议slave来通讯的.

    docker run -d -u root 
        -p 8080:8080 
        -v /etc/localtime:/etc/localtime:ro 
        --restart=always 
        -v /var/run/docker.sock:/var/run/docker.sock 
        -v $(which docker):/bin/docker 
        -v /var/jenkins_home:/var/jenkins_home 
        --name=jenkins 
        jenkins
    
    

    创建1个job相当于创建1个类,每次构建相当于一次类的实例化.

    - 创建jobs
    
    - 立即构建
    
    - 查看jenkins目录
    
    - jenkin启动后目录文件结构:
        一般 /var/jenkins_home 或者/home/jenkins 或者 /root/.jenkins
    - 主要有jobs(存放jobs的配置以及每次构建结果)  plugin workspace文件夹
    - 进入jobs
    - 查看jobs的配置文件
    - 查看plugin目录
    - 每个插件1个文件1个目录
    
    

    制作最简单的用于jenkins测试的基于mvn的war包:
    http://www.cnblogs.com/iiiiher/p/7943097.html
    https://github.com/lannyMa/trucks/tree/master

  • 相关阅读:
    Vue2.0 $set()的正确使用方式
    Vue中axios踩坑之路-POST传参
    vue里使用create、mounted调用方法的正确姿势
    cmd返回上一级和根目录
    【积累】排序题积累
    【图论】2019 ICPC Malaysia National G(拓扑排序)
    2019 ICPC Malaysia National F(状态压缩)
    【线段树】扫描线学习笔记
    组合数(阶乘数质因子分解)
    【线段树】2019CCPC网络选拔赛 array(权值线段树)
  • 原文地址:https://www.cnblogs.com/iiiiher/p/7159309.html
Copyright © 2020-2023  润新知