omnibus-gitlab是gitlab 团队fork 自chef 的omnibus 项目,同时做了一些自定义的开发,omnibus-gitlab 简化了 
gitlab 的部署以及维护,同时里边集成了chef 组件(cookbooks 以及recipes)可以方便的进行用户机器上gitlab 
任务的配置。

组件架构

同时官方也提供了一个视频的介绍,我已经下载并上传百度云盘了gitlab-omnibus 

项目大概描述

主要简单说明组件的作用,以及在项目代码的位置

  • gitlab project 定义文件 
    这个主要是omnibus 项目架构的定义,包含了项目元数据定义,依赖关系,以及外部软件以及库 
    文件可以在 config/projects/gitlab.rb 找到
  • 独立的软件定义 
    这个也是omnibus 常规的玩法,独立的组件定义,包含了依赖以及组件的额构建方法(omnibus-gitlab,基本上都是源码构建的),同时 
    里面也包含了对于补丁的处理文件 
    软件定义在 config/software/ 目录 
    补丁文件config/patches 目录
  • 全局gitlab 配置模板 
    omnibus-gitlab 使用一个单一的配置文件进行gitlab 依赖组件的管理,而且具有约定的名称,格式如下: 
    <component>['<setting>'] = <value> 
    模板文件位置:files/gitlab-config-template/gitlab.rb.template
  • gitlab cookbooks 
    这个主要是chef 的一些定义,为了方便进行gitlab 各个组件的配置生成管理,大部分属于chef 的使用 
    Default Attributes位置:files/gitlab-cookbooks/gitlab/attributes/default.rb 
    Recipses 位置: files/gitlab-cookbooks/gitlab/recipes 
    Definitions 位置:files/gitlab-cookbooks/gitlab/definitions 
    各组件配置:files/gitlab-cookbooks/gitlab/templates
  • 通用库以及方法 
    omnibus-gitlab 也需要使用一个通用的帮助方法,所以进行了独立的包装,方便调用 
    位置:files/gitlab-cookbooks/gitlab/libraries
  • Runit 
    gitlab 使用runit 进行服务的管理,这是一个比较方便的服务管理工具 
    位置:/files/gitlab-cookbook/runit
  • Services 
    services 是runit 需要管理的一些服务的定义,对于这些服务,我们可以方便的使用gitalb-ctl 进行管理(status 、stop 
    、start) 
    文件位置:files/gitlab-cookbooks/package/libraries/config/services.rb
  • 额外的gitlab-ctl 命令配置 
    omnibus-gitlab 提供了一个方便的 gitlab-ctl 进行gitalb 组件服务的管理 
    文件位置: files/gitlab-ctl-commands

omnibus-gitlab 的工作生命周期

主要说明构建

  • 获取依赖软件的源码(解析版本,获取远程或者cache源码)
  • 构建每个独立的软件组件(设置环境变量,应用补丁,操作构建以及安装)
  • 生成关于各个组件的license 信息
  • 检查组件的license 信息,避免出现不兼容的问题
  • 运行一个健康检查,确定依赖的组件二进制文件是正确的
  • 根据/opt/gitlab 目录中的内容进行软件包的构建

说明

以上只是一个简单的说明,后边会进行详细的介绍

参考资料

https://github.com/gitlabhq/omnibus-gitlab/tree/master/doc/architecture

