首先安装必须的一些依赖
sudo apt-get update sudo apt-get install -y curl openssh-server ca-certificates
安装Postfix发送通知邮件
sudo apt-get install -y postfix
运行命令后,会出现一样邮件配置项,选择Interent site这项,然后一路回车键(使用左右键和回车键选择确定、取消,弹出列表选项的时候,选择 Internet Site)
官方源安装gitlab
官方源网站安装gitlab(如果官网无法安装,请参照下边步骤,利用国内安装源进行安装)
sudo curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash sudo apt-get install gitlab-ce
国内源安装gitlab
信任 GitLab 的 GPG 公钥(配置git的公钥,如果不信任公钥,无法配置清华大学的镜像路径,切记):
curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null
配置镜像路径(由于git官网是国外的服务器,所以配置清华大学的镜像路径)
切换到root用户,打开下面文件;将下边的信息添加到文档中(详见Gitlab Community Edition 镜像使用帮助)
vi /etc/apt/sources.list.d/gitlab-ce.list --打开文件 deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu xenial main --添加国内安装源
gitlab安装包下载地址:https://packages.gitlab.com/gitlab/gitlab-ce
国内源安装 gitlab-ce
sudo apt-get update --更新
sudo apt-get install gitlab-ce --安装
执行配置
sudo gitlab-ctl reconfigure
注1:
在执行配置的时候sudo gitlab-ctl reconfigure的时候往往会出现:ruby_block[supervise_redis_sleep] action run,出现会一直卡无法往下进行!
解决方案:
1、按住CTRL+C强制结束;
2、运行:sudo systemctl restart gitlab-runsvdir
3、再次执行:sudo gitlab-ctl reconfigure
注2:(自己遇到的坑,在网上查的资料得知,)
- 在ruby_block动作运行一步会出现超时
运行处理程序:运行gitlab-ctl reconfigure时出错:ruby_block [使用GitLab授权Grafana](监视:: grafana第95行)发生错误:Mixlib :: ShellOut :: CommandTimeout:命令在600秒后超时:命令超出允许执行时间,进程终止
----开始输出/ opt / gitlab / bin / gitlab-railsRunner -e production'app = Doorkeeper :: Application.where(redirect_uri:“ http://xx.xx.xx.xx/ -/ grafana / login / gitlab”,名称:“ GitLab Grafana”)。first_or_create;放入app.uid.concat(“”).concat(app.secret);' ---- STDOUT:
STDERR:
---- / opt / gitlab / bin / gitlab-railsRunner的最终输出-e production'app = Doorkeeper :: Application.where(redirect_uri:“ http://xx.xx。 xx.xx /-/ grafana / login / gitlab”,名称:“ GitLab Grafana”)。first_or_create;放入app.uid.concat(“”).concat(app。
----运行/ opt / gitlab / bin / gitlab-railsRunner
-e production'app = Doorkeeper :: Application.where(redirect_uri:“ http://xx.xx.xx.xx/-/grafana/login/ gitlab”,名称:“ GitLab Grafana”)。first_or_create;放入app.uid.concat(“”).concat(app.secret);'
2.sudo gitlab-rake gitlab:env:info正常返回虽然有时上面一步出现超时,测试发现已经可以通过浏览器访问Gitlab服务器,并且可以进入到注册页面,但提交注册时出现返回超时而用户可以成功注册的情况。配置信息,页面返回虽然超时但操作可以正常完成,这也是我判断可能是服务运行过缓慢导致超时的原因。
3.在登录时反复超时,无法正常使用。将服务器内存配置替换为2GB后解决超时问题
注3:如果遇到这种报错信息的话,应该是git用户权限的问题。git用户需要对包含.ssh目录的文件夹(包含父文件夹)执行权限。
Running handlers: There was an error running gitlab-ctl reconfigure: service[grafana] (dynamically defined) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1' ---- Begin output of /opt/gitlab/embedded/bin/chpst -u root:root /opt/gitlab/embedded/bin/sv restart /opt/gitlab/service/grafana ---- STDOUT: timeout: run: /opt/gitlab/service/grafana: (pid 5165) 33s, got TERM STDERR: ---- End output of /opt/gitlab/embedded/bin/chpst -u root:root /opt/gitlab/embedded/bin/sv restart /opt/gitlab/service/grafana ---- Ran /opt/gitlab/embedded/bin/chpst -u root:root /opt/gitlab/embedded/bin/sv restart /opt/gitlab/service/grafana returned 1
即使/var/opt/gitlab/.ssh的所有者和用户组都是git,由于父权限,它也不能到这级目录执行shell命令。即,给 /var/opt/gitlab/目录执行权限
chmod +x /var/opt/gitlab/ chmod +x /var/opt/ chmod +x /var/
如果执行不成功,就用sudo命令执行
启动gitlab
sudo gitlab-ctl start
浏览器进行访问
http://电脑的IP地址
第一次进入,需要输入管理员账号的密码,以方便后期的管理。
输入好之后,就可以以管理员进行登录,账号是root,密码就是你刚才输入的密码。
至此,gitlab已安装成功,之后的使用方式,和github没有太大差异,就不进行介绍了
扩展
修改gitlab的端口和地址
编辑gitlab.rb
sudo gedit /etc/gitlab/gitlab.rb
将如下数据进行更改
external_url 'http://gitlab.example.com'
比如说更改为
external_url 'http://192.168.39.100:7800'
其中,192.168.39.100是安装了gitlab的这台电脑的IP,端口只要不冲突就行
更改之后,需要执行如下代码
sudo gitlab-ctl reconfigure
最后,在浏览器中访问gitlab,发现已修改成功,需要使用192.168.39.100:7800
来访问
其他
gtilab部分命令
开启 sudo gitlab-ctl start 停止 sudo gitlab-ctl stop 重启 sudo gitlab-ctl restart 查看状态 sudo gitlab-ctl status 确认配置(修改配置后,必须执行) sudo gitlab-ctl reconfigure 查看日志 sudo gitlab-ctl tail 查看 GitLab 版本号 cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
卸载gitlab
sudo gitlab-ctl uninstall sudo dpkg -r gitlab-ce sudo rpm -e gitlab-ce reboot(重启)