阿里云 ECS服务器(CentOS 7)安装和使用Gitlab教程

1、前言

因本人需要,要建立一个Gitlab代码托管服务器方便团队人员使用,所以把相关过程记录下来分享给大家。搭建好的gitlab在线访问

2、准备工作

我使用的是阿里云服务器ECS,系统是CentOS7.6,配置是 2核CPU 4GB内存,Gitlab官网推荐最低内存是4G。

3、开始安装

打开gitlab中文网安装地址,推荐Omnibus 包安装安装

3.1 安装依赖包

yum install -y curl policycoreutils-python openssh-server
systemctl enable sshd
systemctl start sshd
firewall-cmd --permanent --add-service=http(在aliyun ECS 安全规则组里面设置,这里可以不用设置)
systemctl reload firewalld(同上)

3.2 下载并执行安装gitlab的shell文件

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

3.3 设置自己的域名并且安装gitlab-ee

sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ee

3.4 安装完成

执行完上面几个步骤成功之后就可以访问gitlab了。


如果你们发现80端口不能访问,就要看看是不是阿里云服务器的安全组规则有没有设置,如果没有设置一下就好,下面是我的安全组规则。

3.5 免费申请阿里云SSL证书

购买成功之后,配置好域名,我这里的域名是: gitlab.awbeci.com,设置好之后等待审核,审核成功之后选择nginx版本并下载证书

下载完成之后是个.zip的压缩包,我们上传到服务器上,使用下面命令:

scp your-cert.zip root@your-server-ip:/your-server-directory

上传成功之后我们等待下一步操作。

3.6 配置https

打开官方文档配置https一节,执行下面命令编辑/etc/gitlab/gitlab.rb文件:

vim /etc/gitlab/gitlab.rb

把http域名换成https,如下:

external_url "https://gitlab.example.com"

编辑完成之后保存并退出,在/etc/gitlab下执行下面命令:

# 创建ssl文件夹
mkdir -p /etc/gitlab/ssl

# 设置成可读
chmod 700 /etc/gitlab/ssl

# 把上一步的.zip证书解压并复制到ssl文件夹下
unzip /root/your-cert-package.zip

# 解压之后应该是两个文件.pem和.key
# 注意:要把.pem转换成.crt,执行下面命令进行转换(或者把.pem文件直接把后缀改成.crt)
openssl x509 -outform der -in your-cert.pem -out your-cert.crt

# 复制.crt和.key文件到ssl目录下
cp your-cert.crt your-cert.key /etc/gitlab/ssl/

设置好之后,重启gitlab,执行下面命令:

gitlab-ctl reconfigure

重启之后访问gitlab应该已经是https了。

3.7、配置阿里云服务器邮件推送

第一:新建域名,我新建的是system.awbeci.com


第二:DNS解析

第三:解析完成之后,验证通过。

第四:新建发信地址

第五:设置SMTP密码

3.8 配置gitlab相关SMTP属性

打开gitlab官方文档设置SMTP一节,还是编辑/etc/gitlab/gitlab.rb文件

按照上面给出的设置设置成你自己刚才在阿里云邮件推送里面的配置,设置好之后重启gitlab:

gitlab-ctl reconfigure

刷新地址,然后我们注册一个用户,看看邮箱是否发送成功,我自己用新的邮箱注册了gitlab之后,到自己注册的邮箱下面看看确实发送成功了。

3.9 禁用GitLab CI/CD

修改/etc/gitlab/gitlab.rb文件:

gitlab_rails['gitlab_default_projects_features_builds'] = false

重启下gitlab才能生效,如下:

gitlab-ctl reconfigure

如果你想启用,可以参考下面两篇文章

  1. 开始使用GitLab CI/CD
  2. gitlab中CI/CD自动化部署使用

提醒:如果您使用的是Jenkins或Drone CI等外部CI / CD服务器,建议您禁用GitLab CI / CD,以免与提交状态API发生冲突。

4、使用搭建好的gitlab

4.1 本地生成ssh密钥

执行下面命令生成,如下:

ssh-keygen -t rsa -C 'your-register-gitlab-email'

执行完成之后会出现两个文件:id_rsa_awbeci和id_rsa_awbeci.pub

4.2 配置gitlab公钥

[图片上传失败...(image-a6846b-1621591392325)]
把你生成好的id_rsa_awbeci.pub文件内容复制到上面并点击添加。

4.3 测试是否添加正确

因为我是多git用户,我使用了如github,gitee等等托管服务器,所以我要配置下.ssh文件夹下的config文件vim /Users/zhangwei/.ssh/config,如果你们不是多用户这步可省略。

# gitlab.awbeci.com
Host gitlab-awbeci
HostName gitlab.awbeci.com
User your-name
IdentityFile /Users/zhangwei/.ssh/id_rsa_awbeci

配置好之后,执行下面命令:

ssh-add id_rsa_awbeci

注意:如果是Mac用户记得用ssh-add -K id_rsa_awbeci
如果是Windows用户如果执行报错,试试用ssh-agent bash

接着测试试试:

☁  .ssh  ssh -T git@gitlab.awbeci.com
Welcome to GitLab, @zhangwei!
☁  .ssh

到此我们安装和配置gitlab ssh都成功完成,后面就是创建项目,添加代码了,这个就不做详细说明了,不明白的可以到网上百度看看如果使用git文章。

5、升级

gitlab升级很容易,按照官方文档来操作即可

# 备份
sudo gitlab-rake gitlab:backup:create STRATEGY=copy

# 升级 注意:不能停止gitlab否则升级失败
sudo yum install -y gitlab-ce

注意:

  1. gitlab不能跨大版本升级,如不能直接从12.0.x升级到13.0.x,而应该先从12.0.x升级到最新的12.12.x版本,再升级到13.0x;
  2. 升级之前最好做个备份,尤其是/etc/gitlab/gitlab.rb文件;
  3. 升级的时候不要停止gitlab,而是直接升级。

6、总结:

1)像我配置https和smtp都是参考官网的文档的,所以如果有问题及时到官网找找看
2)我在成功安装好之后浏览gitlab.awbeci.com的时候不是跳转到登录页面而是到设置密码页面,刷新也不行,到现在都不知道怎么回事,是因为chrome的原因吗,我用firefox没这个问题
3)如果ssl证书过期要替换,可以直接上传之后把.pem文件改成.crt后缀重启gitlab
4)gitlab命令:gitlab-ctl status(状态) | tail(查看日志) | restart | start | stop

7、参考

  1. GitLab Installation
  2. 配置Https
  3. 配置SMTP
  4. 官方安装文档
  5. CentOS 7 下 GitLab安装部署教程
  6. 如何将.pem转换为.crt和.key?
  7. 阿里云GitLab的安装及使用
  8. How to enable or disable GitLab CI/CD
  9. Generating a new SSH key and adding it to the ssh-agent
  10. 是否必须每次添加ssh-add
  11. gitlab update
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容