omnibus-gitlab 架构学习的更多相关文章

  1. 【从零开始学BPM,Day1】工作流管理平台架构学习

    [课程主题] 主题:5天,一起从零开始学习BPM [课程形式] 1.为期5天的短任务学习 2.每天观看一个视频,视频学习时间自由安排. [第一天课程] Step 1 软件下载:H3 BPM10.0全开 ...

  2. Mybatis架构学习

    Mybatis架构学习 MyBatis 是支持定制化 SQL.存储过程以及高级映射的持久层框架.MyBatis 封装了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.可以对配置和原生Map使用 ...

  3. ABP架构学习系列一 整体项目结构及目录

    本系列是基于aspnetboilerplate-0.8.4.0版本写的,其中原因是由于较高的版本太抽象难以理解和分析,对于还菜菜的我要花更多的时间去学习. abp的源码分析学习主要来源于 HK Zha ...

  4. ABP架构学习系列

    ABP实践学习系列 ABP Zero 本地化语言的初始化和扩展 ABP Zero 导航菜单之角色权限 ABP Zero示例项目问题总结  ABP后台服务之作业调度Quartz.NET   ABP架构学 ...

  5. 1-4-bootloader架构学习

    1-4-bootloader架构学习 1.一般情况下嵌入式 Linux 系统中的软件主要分为以下几部分: 1) 引导加载程序:其中包括内部 ROM 中的固化启动代码和 BootLoader 两部分. ...

  6. Gitlab+Jenkins学习目录

    Gitlab+Jenkins基础篇 Gitlab+Jenkins学习之路(一)之Git基础 Gitlab+Jenkins学习之路(二)之gitlab部署 Gitlab+Jenkins学习之路(三)之g ...

  7. ZT Android4.2蓝牙基础架构学习

    Android4.2蓝牙基础架构学习 分类: Jellybean Bluetooth Bluetooth 2013-10-13 23:58 863人阅读 评论(3) 收藏 举报 androidblue ...

  8. MVP架构学习

    MVP架构学习 M:数据层(数据库,文件,网络等...) V:UI层(Activity,Fragment,View以及子类,Adapter以及子类) P:中介,关联UI层和数据层,因为V和M是相互看不 ...

  9. GitLab 架构

    GitLab 架构官方文档 GitLab 中文文档 版本 一般使用的是社区版(Community Edition,CE),此外还有企业版(Enterprise Edition,EE)可以使用. EE ...

随机推荐

  1. 实现一个 web 服务器

    在 system1 上配置一个站点 http://system1.group8.example.com/,然后执行下述步骤: 1.从 http://server.group8.example.com/ ...

  2. 转!!通俗理解数字加密,数字签名,数字证书和https

    原博文地址:https://www.jianshu.com/p/4932cb1499bf 前言 最近在开发关于PDF合同文档电子签章的功能,大概意思就是在一份PDF合同上签名,盖章,使其具有法律效应. ...

  3. C#类型成员:构造函数

    一.构造函数 构造函数是类的特殊方法,它永远不会返回值(即使是void),并且方法名和类名相同,同样支持重载.在使用new关键字创建对象时构造函数被间接调用,为对象初始化字段和属性的值. 无参构造函数 ...

  4. 如何在一个Docker中同时运行多个程序进程?

    我们都知道Docker容器的哲学是一个Docker容器只运行一个进程,但是有时候我们就是需要在一个Docker容器中运行多个进程 那么基本思路是在Dockerfile 的CMD 或者 ENTRYPOI ...

  5. Docker 四种网络模式

    原文 https://www.cnblogs.com/gispathfinder/p/5871043.html 我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络 ...

  6. Excel 2010同时打开2个或多个独立窗口

    亲测有效 参考下面的网址 https://jingyan.baidu.com/article/86fae346acca7d3c49121ad4.html 1. 在win+r  输入框里面输入“rege ...

  7. win10下jupyter修改默认路径的办法

    查了很多资料,发现都不管用,最后亲测找到一种方法. 实现的方法就是修改快捷方式标签的目标栏,如下图: 后面有一个%USERPROFILE% 将%USERPROFILE%改成你要的路径就可以了 然后应用 ...

  8. ASUS笔记本,更换了固态硬盘,重装系统前后开机都自动进入BIOS界面

    解决方法:advanced标签中sata configration回车进入,如有识别硬盘设备,按F9恢复BIOS默认设置,按F10保存后重启. 如有自行安装过系统,Security-Secure Bo ...

  9. 溢出处理、盒子模型、背景图片、float(浮动)

    一.overflow:溢出内容的处理     overflow:hidden;  溢出内容隐藏(在父元素内使用,可以清除子元素浮动对父元素的影响)    overflow:auto; 自动滚动(有溢出 ...

  10. Java字符串操作工具类

    import java.io.ByteArrayOutputStream; import java.io.UnsupportedEncodingException; import java.lang. ...