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

一、前言

因本人创业须要,要创建一个Gitlab代码托管服务器方便团队人员使用,因此把相关过程记录下来分享给你们。搭建好的gitlab在线访问html

二、准备工做

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

clipboard.png

三、开始安装

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

clipboard.png

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 安装完成

clipboard.png

执行完上面几个步骤成功以后就能够访问gitlab了。git

clipboard.png

若是大家发现80端口不能访问,就要看看是否是阿里云服务器的安全组规则有没有设置,若是没有设置一下就好,下面是个人安全组规则。github

clipboard.png

3.5 免费申请阿里云SSL证书

clipboard.png

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

clipboard.png

clipboard.png

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

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

上传成功以后咱们等待下一步操做。npm

3.6 配置https

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

vim /etc/gitlab/gitlab.rb

把http域名换成https,以下:segmentfault

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,执行下面命令进行转换
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了。

clipboard.png

3.七、配置阿里云服务器邮件推送

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

clipboard.png

第二:DNS解析

clipboard.png

第三:解析完成以后,验证经过。

第四:新建发信地址

clipboard.png

第五:设置SMTP密码

clipboard.png

3.8 配置gitlab相关SMTP属性

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

clipboard.png

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

gitlab-ctl reconfigure

刷新地址,而后咱们注册一个用户,看看邮箱是否发送成功,我本身用新的邮箱注册了gitlab以后,到本身注册的邮箱下面看看确实发送成功了。

clipboard.png

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发生冲突。

四、使用搭建好的gitlab

4.1 本地生成ssh密钥

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

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

clipboard.png

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

clipboard.png

4.2 配置gitlab公钥

clipboard.png
把你生成好的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文章。

五、总结:

1)像我配置https和smtp都是参考官网的文档的,因此若是有问题及时到官网找找看
2)我在成功安装好以后浏览gitlab.awbeci.com的时候不是跳转到登陆页面而是到设置密码页面,刷新也不行,到如今都不知道怎么回事,是由于chrome的缘由吗,我用firefox没这个问题
3)若是大家有什么问题,能够加我QQ群:464696550

六、参考

  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