centos7 部署安装gitlab服务器
概念:
git 是一种版本控制系统,是一个命令,是一种工具
gitlib 是用于实现git功能的开发库
github 是一个基于git实现的在线代码托管仓库,包含一个网站界面,向互联网开放
gitlab 是一个基于git实现的在线代码仓库托管软件,你可以用gitlab自己搭建一个类似于
github一样的系统,一般用于在企业、学校等内部网络搭建git私服
帮助文档:http://www.runoob.com/git/git-tutorial.html
使用教程:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
汉化参考链接:https://www.cnblogs.com/eleven24/p/6906305.html
centos7安装gitlab:https://www.gitlab.cc/downloads/#centos7
centos6安装gitlab:https://www.gitlab.cc/downloads/#centos6
这里使用centos7 64bit做演示:
1. 安装依赖软件
yum -y install policycoreutils openssh-server openssh-clients postfix policycoreutils-python
2.设置postfix开机自启,并启动,postfix支持gitlab发信功能
systemctl enable postfix && systemctl start postfix
3.下载gitlab安装包,然后安装(建议选择较新版本安装)
centos 6系统的下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6
centos 7系统的下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
下载rpm包并安装: wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm rpm -ivh gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
RPM 安装操作 rpm -i 需要安装的包文件名 举例如下: rpm -i example.rpm 安装 example.rpm 包; rpm -iv example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息; rpm -ivh example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息及安装进度; RPM 查询操作 命令: rpm -q … 附加查询命令: a 查询所有已经安装的包以下两个附加命令用于查询安装包的信息; i 显示安装包的信息; l 显示安装包中的所有文件被安装到哪些目录下; s 显示安装版中的所有文件状态及被安装到哪些目录下;以下两个附加命令用于指定需要查询的是安装包还是已安装后的文件; p 查询的是安装包的信息; f 查询的是已安装的某文件信息; 举例如下: rpm -qa | grep tomcat4 查看 tomcat4 是否被安装; rpm -qip example.rpm 查看 example.rpm 安装包的信息; rpm -qif /bin/df 查看/bin/df 文件所在安装包的信息; rpm -qlf /bin/df 查看/bin/df 文件所在安装包中的各个文件分别被安装到哪个目录下; RPM 卸载操作 命令: rpm -e 需要卸载的安装包 在卸载之前,通常需要使用rpm -q …命令查出需要卸载的安装包名称。 举例如下: rpm -e tomcat4 卸载 tomcat4 软件包 RPM 升级操作 命令: rpm -U 需要升级的包 举例如下: rpm -Uvh example.rpm 升级 example.rpm 软件包 RPM 验证操作 命令: rpm -V 需要验证的包 举例如下: rpm -Vf /etc/tomcat4/tomcat4.conf 输出信息类似如下: S.5....T c /etc/tomcat4/tomcat4.conf 其中,S 表示文件大小修改过,T 表示文件日期修改过。限于篇幅,更多的验证信息请您参考rpm 帮助文件:man rpm RPM 的其他附加命令 --force 强制操作 如强制安装删除等; --requires 显示该包的依赖关系; --nodeps 忽略依赖关系并继续操作;
4.修改gitlab配置文件指定服务器ip和自定义端口:
vim /etc/gitlab/gitlab.rb
退出并保存
ps:注意这里设置的端口不能被占用,默认是8080端口,如果8080已经使用,请自定义其它端口,并在防火墙设置开放相对应得端口
5.重置并启动GitLab
gitlab-ctl reconfigure
gitlab-ctl restart
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
ok: run: gitlab-git-http-server: (pid 3922) 1s ok: run: logrotate: (pid 3929) 0s ok: run: nginx: (pid 3936) 1s ok: run: postgresql: (pid 3941) 0s ok: run: redis: (pid 3950) 0s ok: run: sidekiq: (pid 3955) 0s ok: run: unicorn: (pid 3961) 1s
6.访问 GitLab页面
如果没有域名,直接输入服务器ip和指定端口进行访问(第一次登陆需更改初始密码)
常用维护命令:gitlab-ctl start|stop|status|restart
7.设置gitlab发信功能,需要注意一点:
发信系统用的默认的postfix,smtp是默认开启的,两个都启用了,两个都不会工作。
我这里设置关闭smtp,开启postfix
关闭smtp方法:vim /etc/gitlab/gitlab.rb
找到#gitlab_rails['smtp_enable'] = true 改为 gitlab_rails['smtp_enable'] = false
修改后执行gitlab-ctl reconfigure
另一种是关闭postfix,设置开启smtp,相关教程请参考官网https://doc.gitlab.cc/omnibus/settings/smtp.html
测试是否可以邮件通知:
登录并添加一个用户,我这里使用qq邮箱添加一个用户
常见报错!
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
一.登录502报错 一般是权限问题,解决方法:chmod -R 755 /var/log/gitlab 如果还不行,请检查你的内存,安装使用GitLab需要至少4GB可用内存(RAM + Swap)! 由于操作系统和其他正在运行的应用也会使用内存, 所以安装GitLab前一定要注意当前服务器至少有4GB的可用内存. 少于4GB内存会出现各种诡异的问题, 而且在使用过程中也经常会出现500错误. 二.gitlab-ctl reconfigure 报错n itdb: could not obtain information about current user: Permission denied Error executing action `run` on resource 'execute[/opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8]' 根据报错信息大概锁定用户的权限问题,安装gitlab-ce会自动添加用户四个用户: gitlab-www:x:497:498::/var/opt/gitlab/nginx:/bin/false git:x:496:497::/var/opt/gitlab:/bin/sh gitlab-redis:x:495:496::/var/opt/gitlab/redis:/bin/nologin gitlab-psql:x:494:495::/var/opt/gitlab/postgresql:/bin/sh google和百度都搜索不到解决方法,既然出错提示到权限问题,那么按照这个方向去查就不会有问题,后来查了文件/etc/passwd的权限是600,给予644权限后,成功解决报错问题