Rainbond云原生快捷部署生产可用的Gitlab步骤详解

目录
  • Gitlab简介
  • 准备工作
  • 部署步骤
  • 部署Postgresql组件
  • 部署Redis组件
  • 部署Gitlab-Server组件
  • 配置网关访问策略
  • FAQ

Gitlab简介

GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。同时Gitlab集成了一系列的CI功能。不得不说,Gitlab在企业中是的使用率非常高。

Rainbond非常推荐用户使用Git代码仓库管理代码,从而获取更好的源代码管理和自动化CI体验。话不多说,接下来我们用10分钟的时间完成Gitlab服务在Rainbond的完整部署。

准备工作

  • 准备一个可用的域名(如果你可以准备),比如 git.example.com
  • 准备域名对应的证书(如果你可以准备)
  • Rainbond平台已安装完成,参考文档Rainbond快速安装
  • Rainbond平台处在能够连接互联网的环境下。

部署步骤

本教程我们将采用基于已制作完成的Docker镜像安装的方式部署Gitlab。部署完成后在Rainbond的运行效果如下:

我们在Rainbond部署一个开源的项目,基于Docker镜像的方式是最快,最简单的方式,特别是一些根据云原生的建议制作的镜像在Rainbond运行兼容性和体验都非常优越。

我们今天部署的Gitlab服务包括Postgresql组件、Redis组件和Gitlab-Server组件,它们的网络依赖关系如上图你看到一样,我们根据依赖关系从小到上依次部署。

首先创建应用 GItlab然后从应用管理页面开始添加服务组件:

我们采用基于DockerRun命令的方式创建服务,参考文档 基于镜像创建服务 ,

此次部署的Gitlab镜像由社区提供,是目前使用最广的镜像。

部署Postgresql组件

添加服务组件,基于以下DockerRun命令,Rainbond将从下面的命令中获取镜像名称和持久化存储目录。

docker run --name gitlab-postgresql -d \
    --volume /srv/docker/gitlab/postgresql:/var/lib/postgresql \
    sameersbn/postgresql:10

服务构建源识别完成后,通常的过程是直接创建并启动,但是我们这里还需要设置服务的运行类型为有状态服务,并且还需要设置一下连接信息。因此我们需要选择创建不启动。方式如下:

强调一下,取消图中红色框框中的单选框,这一步非常重要

确认后页面直接跳转到服务管理页面,我们做以下几步设置:

1.更改端口别名,设置连接信息

进入服务端口管理页面,服务已默认添加了5432端口,更改端口协议为TCP, 打开端口的对内服务按钮,同时单击"使用别名"后方的端口别名信息,在弹出窗中设置端口别名为 “DB”。确认后将自动生成DB_HOST和DB_POST两个连接信息,在服务"依赖"页面可以查询连接信息, 同时我们继续添加以下连接信息:

变量名 说明
DB_EXTENSION pg_trgm  
DB_NAME gitlabhq_production 数据库名称
DB_PASS password 密码,你自己可以随便定义值
DB_USER gitlab 连接数据库用户名

添加这些连接信息有两个作用:

Postgresql将读取这些变量自动创建用户和数据库

Postgresql服务被Gitlab-Server依赖后将注入到Gitlab-Server环境中,Gitlab-Server将根据这些变量信息连接数据库。

更多信息参考文档服务端口管理 服务连接信息管理

2.更改服务部署类型

由于Postgresql属于数据库类,我们需要将服务部署类型设置为有状态服务,进入服务"其他设置"页面,在"基础信息"信息中将服务的部署类型切换为有状态服务。

3.创建服务

设置完成,点击构建开始构建并启动服务,这时候我们可以开始下一个组件的部署了。

部署Redis组件

部署Redis组件的过程与Postgresql一致,唯一的不同是不需要添加过多的连接信息。

1.基于下述DockerRun命令添加服务

