Gitlab部署和汉化以及简单运维

在跟网络中心的老师沟通成立镜像站的相关事宜的时候,意外地接下来搭建一套校内的 Git 服务的任务。

@怡红公子曾经搭建过一套类似的服务,但由于服务器端没有开启 VT 虚拟化导致不能安装 64 位的操作系统,再加上 Gitlab 不提供 32 位的安装包,所以长期以来怡红公子一直都是自行编译并配置 Gitlab 。考虑到后续维护的方便,我们决定趁着这个机会使用另一台支持安装 64 位操作系统的服务器,一劳永逸地解决这个问题。

我们的服务器环境是 CentOS 7.2 64bit,以下所有操作均以此为基准。

Gitlab 安装

推荐使用 Install a GitLab CE Omnibus package安装 ,其他发行版可以点选对应版本,不再赘述。

安装和配置依赖

如果需要安装 Postfix 来发送邮件,则需要在安装过程中选择 Internet Site。你也可以使用 Sendmail 之类的第三方发信服务或者使用自行配制的 SMTP 服务器。

除此以外,下列命令将会在防火墙中打开 HTTP(80) 和 SSH(22) 对应端口。

sudo yum install curl policycoreutils openssh-server openssh-clientssudo systemctl enable sshd
sudo systemctl start sshd
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld

添加 Gitlab 源并安装

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce

这个脚本会在源中添加 Gitlab-CE ,并自动执行 yum makecache,然后安装 gitlab-ce。由于源在国外,可能速度较慢,也可以手动添加来自 清华tuna 的源: https://mirrors.tuna.tsinghua.edu.cn/help/gitlab-ce/, 链接中为各发行版下的教程,感谢 清华tuna 提供镜像。

配置并启动 Gitlab

此时已经可以启动服务了:

sudo gitlab-ctl reconfigure

进行一长串复杂的启动流程之后, gitlab 就已经可以通过 localhost进行访问了。

Gitlab 配置

修改域名

默认的配置文件保存在 /etc/gitlab/gitlab.rb,执行:

sudo vim /etc/gitlab/gitlab.rb

打开文件,并修改:

external_url 'http://your.domain'

再次执行

sudo gitlab-ctl reconfigure

即可。

有一定概率出现 502 错误,刷新浏览器或者再次更新配置即可。

Gitlab 汉化

由于服务对象是广大师生,为了降低新手上手的难度,所有进行汉化也是非常有必要的。好在国内有人已经进行了这方面的工作,我们只需要共享其成果即可(欢迎向 原项目提交高质量翻译)。

首先确认版本:

sudo cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

并确认当前汉化版本的 VERSION 是否相同,当前最新的汉化版本为 8.6 。

如果安装版本小于当前汉化版本,请先升级。如果安装版本大于当前汉化版本,请在本项目中提交新的 issue。

如果版本相同,首先在本地 clone 仓库。

# GitLab.com 仓库
git clone https://gitlab.com/larryli/gitlab.git# 或 Coding.net 镜像
git clone https://git.coding.net/larryli/gitlab.git

根据我的测试, Coding.net 的镜像不完整,clone 之后无法 checkout

然后比较汉化分支和原分支,导出 patch 用的 diff 文件。

# 8.1 版本的汉化补丁
git diff origin/8-6-stable..8-6-zh > ../8.6.diff

然后上传 8.6.diff文件到服务器。

# 停止 gitlab
sudo gitlab-ctl stop
sudo patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < 8.6.diff

确定没有 .rej 文件,重启 GitLab 即可。

sudo gitlab-ctl start

如果汉化中出现问题,请重新安装 GitLab( 注意备份数据)。

Gitlab 运维

管理

# 启动所有 gitlab 组件:
sudo gitlab-ctl start# 停止所有 gitlab 组件:
sudo gitlab-ctl stop# 重启所有 gitlab 组件:
sudo gitlab-ctl restart

备份

备份GitLab repositories and GitLab metadata

在 crontab 中加入如下命令:

0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create

恢复

首先进入备份 gitlab 的目录,这个目录是配置文件中的 gitlab_rails['backup_path'],默认为 /var/opt/gitlab/backups

然后停止 unicorn 和 sidekiq ,保证数据库没有新的连接,不会有写数据情况。

sudo gitlab-ctl stop unicorn
# ok: down: unicorn: 0s, normally up
sudo gitlab-ctl stop sidekiq
# ok: down: sidekiq: 0s, normally up

然后恢复数据,1406691018为备份文件的时间戳

