环境说明
系统CentOS:CentOS7
IP: 172.16.2.205
操作步骤
1.查看Linux系统版本确认gitlab需要使用的安装包类型
[root@localhost proc]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
本系统是CentOS 7,对应官方教程地址:https://about.gitlab.com/installation/#centos-7
2.安装 curl,policycoreutils-python,openssh-server服务
yum install -y curl policycoreutils-python openssh-server
3.启动sshd服务,并激活开机启动
systemctl enable sshd
systemctl start sshd
4.防火墙允许http服务通过,如果防火墙没有启动需要启动防火墙systemctl start firewalld
firewall-cmd --permanent --add-service=http
systemctl reload firewalld
systemctl start firewalld
5.安装Postfix发送通知邮件,启动postfix服务,并激活开机启动
yum install postfix
systemctl enable postfix
systemctl start postfix
6.获取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为例进行。
如果安装gitlab-ce目前不需要使用国内镜像,如果是安装gitlab-ee就需要用到国内镜像
7.修改gitlab_gitlab-ee.repo文件
把repo_gpgcheck属性为0,以及baseurl属性为清华大学的开源镜像站地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ee/yum/el7
[gitlab_gitlab-ee]
name=gitlab_gitlab-ee
#baseurl=https://packages.gitlab.com/gitlab/gitlab-ee/el/7/$basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ee/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gitlab/gitlab-ee/gpgkey
https://packages.gitlab.com/gitlab/gitlab-ee/gpgkey/gitlab-gitlab-ee-3D645A26AB9FBD22.pub.gpg
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
[gitlab_gitlab-ee-source]
name=gitlab_gitlab-ee-source
#baseurl=https://packages.gitlab.com/gitlab/gitlab-ee/el/7/SRPMS
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ee/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gitlab/gitlab-ee/gpgkey
https://packages.gitlab.com/gitlab/gitlab-ee/gpgkey/gitlab-gitlab-ee-3D645A26AB9FBD22.pub.gpg
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
修改完成后再刷新yum源:
yum clean all
yum yum makecache
注意事项以及该文件关键键的介绍:
1.gitlab_gitlab-ee和gitlab_gitlab-ee-source对应的地址都要换
2.name是仓库的名字
3.baseurl字段是仓库的url,也就是仓库具体的访问路径,就是通过这个选项告知yum,仓库在哪。这里可以指明多个url,如果写了多个url,yum将遵循failovermethod字段进行使用
4.enabled字段指明了该url是否启用,0为不启用,默认为1
5.gpgcheck字段指明了是否检查rpm包的签名信息、完整性信息,0为不启用,1为启用
(注意:如果启用这个字段,也就是为1时,如果没有gpgkey时,检查很可能无法通过。我们可以在命令行中使用-- nogpgcheck选项禁止检查gpg)
6.repo_gpgcheck指明了是否检查元数据信息文件的签名信息与完整性,0为不启用,1为启用
7.gpgkey=url指明了密钥文件的url路径,有了这个密钥才能检查各种完整信息。
8.由于gpgkey对应的地址需要翻墙所以gpgcheck也需要设置为0,如果你服务器不需要翻墙可以不用使用默认值1。
9.https://mirrors.tuna.tsinghua.edu.cn是国内清华大学开源镜像站,避免yum install可能会因为网络原因导致失败。
8.安装gitlab-ee(最新版本)
EXTERNAL_URL地址是对应的访问你gitlab的地址
EXTERNAL_URL="http://172.16.2.205:8888/gitlab" yum install -y gitlab-ee
默认安装最新版本,如果需要安装指定的版本,可以到清华大学开源镜像站下载指定版本的rpm包。通过rmp -ivh gitlab-ee-10.6.2-ee.0.el7.x86_64.rpm 进行安装,注意同样需要先安装yum install policycoreutils-python,openssh-server postfix -y 服务。
当看到一个由符合组成一张gitlab的图片的时候就是安装成功了。
9.添加8888和8887端口,并修改gitlab默认访问端口
添加端口
firewall-cmd --zone=public --add-port=8888/tcp --permanent
firewall-cmd --zone=public --add-port=8887/tcp --permanent
firewall-cmd --reload
gitlab默认是80端口,如果存在端口冲突,需要修改端口,如果不存在端口冲突,则不需要。
修改默认端口:需要放开/etc/gitlab/gitlab.rb文件里面nginx['listen_port']和nicorn['port']注释并设置端口,两个端口不能相同.具体原因笔者暂时也搞不懂,没用过nginx。
nginx['listen_port'] = 8888
unicorn['port'] = 8887
刷新gitlab配置和启动
gitlab-ctl reconfigure
gitlab-ctl restart
10.启动gitlab服务
gitlab-ctl start
gitlab默认端口为80,笔者这边安装的时候设置访问地址为http://172.16.2.205:8888/gitlab,第一次访问会要你重置root用户的密码,设置完密码,然后登录,就到以前熟悉的gitlab界面了。
[图片上传失败...(image-ae6fca-1542608435808)]
启动过程有点慢,访问的时候可能出现502超时请求,稍等一会就好了,如果等了很久还是502,就得考虑一下是不是端口占用问题
安装过程可能出现问题和修复方法:
1.1502 Whoops, GitLab is taking too much time to respond
解决方案:
修改默认端口:需要放开/etc/gitlab/gitlab.rb文件里面nginx['listen_port']和nicorn['port']注释并设置端口,两个端口不能相同.具体原因笔者暂时也搞不懂,没用过nginx。
nginx['listen_port'] = 8888
unicorn['port'] = 8887
刷新gitlab配置和启动
gitlab-ctl reconfigure
gitlab-ctl restart
##### 2.出现ruby_block[supervise_redis_sleep] action run停留很久
在卸载gitlab然后再次安装执行 gitlab-ctlreconfigure的时候往往会出现:ruby_block[supervise_redis_sleep] action run,会一直卡无法往下进行!
解决方案:
1、按住CTRL+C强制结束;
2、运行:sudo systemctl restart gitlab-runsvdir;
3、再次执行:sudo gitlab-ctl reconfigure