docker run --name gitlab-redis -d \
    --volume /srv/docker/gitlab/redis:/var/lib/redis \
    sameersbn/redis:4.0.9-1

2.完成检查后设置创建不启动,进入服务管理页面

3.设置6379端口别名为REDIS,并开启端口对内服务。完成后在服务依赖页面可以查看到REDIS_HOST和REDIS_PORT两个连接信息变量,此变量将被注入到Gitlab服务中。

4.更改服务的部署类型为有状态服务。

5.创建服务,现在可以进入下一个环节了。

部署Gitlab-Server组件

1.使用下述的DockerRun命令创建组件,选择创建不启动。

docker run --name gitlab -d \
    --publish 10022:22 --publish 10080:80 \
    -e GITLAB_PORT=80 \
    -e GITLAB_HOST=git.example.com \
    -e GITLAB_SSH_PORT=10022 \
    -e GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string \
    -e GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string \
    -e GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string \
    --volume /srv/docker/gitlab/gitlab:/home/git/data \
    sameersbn/gitlab:11.8.2

这里需要说明的是其中的几个变量信息:

变量 说明
GITLAB_PORT 80  
GITLAB_HOST git.example.com 之前准备的域名,如果没有准备后续设置Rainbond默认分配的域名即可(创建后可更改)
GITLAB_SSH_PORT 20222 Gitlab server 22端口开启外网访问后分配的端口(创建后可更改)
GITLAB_SSH_HOST 10.10.10.10 Gitlab server 22端口开启外网访问后的IP(创建后可更改)

2.创建服务后依赖上面建立的两个服务。直接进入拓扑图编辑模式,将Gitlab Server与redis和postgresql服务连线即可。参考文档 建立服务依赖

3.构建服务,等待服务启动完成。

注意,Gitlab服务第一次启动过程比较缓慢,等待服务启动完成。

配置网关访问策略

gitlab服务提供80端口的HTTP访问和22端口的SSH代码访问,分别为其添加访问策略。

80端口,配置HTTP访问策略,使用预先准备的域名比如(git.example.com),这与GITLAB_HOST配置的必须一致。绑定域名对应的证书。

添加完成后进入访问策略列表,选择刚刚添加的策略,进入参数配置,将"上传限制"调整为10000 Mb,基本就是不限制了。

参考文档 添加HTTP访问策略

为22端口添加TCP策略,生成的IP和端口需要与GITLAB_SSH_HOST GITLAB_SSH_PORT 两个变量一致。

到此,Gitlab服务部署完成,你可以直接访问服务了。第一次进入时将设置root账号的密码。

FAQ

  • 安装完成,访问返回Gitlab的502页面

这个时候Gitlab正在进行初始化和启动过程,内部的某些进程还未启动完成。这个时候只需要等待服务启动完成即可,第一次启动大概5-10分钟。

  • 上述过程还是有点复杂,能不能直接一键部署。

那当然是可以的,我已将Gitlab服务分享到Rainbond公有应用市场,供给Rainbond用户一键安装,应用市场搜索"Gitlab代码仓库服务" 选择版本v11.8.2,同步后直接安装即可。需要注意的是,安装完成后需要根据你的网关访问策略重新配置Gitlab的GITLAB_HOST、GITLAB_SSH_HOST等信息。

以上就是Rainbond云原生快捷部署生产可用的Gitlab步骤详解的详细内容,更多关于Rainbond部署生产可用Gitlab的资料请关注我们其它相关文章!

(0)

