在项目开发中都需要代码托管仓库来对开发中的代码进行管理,主流的两大代码托管仓库SVN(subversion)和GitHub。GitHub是很适合的开源项目代码托管,但在很多企业前期开发中需要建立私有仓库来管理代码,所以企业开发用的最多的还是gitLab。二者的区别这里不做过多讲解。感兴趣的朋友可以自己去查阅资料。
需要在服务器上搭建全新Gitlab服务器,完毕后在此记录全过程及遇到的问题。
注:我是在内网防火墙关闭状态下安装
之前尝试过直接yum安装,并使用清华大学的开源镜像站地 但服务器从该yum源下载实在太慢,并一直卡在安装,未成功;故手动下载rpm包安装。
环境说明
系统CentOS:CentOS7
IP: 192.168.203.133
操作步骤
1.查看Linux系统版本确认gitlab需要使用的安装包类型
[root@localhost proc]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
gitlab前要安装相关依赖。需要用到policycoreutils-python、openssh、postfix组件,
首先确认通过命令确认是否安装组件。
2.先安装相关依赖
yum -y install policycoreutils openssh-server openssh-clients postfix
3.启动postfix,并设置开机自启动
目的:支持gitlab邮件发送
systemctl enable postfix && systemctl start postfix
查看是否安装Openssh
$ rpm -qa|grep openssh
出现以下内容则证明已安装openssh
查看是否安装postfix
$ rpm -qa|grep postfix
出现以下内容则证明安装成功
查看是否安装policycoreutils-python
$ rpm -qa|grep policycoreutils-python
出现以下内容则证明安装成功
4.下载并安装Gitlab社区版RPM包
gitlab下载地址:https://packages.gitlab.com/gitlab/gitlab-ce
以git官方地址为例:
选择el/7版本
EL是Red Hat Enterprise Linux的简写
- EL6软件包用于在Red Hat 6.x, CentOS 6.x, and CloudLinux 6.x进行安装
- EL5软件包用于在Red Hat 5.x, CentOS 5.x, CloudLinux 5.x的安装
- EL7 软件包用于在Red Hat 7.x, CentOS 7.x, and CloudLinux 7.x的安装
点击下载
将下载好的gitlab安装包通过wincsp工具上传到目标服务器。
将ssh服务设置开机启动
$ systemctl enable sshd
启动ssh服务
$ systemctl start sshd
查看ssh服务状态
$ systemctl status sshd
active(running)表示ssh服务已启动
默认防火墙firewall是安装好并开启的,如需了解防火墙相关操作请参考此篇文章:centos7防火墙开启与关闭及开通策略
将http服务策略添加到防火墙
$ firewall-cmd --permanent --add-service=http
重启防火墙使之生效
$ systemctl reload firewalld
设置postfix开机启动
$ systemctl enable postfix
启动postfix服务
$ systemctl start postfix
查看postfix服务状态
$ systemctl status postfix
active(running)表示postfix服务已启动
做好以上准备后接下来就可以安装gitlab了,cd到上传gitlab安装包的目录中,使用rpm命令安装gitlab
$ rpm -i gitlab-ce-13.11.1-ce.0.el7.x86_64.rpm
出现以下内容则说明安装成功了 等待大约有十几分钟
修改gitlab登录地址
$ vim /etc/gitlab/gitlab.rb
使用命令重置gitlab
$ gitlab-ctl reconfigure
整个过程需要几分钟,我安装时用了二十几分
使用命令重启gitlab
$ gitlab-ctl restart
重启后浏览器登录gitlab出现502报错
查阅资料很多安装的博主都说是权限问题,执行以下命令赋权(我是这个问题)
$ chmod -R 755 /var/log/gitlab
赋权后重置gitlab配置
$ gitlab-ctl reconfigure
端口不能被占用
使用浏览器访问
第一次登录需要设置密码,在输入框输入自己将要设定的管理员密码,点击Change your password按钮
跳转到登录页面,输入用户名root,密码为你刚刚设置好的密码,点击登录
显示一下内容则说明登录成功
至此,gitlab的安装已经完成了,后续会讲到如何新建用户、新建仓库等一系列配置。
新建一个账号
用新账号登录时报
Your account is pending approval from your GitLab administrator and hence blocked. Please contact your GitLab administrator if you think this is an error.
开始解决方案
参照
https://lightsail.blog.csdn.net/article/details/115254424
完成后想登录http://127.0.0.1/ 需要账号和密码登录,注册一个后登录报
Your account is pending approval from your GitLab administrator and hence blocked
错误,需要管理员账号初始化.
账号初始化参考下面博客
https://blog.csdn.net/hnmpf/article/details/80518460
初始化好后输入账号和密码就可以登录进去了。
sudo gitlab-rails console
在irb(main):001:0> 后面通过 u=User.where(id:1).first 来查找与切换账号(User.all 可以查看所有用户)
通过u.password='12345678'设置密码为12345678(这里的密码看自己喜欢):
通过u.password_confirmation='12345678' 再次确认密码
通过 u.save!进行保存(切记切记 后面的 ! return u.save!)
这是用了改密码的 不是这个问题 因安装的版本比较高 之前都是用地版本
解决方案 需要用root账号通过下
点击批准
再次用申请账号登录
可以登录成功 但是报Gitlab 422 the change you requested was rejected
Error 422 The change you requested was rejected on login
搜索前人经验,无果,尝试用其他浏览器登录,发现登录正常!后来回想是昨天清空了chrome浏览器缓存,而且登录页面一直没有关闭直接再登录引起的。关闭登录页面后过一段时间再次登录就OK了
登录成功
参照
https://blog.csdn.net/wangleiqqaaaaa/article/details/103575391?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.baidujs&dist_request_id=1332037.8014.16191413732941749&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.baidujs
https://blog.csdn.net/lingdi2000/article/details/103174769
https://www.jianshu.com/p/d03a08dd28a2 未成功
https://lightsail.blog.csdn.net/article/details/115254424
https://blog.csdn.net/wxb880114/article/details/106349993
使用参照
版本不同略有差异
https://blog.csdn.net/qq_31237581/article/details/102639749