zoukankan      html  css  js  c++  java
  • linux运维、架构之路-Git+Jenkins实现自动化部署

    一、Jenkins介绍

             jenkins是一个用JAVA编写的开源的持续集成工具,运行在servlet容器中,支持软件配置管理(SCM)工具,可以执行基于APACHE ANT和APACHE MAVEN的项目,以及任意Shell脚本和Windows批处理命令。

    学习资料
    https://www.abcdocker.com/abcdocker/2041 

    1、持续集成:频繁的(一天多次)将代码集成到主干——>CI

    2、持续交付:频繁的将软件的新版本,交付给质量团队或者用户,以供评审,通过评审,代码进入生产阶段——>CD

    3、持续部署持续交付的下一步,代码通过评审以后,自动部署到生产环境——>CD

    二、Jenkins安装部署

    1、环境准备

    [root@jenkins ~]# cat /etc/redhat-release 
    CentOS Linux release 7.2.1511 (Core) 
    [root@jenkins ~]# uname -r
    3.10.0-327.el7.x86_64
    [root@jenkins ~]# systemctl status firewalld.service 
    ● firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
       Active: inactive (dead)
    [root@jenkins ~]# getenforce
    Disabled
    [root@jenkins ~]# hostname -I
    172.19.5.64 172.16.1.64

    2、Jenkins安装配置

    [root@jenkins ~]#curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #添加yum源
    [root@jenkins ~]#yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel #安装依赖包JDK
    cd /server/tools/ #上传jenkins安装包
    [root@jenkins tools]#rpm -ivh jenkins-2.73.1-1.1.noarch.rpm #rpm安装jenkins
    [root@jenkins tools]#/etc/init.d/jenkins start #启动jenkins服务
    [root@jenkins ~]# netstat -tunlp|grep java #查看端口
    tcp6       0      0 :::8080                 :::*                    LISTEN      15686/java

    3、Jenkins安装文件说明

    [root@jenkins ~]# rpm -ql jenkins
    /etc/init.d/jenkins       # 启动文件
    /etc/logrotate.d/jenkins  # 日志轮询
    /etc/sysconfig/jenkins    # Jenkins配置文件
    /usr/lib/jenkins
    /usr/lib/jenkins/jenkins.war
    /usr/sbin/rcjenkins
    /var/cache/jenkins        # web站点目录
    /var/lib/jenkins          # jenkins家目录
    /var/log/jenkins          # 日志目录
    

    三、Jenkins网页端配置

    1、浏览器输入172.19.5.64:8080访问

    2、安装Jenkins插件

    [root@jenkins tools]# cd /server/tools/ #上传插件包
    [root@jenkins tools]# tar xfP jenkins_plugins.tar.gz 
    [root@jenkins tools]# /etc/init.d/jenkins restart #重启jenkins服务
    注:/var/lib/jenkins/plugins/ #插件安装目录

    3、配置Jenkins并发执行任务数量,默认为2个

    4、邮件配置

    四、构建自动测试项目

     1、复制Gitlab私钥到jenkins上面

    [root@gitlab git_data]# cat /root/.ssh/id_rsa
    -----BEGIN RSA PRIVATE KEY-----
    MIIEpAIBAAKCAQEAtWR5jMLlaAIgj76eWxZinWAtOSLZmsVK2UsdtRQ15lFDPBpl
    rwek2aLXONY3HGnJesNiUc+vCr6WZrGOboKlODIILL5uw7a4ggQBvnLv+NRdgaAF
    Mt2vtkjl6DKSl38QMd7THxhf1TS/lmEms4VzCiD4sK6P29Nl9LD3g1o2W9GVHEUx
    ……

    2、自动测试执行Shell命令

     

    创建/data/www目录后再次执行

    授权jenkins管理/data/www目录后再次执行

    [root@jenkins ~]# chown -R jenkins.jenkins /data/www/

    五、配置Gitlab-Push 自动触发jenkins构建

    1、下载安装gitlab-plugin——>jenins插件管理,前面我们已安装过

    2、配置gitlab认证

     gitlab上面查看token认证码

    Jenkins服务端操作

    3、Jenkins连接管理gitlab服务器

     4、Jenkins构建任务触发器

     测试结果成功

    5、向gitlab服务器提交代码,验证是否自动部署

    [root@gitlab ~]#cd git_data/Nginx_conf #进入项目工作目录下
    [root@gitlab Nginx_conf]# echo "gitlab and jenkins" >index.html
    [root@gitlab Nginx_conf]# git add index.html
    [root@gitlab Nginx_conf]# git commit -m "test gitlab and jenkins" #提交到gitlab仓库
    [root@gitlab Nginx_conf]# git push origin master #将本地代做仓库推送到gitlab服务器master分支下

    6、Jenkins查看构建项目信息

    查看Jenkins日志记录信息

    [root@jenkins ~]# tail -f /var/log/jenkins/jenkins.log
    十二月 19, 2017 3:21:17 下午 com.dabsquared.gitlabjenkins.trigger.handler.AbstractWebHookTriggerHandler handle
    信息: linux triggered for push.
    十二月 19, 2017 3:21:26 下午 hudson.model.Run execute
    信息: linux #8 main build action completed: SUCCESS
    十二月 19, 2017 3:44:20 下午 com.dabsquared.gitlabjenkins.webhook.GitLabWebHook getDynamic
    信息: WebHook called with url: /project/linux
    十二月 19, 2017 3:44:20 下午 com.dabsquared.gitlabjenkins.trigger.handler.AbstractWebHookTriggerHandler handle
    信息: linux triggered for push.
    十二月 19, 2017 3:44:26 下午 hudson.model.Run execute
    信息: linux #9 main build action completed: SUCCESS

      gitlab+jenkins集成实现的功能:开发写好代码提交到gitlab上,当push到gitlab服务器上面,jenkins自动帮我们构建

    成功最有效的方法就是向有经验的人学习!
  • 相关阅读:
    安装Redis
    IntelliJ IDEA 2016.1 创建Maven Java Web项目(图解)
    MongoDB入门
    Oracler的锁概念
    Oracle 数据类型
    《锋利的jQuery》随笔(一)
    IList<T>之 First【学习笔记之Linq】
    入驻新园子
    使用nodejs下载风景壁纸
    nodejs爬取博客园的博文
  • 原文地址:https://www.cnblogs.com/yanxinjiang/p/8058711.html
Copyright © 2011-2022 走看看