Gitlab的介绍

  • gitlab是一个版本控制的集群软件,集成了git、postgresql、Ruby、nginx、redis等重要应用工具;
  • gitlab分为ce和ee版本;CE是社区版,EE是企业版
  • gitlab支持http协议传输和ssh协议传输;从安全性方面考虑ssh协议要优于http协议。
  • gitlab通过对用户和组设定权限来决定用户的访问情况。
  • gitlab默认自带注册功能,第三方用户可以自行注册,该功能也可手动关闭。
  • gitlab是实现CI/CD的重要工具之一。

工作原理

Git是著名的linus大佬发明的一款开源软件,主要工作负责文件的上传及版本更替。其中版本更替包括版本的更新、版本的回溯、版本的分支;大大提高了技术人员的工作效率。

Gitlab是基于Git、DB、Ruby、redis、http等软件与一体的集成系统;

CI(Continuous integration):译成中文是持续集成的意思,字面意思理解是持续的将工作的代码集成到一块;

CD(Continuous delivery):译成中文是持续交付的意思,字面意思理解是根据集成的代码进行自动的交付工作;交付工作包括:构建、测试、发布。

Gitlab的安装

1、关闭selinux

sh-4.2# sed -i 's/enforcing/disabled/' /etc/selinux/config
sh-4.2# setenforce

2、关闭防火墙

sh-4.2# rpm -qa | grep "firewall" | xargs rpm -e --nodeps
sh-4.2# rpm -qa | grep "iptables" | xargs rpm -e --nodeps

3、挂载本地源

sh-4.2# mount -t iso9660 -o loop /opt/CentOS--x86_64-Everything-.iso /media/
sh-4.2# find /etc/yum.repos.d/ -ignore_readdir_race -type f -exec mv {} /etc/yum.repos.d/back/ \;
sh-4.2# cat /etc/yum.repos.d/GuGe.repo
[GuGe]
name=GuGe
baseurl=file:///media
gpgcheck=
enable= sh-4.2# yum clean all
sh-4.2# yum makecache all

4、安装依赖插件

sh-4.2# yum install openssh-server postfix
sh-4.2# systemctl enable sshd
sh-4.2# systemctl enable postfix
sh-4.2# systemctl start sshd
sh-4.2# systemctl start postfix

5、安装配置gitlab-ce

gitlab下载地址(建议先下载到本地,官方推荐配置官方源,执行yum;我不推荐这样)
  https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ #个人建议用这个,毕竟是中国
  https://packages.gitlab.com

sh-4.2# yum -y localinstall gitlab-ce-10.8.-ce..el7.x86_64.rpm
sh-4.2# grep -E -v '^$|^#' /etc/gitlab/gitlab.rb #这是gitlab的配置文件,主要添加修改如下内容:
external_url 'http://192.168.1.81'
git_data_dirs({
"default" => {
"path" => "/repo"
}
}) sh-4.2# gitlab-ctl reconfigure

Gitlab的备份

sh-4.2# gitlab-rake gitlab:backup:create

# 使用以上命令会在/var/opt/gitlab/backups目录下创建一个名称类似为1551770636_2019_03_05_10.3.3_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中开头的1551770636_2019_03_05_10.3.3是备份创建的日期

Gitlab的恢复

# 停止相关数据连接服务

sh-4.2# gitlab-ctl stop unicorn
sh-4.2# gitlab-ctl stop sidekiq

# 从1551770636_2019_03_05_10.3.3编号备份中恢复;需注意:还原的时候此文件必须存放在sh-4.2# cd /var/opt/gitlab/backups/

sh-4.2# gitlab-rake gitlab:backup:restore BACKUP=1551770636_2019_03_05_10.3.3

Gitlab的升级

gitlab的升级比较简单,这里仅列出遵循的原则,升级遵循以下原则:

  1. 不能直接直接夸两个版本以上升级,只能8升9,不能8升10,每次最多夸一个版本
  2. 每次版本升级一次必须执行'gitlab-ctl reconfigure',而且在重新配置主配置文件时,配置文件中不能有内容;一定保证数据可以正常访问方可执行下一步升级指令,否则gitlab在升级之后会报错误
  3. 直接准备高版本的包,直接安装即可。

Gitlab的常用命令

sh-4.2# gitlab-ctl status                               # 查看gitlab的运行状况
sh-4.2# gitlab-ctl stop # 停止gitlab
sh-4.2# gitlab-ctl start # 启动gitlab
sh-4.2# gitlab-ctl restart # 重启gitlab
sh-4.2# gitlab-ctl tail # 查看所有日志,Gitlab 默认的日志文件存放在/var/log/gitlab下
sh-4.2# gitlab-ctl reconfigure # gitlab的配置刷新
sh-4.2# gitlab-rake cache:clear RAILS_ENV=production # 刷新gitlab的缓存
sh-4.2# gitlab-rake gitlab:backup:create # gitlab的备份
sh-4.2# gitlab-rake gitlab:backup:restore BACKUP # gitlab的恢复

Gitlab与CICD

Gitlab的CI/CD功能依赖于gitlab-runner工具,gitlab依赖于git主程序,所以这里我们还要安装这两个工具

sh-4.2# yum -y install git gitlab-runner-10.8.7.x86_64.rpm

CICD功能使用教程如下:

注册gitlab

"Admin area" >> "Overview" >> "Runner" >> "根据信息进行"

编写.gitlab-ci.yml文件