相关推荐

  • Rainbond配置组件自动构建部署官方文档讲解

    目录 前言 前提条件 基于源代码操作流程 1.开启组件 Git-Webhook 2.配置代码仓库 基于镜像仓库操作流程 1.开启镜像仓库 Webhook 自动构建 2.Tag 触发自动修改策略 3.配置镜像仓库 API 触发自动构建 前言 通过自动构建的功能,可以实现代码或镜像提交后组件自动触发构建和部署,Rainbond 提供了基于代码仓库 Webhooks.镜像仓库 Webhooks 和自定义 API 三种方式触发组件自动部署.自动构建的功能可以辅助开发者便捷的实现敏捷开发. 前提条件 组件

  • Rainbond对前端项目Vue及React的持续部署

    目录 前言: 部署前检查 1.1 添加 nodestatic.json 文件 1.2 添加 web.conf 文件 1.3 源码部署Vue项目 常见问题 前言: 以往我们在部署 Vue.React 前端项目有几种方法: 项目打包好之后生成dist目录,将其放入nginx中,并进行相应的访问配置. 将项目打包好放入tomcat中. 将项目打包好的dist目录中的static和index.html文件放入springboot项目的resources目录下 直接运行一个前端server,类似本地开发那

  • Rainbond部署组件Statefulset的使用官方文档

    目录 前言 组件部署类型 服务的“状态” 处理服务的 “状态” 前言 对于kubernetes老玩家而言,StatefulSet这种资源类型并不陌生.对于很多有状态服务而言,都可以使用 StatefulSet 这种资源类型来部署.那么问题来了:挖掘机技术哪家强?额,不对. 如何在 Rainbond 使用 StatefulSet 资源类型来部署服务呢? 组件部署类型 通过在服务组件的其他设置中,更改 组件部署类型 即可选择使用 StatefulSet 资源类型部署服务,操作之前要注意以下几点: 组

  • Rainbond自动部署初始化Schema的数据库步骤教程

    目录 为什么使用Rainbond? Schema初始化在传统模式中一般有两种方案: 目录结构 Dockerfile文件 为什么使用Rainbond? 我们使用容器的方式部署数据库组件,特别是企业有大量的项目开发业务的,部署的开发.测试数据库组件较多时.经常会遇到以下问题: 业务需要使用数据库,但部署完数据库后,需要在数据库中执行创建schema的操作或者一些初始化数据的创建. 开发测试多套部署环境,需要多次重复1的步骤. 项目比较多,时间久了项目需要的数据库Schema不清楚. 项目交付时数据库

  • Rainbond云原生部署SpringCloud应用架构实践

    目录 示例项目详情 模块说明: 部署环境说明: 模块构建 部署 Mysql 部署 Redis 部署 pig-ui 依赖与端口梳理 最终成果 示例项目详情 本文档以Pig 快速开发框架为例,演示如何在Rainbond上部署一套完整的Spring Cloud项目. Pig Microservice Architecture V2.1.0: 基于 Spring Cloud Finchley .Spring Security OAuth2 的RBAC权限管理系统 基于数据驱动视图的理念封装 Elemen

  • Rainbond上部署API Gateway Kong及环境配置教程

    目录 什么是Kong 从应用市场快速安装 注意事项 配置Kong 环境变量 注入Nginx配置 注入单个Nginx配置 通过注入的Nginx指令包含文件 Kong应用怎么制作 数据库自动初始化 部署Kong 部署Konga 发布应用 什么是Kong Kong是一个可扩展的开源API平台(也称为API网关,API中间件或微服务服务网格).Kong最初是由Kong Inc.(以前称为Mashape)实现的,用于为其API Marketplace维护.管理和扩展超过15,000个微服务,这些微服务每月

  • Rancher部署配置开源Rainbond云原生应用管理平台

    目录 前言 前提条件 开始安装 添加 Rainbond Operator 到应用商店 安装 Rainbond Operator 访问 Rainbond 安装 UI,完善集群配置 基于 Rancher 的 Rainbond 运维参考 查看 Rainbond 各组件运行状态与日志 按需扩容 Rainbond 各组件 Rancher用户使用Rainbond优势 参考视频 常见问题 前言 本文适用于正在使用 Rancher 或对 Rancher 有所了解的用户 Rancher,Kubernetes 生态

  • Rainbond云原生部署开源社区Discourse的配置过程

    目录 概述 基于应用市场快速安装 Discourse应用如何制作 获取镜像 环境的要求 获取discourse_docker 配置模版 自定义配置 构建数据库镜像 redis 部署 postgresql部署 部署Discourse_web 建立依赖 访问 一些踩过的坑 邮件配置 数据恢复 概述 Discourse 是一个完全开源的论坛平台.具有丰富的插件库与主题库,适用于开源社区的构建.Rainbond官方社区就是基于Discourse搭建的实际案例. Rainbond官方社区建立之初就已经使用

  • Rainbond云原生快捷部署生产可用的Gitlab步骤详解

    目录 Gitlab简介 准备工作 部署步骤 部署Postgresql组件 部署Redis组件 部署Gitlab-Server组件 配置网关访问策略 FAQ Gitlab简介 GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目.它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释.同时Gitlab集成了一系列的CI功能.不得不说,Gitlab在企业中是的使用率非常高. Rainbond非常推荐

  • 云原生技术kubernetes调度单位pod的使用详解

    k8s中的最小调度单位---pod 之前的文章中,我们对k8s能够解决的问题做了简单介绍,简单来说,它解决的问题是容器的编排与调度,它的核心价值在于:运行在大规模集群的任务之间,实际上存在着各种各样的关系,这些关系的处理,才是任务编排和系统管理最困难的地方,k8s就是为了这个问题而生的. 这句话比较难理解,我们从已有的知识入手,抽丝剥茧,慢慢理解它.我们已经知道,容器的本质是一个进程,它包含三个部分: 如果说容器是云环境的一个进程,那么你可以将k8s理解成云环境中的一个操作系统. 在一个操作系统

  • 在docker中部署tomcat并且部署java应用程序的步骤详解

    先给大家简单说下Docker的概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口. 1.先说如何在docker中部署tomcat 第一步:root用户登录在系统根目录下创建文件夹tomcat7,命令如:mkdir tomcat7,并且切换到该目录下:cd tomcat7: 第二步:创建Dockerfile,命令如:touch Docker

  • maven利用tomcat插件部署远程Linux服务器的步骤详解

    前言 本文主要给大家介绍了关于maven利用tomcat插件部署远程Linux服务器的相关内容,分享出来供大家参考学习,下面话不多说了,来一看看详细的介绍吧. 环境 服务器: Ubuntu 16.04(阿里云服务器) jdk版本:1.8 相关的maven插件: 这个插件的目的在于部署时,跳过测试 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-pl

  • Linux下部署.net core环境的步骤详解

    注意:在Linux上安装.net core 的环境需要64位系统 安装部署如下: 1.把dotnet源新增至apt-get中 Ubuntu 14.04 / Linux Mint 17 sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list' sudo

  • CentOS 7.2下安装部署邮件服务器(Postfix)的步骤详解

    本文主要介绍的是在CentOS 7.2安装部署邮件服务器(Postfix)的相关内容,分享出来供大家参考学习,下面来看看详细的介绍: Postfix 是一种电子邮件服务器,它是由任职于IBM华生研究中心(T.J. Watson Research Center)的荷兰籍研究员Wietse Venema为了改良sendmail邮件服务器而产生的.最早在1990年代晚期出现,是一个开放源代码的软件. 注意:以下所有配置的命名都是根据主机的hostname变量来配置的,如果hostname更换了的话,需

  • keepalived对nginx进行高可用搭建及原理详解

    目录 一.Keepalived介绍 二.Keepalived的应用场景 三.Keepalived的工作原理 1 VRRP协议 2 核心组件 3 分层工作 4 工作状态 四.Keepalived使用 1 配置介绍 2 使用keepalived对nginx进行高可用搭建 2.1 环境准备 2.2 nginx软件安装和配置 2.3 Keepalived软件安装 2.4 监听存活脚本 2.5 最终配置文件 2.6 启动主从的Keepalived 2.7 查看VIP是否启动 2.8 测试 五.需要注意的问

随机推荐