zoukankan      html  css  js  c++  java
  • CentOS 7 Gitlab+Jenkins持续集成+自动化部署

    基于上次的环境<部署Gitlab+Jenkins持续集成环境> 来实现自动化部署

    系统管理–>插件管理–>安装以下插件:

    Credentials Plugin(默认已经安装)   # 签名证书管理插件

    Gitlab Plugin    # 安装后从gitlab获取代码

    Git Plugin 和 Git Client Plugin    # 用于jenkins在gitlab中拉取源码

    GitLab Hook   # gitlab触发jenkins构建项目

    gitlab Authentication  # gitlab和jenkins认证相关的插件

    SSH Plugin    # 进程执行shell脚本

    Publish Over SSH    # 用于通过ssh部署应用

    如果可选插件里面没有到已安装的里面查一下

    将代码发布到web服务器

    通过执行脚本或者命令的方式来发布代码 , 注意权限的问题 , 如果不是root用户要保持所有服务器上的用户ID一致

    安装apache

    [root@Web ~]# yum -y install httpd
    [root@Web ~]# systemctl start httpd

    准备自劢部署 web代码事项 

    实现root用户可以无密码直接登录系统

     # 在哪台机器上自劢发布代码,就需要让jenkins的root用户可以免密登录到那台服务器上
    [root@Jenkins ~]# ssh-copy-id root@192.168.94.33
    [root@Jenkins ~]# ssh 192.168.94.33
    # 如果使用的不是root用户 , 而是普通用户 ,那么要授予普通用户sudo权限, 例:visudo添加 jenkins ALL=(ALL)    NOPASSWD: /usr/bin/ssh 

    创建自动上传web代码的一个简单的脚本 , 实际还需要备份

    [root@Jenkins ~]# vim push.sh
    #!/bin/bash
    cd /root/damowang.cn-web    
    git pull
    scp -r ./* root@192.168.94.33:/var/www/html
    [root@Jenkins ~]# chmod +x push.sh

    配置Jenkins

     

     

     浏览器访问web服务器

    实现Gitlib触发Jenkins自动部署 

    是在公司的测试环境当中,当开发人员向gitlab仓库提交代码后,gitlab自动通知jenkins进行构建项目、代码质量测试然后部署至测试环境,对生生产环境,后期使用手动部署代码

    安装Gitlab插件 

    系统管理-管理插件-可选插件,安装Gitlab Hook Plugin和Build Authorization Token Root  以及 Build Token Trigger 

    配置身份验证令牌

    生成Token 

    [root@Jenkins ~]# openssl rand -hex 12
    8bde00c8584aa806692e69b4

     在git项目配置界面设置链接和token 

     格式 : http://"jenkins地址"/buildByToken/build?job="jenkins项目名"&token="token值"

     

    测试gitlab触发jenkins自动部署 

    [root@Gitlab ~]# cd damowang.cn-web/
    [root@Gitlab damowang.cn-web]# echo "521" >> index.html 
    [root@Gitlab damowang.cn-web]# git add index.html
    [root@Gitlab damowang.cn-web]# git commit -m "loewife index.html"
    [master 6c6f9df] loewife index.html
     1 file changed, 1 insertion(+)
    [root@Gitlab damowang.cn-web]# git push -u origin master 
    Counting objects: 5, done.
    Writing objects: 100% (3/3), 270 bytes | 0 bytes/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    To git@192.168.94.11:damowang/damowang.cn-web.git
       8bedbbb..6c6f9df  master -> master
    分支 master 设置为跟踪来自 origin 的远程分支 master。

    访问web页面查看代码是否更新

    到这已经实现自动拉取Gitlab代码+自动部署代码到测试环境 

    下面增加Build Pipeline插件以流程图的形式展示各个Job的顺序 

     这个插件能够以流程图的形式展示各个Job 顺序,依赖关系等等

    下载完之后点击新建视图

     

  • 相关阅读:
    php 3des加密解密
    mysql 用命令导入导出
    ubuntu16.04对硬盘进行分区格式化并设置开机自动挂载
    nginx
    iostat (转https://www.cnblogs.com/ftl1012/p/iostat.html)
    zabbix
    zabbix
    mac 录屏
    利用elasticsearch-dump实现es索引数据迁移附脚本
    rdbtool
  • 原文地址:https://www.cnblogs.com/bigdevilking/p/9544476.html
Copyright © 2011-2022 走看看