# 此文件存放在版本库,随版本一同提交
stages:
- deploy #类似一个标签的开始,随便起
deploy: #名字跟上面标签相同
stage: deploy #同上
script: #脚本编写部分,你要执行的任务
- /usr/maven/bin/mvn clean install -Dmaven.test.skip=true
- rm -rf ......
- cp
- java -jar
only:
- master #指定在哪个分支上面运行
tags:
- dev #指定你创建的runner标签

提交版本,查看交付任务

参考地址

官网 https://about.gitlab.com/
清华源 https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/

Centos 7 最小化Gitlab部署操作的更多相关文章

  1. Centos 7最小化Mongodb部署操作

    基本组件 mongodb-org mongodb-org-server mongodb-org-mongos mongodb-org-shell mongodb-org-tools 文件位置 /var ...

  2. Centos 7 最小化时间服务部署配置

    基本原理 Centos 7 我所了解有两种时间服务,NTPD与chronyd:两者对Centos 7 的支持都很好,有对chrony非常夸赞的,不过我这里只讲ntpd:有对chrony有想法的可以自行 ...

  3. Centos 7 最小化kvm部署

    1.检查CPU是否支持虚拟化 sh-4.2# grep -E '(vmx|svm)' /proc/cpuinfo # 若是无任何显示,则表示CPU不支持kvm虚拟化 2.关闭selinux sh-4. ...

  4. Centos 7最小化redis部署

    配置源 [GuGe] name=GuGe baseurl=ftp://192.168.1.82 gpgcheck= enable= 安装 sh-4.2# yum -y install gcc gcc- ...

  5. Centos 7最小化InfluxDB部署

    配置源 [influxdb] name = InfluxDB Repository - RHEL \$releasever baseurl = https://repos.influxdata.com ...

  6. Centos 7最小化安装部署PostgreSQL

    安装 sh-4.2# yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-ce ...

  7. RHEL/CentOS 7最小化安装后需做的30件事情

    导读 CentOS是一个工业标准的Linux发行版,是红帽企业版 Linux 的衍生版本.你安装完后马上就可以使用,但是为了更好地使用你的系统,你需要进行一些升级.安装新的软件包.配置特定服务和应用程 ...

  8. CentOS 7 最小化安装及优化

    CentOS 7 最小化安装及优化 目录 CentOS 7 最小化安装及优化 一.下载镜像文件 官方网站 国内镜像源 一.VMware 配置虚拟网络 二.VMware 新建虚拟机 三.CentOS 7 ...

  9. CentOS 7 - 最小化安装后,解决无法使用yum命令问题!!

    刚刚最小化方式安装了CentOS 7 后,说实话,真不习惯也不喜欢纯shell方式工作,使用root账号登入后,马上想安装GNOME,但是发现yum不能正常工作!!! 一,输入安装X Window命令 ...

随机推荐

  1. 深入浅出 Viewport 设计原理

    Viewport 是 HTML5 针对移动端开发新增的一个 meta 属性, 它的作用是为同一网页在不同设备的呈现,提供响应式解决方案.这篇文章尝试通过循序渐进的方式,逐层探索 Viewport 的设 ...

  2. Linux下自动化部署ASP.NET CORE 3.1(Docker+Jenkins+Nginx)

    1.先配置好Docker阿里云加速,可以使用阿里云容器服务 (可自己在阿里云申请,要不然安装东西直接很慢)注意:https://XXXX.mirror.aliyuncs.com为阿里云加速服务分配地址 ...

  3. 使用ASP.NET Core 3.x 构建 RESTful API - 4.2 过滤和搜索

    向Web API传递参数 数据可以通过多种方式来传给API. Binding Source Attributes 会告诉 Model 的绑定引擎从哪里找到绑定源. 共有以下六种 Binding Sou ...

  4. GPL协议中国第一案尘埃落定,相关开源软件应如何风控?

    导读:2019年11月6日,数字天堂(北京)网络技术有限公司(以下简称 “数字天堂公司”)诉柚子(北京)科技有限公司.柚子(北京)移动技术有限公司(以下简称 “柚子公司”)侵犯计算机软件著作权纠纷一案 ...

  5. golang编译之vendor机制

    Go 1.5引入了vendor 机制,但是需要手动设置环境变量 GO15VENDOREXPERIMENT= 1,Go编译器才能启用.从Go1.6起,,默认开启 vendor 目录查找,vendor 机 ...

  6. 【接口测试】使用httpClient获取cookies+携带获取的cookies访问get接口

    数据准备 在本机或者远端机器安装部署moco-runner(参考:https://blog.csdn.net/qq_32706349/article/details/80472445) 这里我们只需要 ...

  7. iscsi,nfs

    存储概述 存储的目标 存储是根据不同的应用环境通过采取合理.安全.有效的方式将数据保存到某些介质上并能保证有效的访问. 一方面它是数据临时或长期驻留的物理媒介. 另一方面,它是保证数据完整安全存放的方 ...

  8. iOS-UITableView HeaderView随Cell一起移动

    我们在使用TableView的时候,有时会设置HeaderView,当我们滑动的时候,HeaderView不会随Cell滑出屏幕,而是会固定到导航栏下面.今天我们要实现HeaderView随滑动一起滑 ...

  9. Fabric1.4:链码管理与测试

    1 链码介绍 智能合约在 Hyperledger Fabric 中称为链码(chaincode),是提供分布式账本的状态处理逻辑.链码被部署在fabric 的网络节点中,能够独立运行在具有安全特性的受 ...

  10. Spring Boot从零入门3_创建Hello World及项目剖析

    目录 1 前言 2 名词术语 3 创建Hello World项目 3.1 基于STS4创建项目 3.2 使用Spring Initializr Website创建项目并导入 3.3 基于Spring ...