一、Git、GitHub、GitLab的区别
Git是版本控制系统,Github是在线的基于Git的代码托管服务。
GitHub是2008年由Ruby on Rails编写而成。GitHub同时提供付费账户和免费账户。这两种账户都可以创建公开的代码仓库,只有付费账户可以创建私有的代码仓库。
Gitlab解决了这个问题, 可以在上面创建免费的私人repo。
官方安装介绍:https://www.gitlab.com.cn/installation/
说明一下,官网提供GitLab的两种版本:gitlab-ee版本(企业版)和gitlab-ce版本(社区版),社区版是免费的。
二、GitLab Server搭建
官方说明:https://docs.gitlab.com.cn/ce/install/requirements.html#cpu,安装GitLab的硬件需求
(1)安装并配置必要的依赖关系
yum install -y curl openssh-server openssh-clients postfix cronie policycoreutils-python # 10.x以后开始依赖 policycoreutils-python,之前的版本不需要安装
# 启动 postfix
systemctl start postfix
启动时遇到错误:/usr/sbin/postconf: fatal: parameter inet_interfaces: no local interface found for ::1
解决方法参考自博客:https://www.cnblogs.com/byfboke/p/9843069.html
启动成功时如下图所示:
# 加入开机启动
systemctl enable postfix
(2)安装GitLab:
在GitLab官网:https://www.gitlab.com.cn/installation/,点击下面的链接,访问清华大学开源软件镜像站:
根据下面的说明走,配置gitlab-ce的yum源:
用yum安装时,可以看到是最新版本的gitlab-ce
下面是安装成功的界面:
(3)GitLab的配置:
GitLab的配置文件 /etc/gitlab/gitlab.rb, 编辑如下:
vim /etc/gitlab/gitlab.rb
external_url 'http://gitlab.example.com'这一行中的gitlab.example.com字符串替换成你自己服务器的域名或者IP地址,然后进行编译配置。
使用 gitlab-ctl reconfigure 命令自动配置,并安装数据库,初始化信息。(第一次使用配置时间较长,耐心等待)
gitlab-ctl reconfigure
。。。中间输出信息省略。。。
初始化配置成功,如下图所示:
使用 gitlab-ctl start 命令启动gitlab服务,如下所示:
free -h 命令查看gitlab启动后的内存使用情况
下面的截图是安装gitlab前的内存使用情况:
这是启动gitlab后的内存使用情况:
这时在浏览器输入服务器的域名或者IP地址,访问自己搭建的GitLab
能访问到说明GitLab安装成功!
(4)设置邮箱,修改配置文件,添加SMTP邮件功能
官方说明:https://docs.gitlab.com.cn/omnibus/settings/smtp.html#testing-the-smtp-configuration
gitlab-ctl stop # 停止GitLab
vim /etc/gitlab/gitlab.rb # 进入GitLab的配置文件
需要修改下面的两处配置,默认如下图所示:
修改后的截图:(我用的SMTP服务器是网易的)
配置完后,重新执行下面的命令:
gitlab-ctl reconfigure
gitlab-ctl start
GitLab启动起来后,可以用Rails控制台验证邮件是否能发送成功。 在GitLab服务器上,执行 gitlab-rails console 命令进入控制台。 然后在控制台提示符后输入下面的命令发送一封测试邮件:
Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now
注意:执行 gitlab-rails console 命令后可能需要等待一下,才会出来 irb(main):001:0>
如下图所示,说明配置成功!
在浏览器中输入服务器的域名或者IP地址 ,访问到如下界面,然后修改默认密码,单击 Change your password 按钮。
账号默认为root,密码是刚修改的。
登录成功的界面:
创建用户:
本文参考自文章:https://www.centos.bz/2018/05/gitlab搭建与基本使用/