gitlab-rake gitlab:backup:restore BACKUP=1406691018

Gitlab部署和汉化以及简单运维相关推荐

  1. gitlab部署步骤+汉化

    系统环境centos7 下载gitlab安装包 https://packages.gitlab.com/gitlab/gitlab-ce 我下载的版本是 gitlab-ce-11.1.4-ce.0.e ...

  2. centos 7部署并汉化Gitlab及基础操作

    Gitlab 是一个利用 Ruby on Rails 开发的开源应用程序,实现一个Git 项目仓库,可通过Web 界面进行访问公开的或者私人的项目 Gitlab 拥有与 Github 类似的功能,能够 ...

  3. gitlab安装并汉化

    gitlab安装并汉化 准备工作 Gitlab安装包分2种gitlab-ce,gitlab-ee; gitlab为社区免费版本,gitlab-ee为企业收费版本:在功能上没有太大的区别(应没有使用过与 ...

  4. GitLab安装以及汉化

    简介 GitLab是由GitLab Inc.开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能. GitLab 是一个数据库支持的 web 应用,所以相比于其他 ...

  5. 基于CentOS-7.7下GitLab安装与汉化

    文档目录 一. 准备 1 1.1 环境 1 1.2 软件 1 二. GitLab安装 2 三. GitLab汉化 5 四. GitLab常用命令 7 五. GitLab目录说明 8 准备 环境 操作系 ...

  6. 老司机实战Windows Server Docker:4 单节点Windows Docker服务器简单运维(下)

    上篇中,我们主要介绍了使用docker-compose对Windows Docker单服务器进行远程管理,编译和部署镜像,并且设置容器的自动启动.但是,还有一些重要的问题没有解决,这些问题不解决,就完 ...

  7. 传统IT架构云化会给运维带来哪些变化?

    云计算环境涉及IT基础硬件.操作系统以及业务系统等,传统的设备边界不再那么清晰,承载的VM对资源既共享又竞争,所以系统处于不断地动态调整中,故障域的耦合更加紧密,针对问题根源的判断更加困难. 背景 在 ...

  8. 机房服务器的简单运维

    机房的服务器的维护是机房运维工作的重点,如何保证服务器随时保持最佳状态,如何通过一些简单的维护来提高服务器的寿命和更快的速度?我们一起来探讨一下机房服务器的简单运维方法. 1.关于电力 (1)定期检测 ...

  9. 本地搭建部署gitlab服务并汉化

    gitlab不支持windows版本,我是使用CentOS7安装部署的,详见以下. CentOS 7下载地址 进去以后下载下面红框标出来的文件 gitlab10.0.0下载 : 链接:https:// ...

最新文章

  1. Can't add more than 2 views to a ViewSwitcher
  2. 初级开发人员的缺点_作为一名初级开发人员,我如何努力克服自己的挣扎
  3. module r8169
  4. [LeetCode_5] Longest Palindromic Substring
  5. SpringBoot 2.x (3):文件上传
  6. 用工具激活visio2013
  7. ASP.NET-第一天-数据库知识
  8. jQuery学习笔记--JqGrid相关操作 方法列表(上)
  9. python中tree安装_Python 学习笔记:Jupyter Notebook 的安装使用以及 tree 路径变更
  10. android webview 清除缓存,Android webView 缓存处理
  11. UVC app流程图
  12. 泛生子Q2及臻和招股书速读
  13. 在html里ff3d3d是什么颜色,HTML一些颜色方面的参考
  14. 欢迎大家加入Xcode公社
  15. ¶àÀ­AÃεĴó½á¾Ö
  16. 关于正向设计方法包含哪些内容
  17. 一篇难得的关于傅里叶分析的好文
  18. TMS320F28379D——时钟系统
  19. 通过阿里云ECS服务器部署FRP实现Windows自带远程桌面
  20. C++从freshman到老油条(1)——基础知识

热门文章

  1. OpenCV实现FloodFill泛洪填充算法的代码及相关函数详解
  2. 浅谈 PodDisruptionBudgets
  3. OVS datapath主流程分析(二十一)
  4. android万年历有什么作用,基于android的万年历农历怎么算
  5. linux查看apache端口,linux系统下Apache服务启动时80端口报错
  6. 深入 Nginx 之架构篇
  7. MYSQL:1045Access denied for user 'root'@'localhost
  8. PAT乙级-1063. 计算谱半径(20)
  9. 《JAVA与模式》之适配器模式
  10. 中部四省会打造人才信息云平台