gitlab安装配置

前言:
GitHub作为开源代码库及版本控制系统,拥有超过900万的开发者用户,目前仍然是最火的开源项目托管系统。GitHub同时提供公共仓库和私有仓库,但如果要使用私有仓库,是需要付费的
而GitLab解决了这个问题,你可以在上面创建私人的免费仓库。
Gitlab 是一个很棒的Git托管服务,几乎像GitHub一样强大。gitlab 一般作为内部私有系统使用,若公司使用 git 分布代码,每次从 github 上 pull 则非常慢,使用 gitlab 则方便很多。

优势:
GitLab拥有更多的特性,它可以让开发团队拥有更多的安全性和灵活性的选择。
GitLab拥有GitHub拥有的一切,但他拥有更多——让团队对它们的repositories拥有更多的控制,它的特色:
非常便捷的用户界面,在同一界面上获取到:projects,最近的projects,用户,最近的用户,群组和状态;
允许设置仓库权限是公用的还是私有的;
“Snippet support”让用户分享一个project的部分代码,而不是整个project。
受保护的分支是一种提升代码安全性的新方法,它们允许用户设置project的获取权限,所以一个团队中只有特定的人可以push,force push或者删除一个分支的代码。
Authentication levels更进一步的提升安全性,允许用户给人读写以外的权限。举例来说,你可以给一个组员跟踪变动的权限却不给他获取代码的权限。
开发者通过打上“仍在进行中”状态标签让其他成员知道代码没有完成,从而阻止未完成的代码合并到其他的代码中
“innersourcing”公司的资源如果员工不再权限范围内,将不知道这个资源的存在。

相关概念:

git      是一种版本控制系统,是一个命令,是一种工具。
github  是一个基于git实现在线代码托管的仓库,向互联网开放,企业版要收钱。
gitlab   类似 github,一般用于在企业内搭建git私服,要自己搭环境。
gitee    即码云,是 oschina 免费给企业用的,不用自己搭建环境。
git-ce  是社区版,gitlab-ee是企业版,收费版。

相关配置:
1、yum安装相关依赖
安装 curl,policycoreutils-python,openssh-server服务
# yum install curl policycoreutils-python openssh-server -y

2、启动sshd服务,并激活开机启动
# systemctl enable sshd
# systemctl start sshd

3、安装Postfix发送通知邮件
# yum install postfix -y

4、启动postfix服务,并激活开机启动
# systemctl enable postfix 
# systemctl start postfix

5、获取GitLab-ee(企业版·免费试用)或Gitlab-ce(社区版·免费)软件包yum源
# curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | bash

# curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash
说明: curl命令执行完成后,会在/etc/yum.repos.d目录下生成 gitlab_gitlab-ee.repo 或 gitlab_gitlab-ce.repo文件。
关于gitlab-ee和gitlab-ce,二者是基于同样的核心代码进行开发,只是gitlab-ee功能更强大,但需要付费使用,有30天试用期。但试用期过后如果不付费,它就跟gitlab-ce功能是完全一样的,只是需要付费的功能无法再继续使用而已,所以这两个版本可以随意选择安装,但如果将来有付费的打算,直接安装gitlab-ee版本是个有远见的选择。当然,即使不付费,gitlab-ee使用上和gitlab-ce没有任何区别,所以接下来的操作我们就以安装gitlab-ee为例进行。

6、修改gitlab_gitlab-ce.repo文件
$ cd /etc/yum.repos.d
设置repo_gpgcheck属性为0,
以及baseurl属性为清华大学的开源镜像站地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ee/yum/el7

7、安装gitlab-ce(最新版本)
$ EXTERNAL_URL="http://ipxxxxx" yum install -y gitlab-ce
...
Thank you for installing GitLab!
GitLab should be available at http://106.12.25.16

For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
Verifying  : gitlab-ce-11.0.2-ce.0.el7.x86_64                                               1/1 
Installed:
  gitlab-ce.x86_64 0:11.0.2-ce.0.el7                                                              
Complete!

8、启动gitlab服务
$ gitlab-ctl start
[root@vm2018 yum.repos.d]# gitlab-ctl start
ok: run: gitaly: (pid 24394) 192s
ok: run: gitlab-workhorse: (pid 24316) 215s
ok: run: logrotate: (pid 24342) 203s
ok: run: nginx: (pid 24324) 209s
ok: run: postgresql: (pid 23908) 416s
ok: run: redis: (pid 23811) 442s
ok: run: sidekiq: (pid 24622) 101s
ok: run: unicorn: (pid 24727) 6s

gitlab默认端口为80,访问 http://x.x.x.x 即可直接访问gitlab,第一次访问会要你重置root用户的密码。

说明: 启动之后如果访问的时候出现502错误,则需要检查一下端口是否占用以及机器内存是否够。

配置文件路径:/etc/gitlab/gitlab.rb 

日志文件路径:/var/log/gitlab/nginx


9、登录git网页
启动成功后,默认用户为root
第一次需要设置密码,
也可以新注册用户,注册用户默认为非管理员用户,如下:
gitlab安装配置_第1张图片

PS:以下是额外说明:
1)常用的几个Gitlab命令
-------------------------------------------------------------------
# 重新应用gitlab的配置
$  gitlab-ctl reconfigure

# 重启gitlab服务

$  gitlab-ctl restart

# 查看gitlab运行状态
$  gitlab-ctl status

#停止gitlab服务
$  gitlab-ctl stop

# 查看gitlab运行日志
$  gitlab-ctl tail

# 停止相关数据连接服务
$ gitlab-ctl stop unicorn
$ gitlab-ctl stop sidekiq

2)git创建用户权限等级分三种:
Private 私有的,只有你自己或者组内的成员能访问
Internal 所有登录的用户
Public 公开的,所有人都可以访问

最后补充一个很关键的:

(gitlab要求的分配内存不小于2048,也就是说不小于2G内存,之前我用了个百度的入门级别云主机1核1G内存,结果折腾了半天,死活不成功,总是502错误Whoops, GitLab is taking too much time to respond)。后面换了个4G内存的,同样的配置,直接就运行成功了!
























你可能感兴趣的:(系统运维)