• CentOS 7 部署Gitlab+Jenkins持续集成(CI)环境


    持续集成概述及运行流程 :

    持续集成概述 :持续集成(Continuous integration)持续集成是指开发者在代码的开发过程中 ,可以频繁的将代码部署集成到主干,并进行自动化测试  开发→代码编译→测试

    持续交付:持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境

    持续部署:在持续交付的基础上,把部署到生产环境的过程自动化

     

    Jenkins概述 :是一个开源软件项目,是基于 Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能

    网方网站 :https://jenkins.io/ 

    搭建Jenkins实现持续集成

     Jenkins是Java编写的,所以需要先安装 JDK ,如果对版本有需求,可以直接在Oracle官网下载JDK

    http://www.oracle.com/technetwork/java/javase/downloads/

    [root@git ~]# tar xf jdk-8u181-linux-x64.tar.gz -C /usr/local/
    [root@git ~]# mv /usr/local/jdk1.8.0_181 /usr/local/java
    [root@git ~]# vim /etc/profile
    # 在末尾添加
    JAVA_HOME=/usr/local/java/
    JAVA_BIN=/usr/local/java/bin
    JRE_HOME=/usr/local/java/jre
    PATH=$PATH:/usr/local/java/bin:/usr/local/java/jre/bin
    CLASSPATH=/usr/local/java/lib:/usr/local/java/jre/lib/charsets/jar
    [root@git ~]# source /etc/profile
    [root@git ~]# java -version
    java version "1.8.0_181"
    Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
    Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

    添加yum源 下载安装Jenkins

    [root@git ~]# wget -O /etc/yum.repos.d/jenkins.repo  http://pkg.jenkins.io/redhat/jenkins.repo
    [root@git ~]# rpm --import http://pkg.jenkins.io/redhat/jenkins.io.key 
    [root@git ~]# yum -y install jenkins

    新版GitLab的服务端口为8080,为了不和GitLab的服务端口相冲突,修改Jenkins的默认端口8080为329

    [root@git ~]#  vim  /etc/sysconfig/jenkins 
    # 修改25行 用户为root
    JENKINS_USER="root"
    # 修改56行 端口329

    启动Jenkins

    [root@git ~]# systemctl start jenkins
    Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.
    [root@git ~]# systemctl status jenkins
    ● jenkins.service - LSB: Jenkins Automation Server
       Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
       Active: failed (Result: exit-code) since 一 2018-08-27 14:38:33 CST; 16s ago
         Docs: man:systemd-sysv-generator(8)
      Process: 20100 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=1/FAILURE)
    
    8月 27 14:38:33 git systemd[1]: Starting LSB: Jenkins Automation Server...
    8月 27 14:38:33 git runuser[20105]: pam_unix(runuser:session): session opened for user...=0)
    8月 27 14:38:33 git jenkins[20100]: Starting Jenkins bash: /usr/bin/java: 没有那个文件或目录
    8月 27 14:38:33 git runuser[20105]: pam_unix(runuser:session): session closed for user root
    8月 27 14:38:33 git jenkins[20100]: [失败]
    8月 27 14:38:33 git systemd[1]: jenkins.service: control process exited, code=exited s...s=1
    8月 27 14:38:33 git systemd[1]: Failed to start LSB: Jenkins Automation Server.
    8月 27 14:38:33 git systemd[1]: Unit jenkins.service entered failed state.
    8月 27 14:38:33 git systemd[1]: jenkins.service failed.
    Hint: Some lines were ellipsized, use -l to show in full.
    [root@git ~]# which java
    /usr/local/java/bin/java
    [root@git ~]# ln -s /usr/local/java/bin/* /usr/bin/
    [root@git ~]# systemctl start jenkins

    访问IP:329

    解锁Jenkins

    [root@git ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
    cabc15df63c04d1c81377650f117d69c

      选择默认即可,会安装通用的社区插件,剩下的可以在使用的时候再进行安装

    如果在下线安装揑件失败了,或是无网环境下想安装插件,可以选择手劢安装

    插件下载地址 :http://updates.jenkins-ci.org/download/plugins/   # 在有网的环境下,把自己需要的插件下载好,然后再从本地上传 , 上传完插件得重启jenkins,不重启插件不生效 

    配置邮件通知

    安装Gitlab Hook Plugin插件 :

    系统管理→管理插件可选插件 安装两个插件 gitlab-plugin和gitlab hook-plugin 如果找不到 , 安装gitlab gitlab hook即可

    要是找不到可以在插件地址下载然后在上传件

     

     在url里面添加我们的gitlab项目地址 git@192.168.94.11:damowang/damowang.cn-web.git

     添加一个认证

    我们需要在gitlab添加一个公钥 jenkins添加一个私钥

    之前Gitlab已经生成过密钥对了, 直接把私钥给Jenkins就可以了

     

     

    接下来就可以构建了

    查看jenkins目录下有没有文件构建成功

    看看拉取的代码与git上的是否一致

    剩下的就是把Nginx或者Apache指向这个网站根目录  , 这里就不再叙述了

     查看控制台输出

  • 相关阅读:
    Asp.Net细节性问题技巧精萃
    存储过程(Stored Procedure)及应用
    合并datagrid中内容相同的单元格
    .net 2.0 下发送邮件的方式
    ADO.NET2.0的十大新特性
    sql server 中各个系统表的作用
    DataGrid一些文章的索引,方便查找
    ASP.NET中 WebControls 命名规则
    SQL Server应用程序中的高级SQL注入[转]
    数据操作例子
  • 原文地址:https://www.cnblogs.com/bigdevilking/p/9543092.html
Copyright © 2020-2023  润新知