Tip:建议内存至少4G(在虚拟机中用2G内存失败了几次,改为4G马上就安装上了),这也是官网的强烈建议 参考:
安装sshd
yum install -y curl policycoreutils-python openssh-server
#设置sshd服务为开机启动
systemctl enable sshd
#启动sshd服务
systemctl start sshd
如果已经安装了防火墙并且已经在运行状态,则可直接进行下一步
yum install -y firewalld systemd
#开启防火墙
service firewalld start
添加http/https服务到firewall
#添加http/https服务到firewall
#参数pemmanent表示永久生效,若不加--permanent系统下次启动后就会失效
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
#重启防火墙
systemctl reload firewalld
#安装Postfix用来发送通知邮件
yum install postfix
#将postfix服务设置成开机自启动
systemctl enable postfix
#开启postfix
systemctl start postfix
在安装Postfix期间,可能会出现配置屏幕。选择“Internet Site”并按enter键。使用您的服务器的外部DNS以“mail name”并按enter。如果出现额外的屏幕,继续按enter键接受默认值。
在这一步中,官网指南是先下载gitlab的yum源,然后yum install gitlab_gitlab-ee
,但是该yum源国内访问不了。且官网在这一步中说明又不是很详细,所以我参考下面这篇文章,下载 rpm 手动安装。
参考:
下载
gitlab-ce 社区版,gitlab-ee 企业版
EL是Red Hat E nterprise L inux(EL)的缩写。
- EL6是Red Hat 6.x,CentOS 6.x和CloudLinux 6.x的下载。
- EL5是Red Hat 5.x,CentOS 5.x和CloudLinux 5.x的下载。
- EL7是Red Hat 7.x,CentOS 7.x和CloudLinux 7.x的下载。
下载一个具有汉化版本的gitlab版本(gitlab版本要和汉化版本一致!!!)
#从清华大学的开源镜像站下载rpm包
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm
rpm -i gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm
如果下图,则表示安装成功
修改配置
vim /etc/gitlab/gitlab.rb
#编辑以下内容,指定域名/ip和端口
external_url 'http://10.0.2.15:8090'
#在防火墙中开放该端口号
firewall-cmd --permanent --zone=public --add-port=8090/tcp
#重启防火墙
systemctl reload firewalld
external_url 域名和ip都可以,但是端口号不能占用
#重载配置文件
gitlab-ctl reconfigure
#重启
gitlab-ctl restart
如下图,表示成功
在卸载gitlab然后再次安装执行
gitlab-ctl reconfigure
的时候往往会出现:ruby_block[supervise_redis_sleep] action run 或者
ruby_block[wait for redis service socket] action run
一直卡无法往下进行!
解决方法:按 ctrl+c 退出,然后执行
systemctl restart gitlab-runsvdir
,再继续执行gitlab-ctl reconfigure
,如安装过程遇到报错信息,可重复执行gitlab-ctl reconfigure
如果遇到 “Chef Client failed. 3 resources updated in 03 seconds” 问题
执行
yum install libsemanage-static libsemanage-devel
,然后执行gitlab-ctl reconfigure
gitlab的常用命令:
# 启动所有 gitlab 组件
gitlab-ctl start
# 停止所有 gitlab 组件
gitlab-ctl stop
# 重启所有 gitlab 组件
gitlab-ctl restart
# 查看 gitlab 组件服务状态
gitlab-ctl status
# 重新加载配置文件
gitlab-ctl reconfigure
# 编辑配置文件
vim /etc/gitlab/gitlab.rb
# 检查gitlab
gitlab-rake gitlab:check SANITIZE=true --trace
# 查看日志
gitlab-ctl tail
- 如果没有域名,直接输入服务器ip和指定端口进行访问
- 初始账户: root 密码: 5iveL!fe
- 第一次登录需要修改密码
- 第一次访问的时候,页面显示 502,百度了好多解决方法都差不多,也都试了,没啥用。后来放着过了一段时间刷新,竟然好了,也不知道什么原因
gitlab的汉化有一个单独的项目 https://gitlab.com/xhang/gitlab
参考:
git clone https://gitlab.com/xhang/gitlab.git
克隆的时候速度很慢很慢,而且还有可能出现:
[root@centos7 ~]# git clone https://gitlab.com/xhang/gitlab.git
正克隆到 'gitlab'...
remote: Enumerating objects: 40998, done.
remote: Counting objects: 100% (40998/40998), done.
remote: Compressing objects: 100% (15116/15116), done.
error: RPC failed; result=18, HTTP code = 200 | 266.00 KiB/s
fatal: The remote end hung up unexpectedly
fatal: 过早的文件结束符(EOF)
fatal: index-pack failed
解决方法参考 Git使用指南#问题总结
建议:先下载 gitlab 项目,然后上传到服务器
cd gitlab
git branch -a
对比版本、生成补丁包
!!!注意:gitlab 版本要和 汉化版本一致
#设置变量gitlab的版本
gitlab_version=$(cat /opt/gitlab/embedded/service/gitlab-rails/VERSION)
#比较汉化标签和原标签,导出 patch 用的 diff 文件
git diff v${gitlab_version} v${gitlab_version}-zh > ../${gitlab_version}-zh.diff
gitlab-ctl stop
打补丁
patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < ${gitlab_version}-zh.diff
#启动
gitlab-ctl start
#重新配置
gitlab-ctl reconfigure
刷新页面
如果汉化中出现问题,请重新安装 GitLab(注意备份数据)。
疑似汉化不完整
解决:在 Settings -> Preferences 的 Localization 中选择“简体中文” 即可。
停止 gitlab
gitlab-ctl stop
#如果是社区版,则 rpm -e gitlab-ce
rpm -e gitlab-ee
杀死gitlab进程
#查看进程
[root@centos7 ~]# ps -ef|grep gitlab
root 1340 1 0 21:25 ? 00:00:00 runsvdir -P /opt/gitlab/service log: ................................................................................................................................................................................................................................................................................................................................runsvdir /opt/gitlab/service: warning: time warp: resetting time stamp. ...
root 1348 1344 0 21:25 ? 00:00:00 svlogd /var/log/gitlab/gitaly
root 1349 1340 0 21:25 ? 00:00:00 runsv gitlab-workhorse
root 1352 1343 0 21:25 ? 00:00:00 svlogd -tt /var/log/gitlab/redis
root 1353 1346 0 21:25 ? 00:00:00 svlogd -tt /var/log/gitlab/puma
root 1355 1347 0 21:25 ? 00:00:00 svlogd /var/log/gitlab/sidekiq
root 1357 1345 0 21:25 ? 00:00:00 svlogd -tt /var/log/gitlab/postgresql
root 1362 1351 0 21:25 ? 00:00:00 svlogd -tt /var/log/gitlab/logrotate
root 1363 1349 0 21:25 ? 00:00:00 svlogd /var/log/gitlab/gitlab-workhorse
root 1368 1350 0 21:25 ? 00:00:00 svlogd -tt /var/log/gitlab/nginx
root 1370 1340 0 21:25 ? 00:00:00 runsv gitlab-exporter
root 1375 1360 0 21:25 ? 00:00:00 svlogd -tt /var/log/gitlab/node-exporter
root 1377 1370 0 21:25 ? 00:00:00 svlogd -tt /var/log/gitlab/gitlab-exporter
root 1379 1373 0 21:25 ? 00:00:00 svlogd -tt /var/log/gitlab/alertmanager
root 1380 1374 0 21:25 ? 00:00:00 svlogd -tt /var/log/gitlab/postgres-exporter
root 1390 1371 0 21:25 ? 00:00:00 svlogd -tt /var/log/gitlab/redis-exporter
root 1392 1372 0 21:25 ? 00:00:00 svlogd -tt /var/log/gitlab/prometheus
root 1398 1384 0 21:25 ? 00:00:00 svlogd -tt /var/log/gitlab/grafana
root 3896 1460 0 22:07 pts/0 00:00:00 grep --color=auto gitlab
#杀死第一个守护进程
[root@centos7 ~]# kill -9 1340
#再次查看
[root@centos7 ~]# ps -ef|grep gitlab
#删除所有包含gitlab的文件及目录
find / -name gitlab|xargs rm -rf
#删除gitlab-ctl uninstall时自动在root下备份的配置文件
rm -f /root/gitlab*
先来熟悉几个概念:
群组:群组允许您管理、协作多个项目。群组的成员可以访问群组下的所有项目。 也可以通过创建 子群组来嵌套群组。 属于群组的项目以群组名称为前缀。现有项目可以移动到一个群组中。
用户:用户的访问等级有:普通用户、管理员。 普通用户可以访问他们的群组和项目。 管理员可以访问所有组,项目和用户,并且可以管理此安装中的所有功能
项目:项目可以用于存放文件(仓库),安排计划(议题),并发布文档(wiki), 及其他功能。 从模板或导入时为空白项目将启用所有功能,但可以在项目设置中将其禁用。 其他Pages模板的信息及安装指南可以在Pages 入门指南中找到. 提示: 您也可以通过命令行来创建新项目。 显示相关命令
主要操作:
选择 Repository -> 分支,然后在某次提交上点击"合并请求",进入合并请求表单页面
有2个地方要自定义:Assign 由谁来审批这次合并请求;Target Branch 目标分支,将提交合并到哪个分支上