jenkins 安装以及svn,git持续集成

环境准备

  1. 三台服务器
  2. jenkins 部署包以及各种插件,可在百度网盘中找到:jenkins-2.330-1.1.noarch.rpm
  3. 插件地址: 水木清华jenkins插件地址
  4. 持续集成概念图(图片来源于网络,侵删)

jenkins rpm安装

  1. 安装 jdk1.8
  2. 上传 jenkins-2.335-1.1.noarch.rpm 到 /opt 目录
  3. 安装: rpm -ivh jenkins-2.330-1.1.noarch.rpm
  4. 设置jdk:vi /etc/init.d/jenkins
        candidates="
        /etc/alternatives/java
        /usr/lib/jvm/java-1.8.0/bin/java
        /usr/lib/jvm/jre-1.8.0/bin/java
        /usr/lib/jvm/java-11.0/bin/java
        /usr/lib/jvm/jre-11.0/bin/java
        /usr/lib/jvm/java-11-openjdk-amd64
        /usr/bin/java
        /usr/local/jdk8u322-b06/bin/java
        "
    
  5. 启动:service jenkins start
  6. 安装插件,将百度云的 软件/jenkins/plugins 下的内容复制到 /var/lib/jenkins/plugins

jenkins war安装

  1. 安装 jdk1.8
  2. 创建目录:mkdir /usr/local/jenkins
  3. 上传 jenkins.war 到 /usr/local/jenkins 目录
  4. 启动
    nohup java -jar jenkins.war --httpPort=8080 --prefix=/jenkins &
    

jenkins 使用nginx做代理访问

  1. 修改配置文件,找到对应位置:
    vi /etc/sysconfig/jenkins
    JENKINS_PORT="8080"
    JENKINS_ARGS="--prefix=/jenkins"
    
  2. 启动:service jenkins start
  3. 安装 nginx,并修改 nginx 的配置文件,添加以下映射:
    vi /usr/local/nginx/conf/nginx.conf
     location /jenkins/ {
            proxy_pass http://127.0.0.1:8080;
        }
    
  4. 启动 nginx
    /usr/local/nginx/sbin/nginx
  5. 访问 http://192.168.3.112/jenkins

jenkins 和 svn 整合成持续集成

  1. 安装 svn
  2. 安装 maven,获取安装路径为:/usr/local/apache-maven-3.6.3
  3. 访问 localhost:8080,按照提示完成初始化操作,跳过插件安装步骤
  4. 配置 maven、jdk : Manage jenkins -> Global Tool Configuration


  5. 配置 svn 的用户名和密码:Manage jenkins -> Manage Credentials -> 添加凭据
  6. 配置远程服务器地址:
  7. 由于jenkins需要有maven仓库读写的权限:
    chmod 777 /usr/local/apache-maven-3.6.3/repository
    
  8. 将项目上传到 svn 中,并获得仓库地址:svn://192.168.3.110/ci
  9. 新建一个任务


  10. 在 svn 服务器里面创建一个钩子程序,在 post-commit 之后触发自动编译部署
    cd /var/svn/repository/ci/hooks
    cp post-commit.tmpl post-commit
    chmod +x post-commit
    vi post-commit
    
    注释原有的,内容如下:
    #REPOS="$1"
    #REV="$2"
    #mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf
    # token为项目触发那里设置的
    curl -X post -v -u admin:admin  http://192.168.3.112:8080/jenkins/job/ci/build?token=ci_token
    

jenkins 和 github 整合成持续集成

  1. 在 jenkins 服务器上安装 git,用于检出代码
  2. 在 jenkins 管理界面配置 git
  3. 在github 仓库下创建 webhook:项目->settings->webhooks
  4. 在 jenkins 关闭 "防止跨站点请求伪造"

可能出现的问题

  1. daemonize is needed by jenkins-2.330-1.1.noarch
    yum install -y epel-release
    yum install -y daemonize
    
  2. AWT is not properly configured on this server. Perhaps you need to run your container with "-Djava.awt.headless=true"?
     yum install -y fontconfig
     service jenkins restart
    
  3. 设置 jenkins 部署启动之后不删除进程?
    在 脚本开头增加  
    BUILD_ID=DONTKILLME
    

posted @ 2022-05-13 18:05  君子如珩~  阅读(297)  评论(0编辑  收藏  举报