之前的文章介绍了使用docker-compose安装GitLab,本篇文章介绍使用安装包形式安装GitLab。
参考文档
GitLab 官网 CentOS 安装文档 ,使用国内IP访问时,会跳转到极狐GitLab
前言
极狐GitLab 是国内版的 GitLab,与 GitLab 相同,都提供代码托管与软件安装镜像
本文以 GitLab EE 为例(非极狐GitLab)
本文使用的IP为
192.168.56.104(原因:如果使用域名,必须拥有这个域名的所有权,并增加解析才可以,要不然在 Docker 容器中,无法使用域名检出代码,因为根据域名找不到DNS记录)
安装GitLab
安装命令补全工具
1  | yum install -y bash-completion  | 
安装和配置必须的依赖项
1  | # 安装必要的依赖  | 
安装 Postfix 以发送电子邮件通知(可选项)
用户使用新IP登录时发送邮件
用户使用邮件找回密码
用户PR邮件提示等
如果您想使用其他方式发送邮件,可以跳过此步骤,并在安装GitLab后配置外部SMTP服务器。
在安装 Postfix 的过程中可能会出现一个配置界面,在该界面中选择“Internet Site”并按下回车。把“mail name”设置为您服务器的外部 DNS 域名并按下回车。如果还有其它配置界面出现,继续按下回车以接受默认配置。
1  | sudo yum install postfix  | 
配置 GitLab EE 软件源镜像
1  | mkdir -p /opt/gitlab  | 
下载安装 GitLab EE
1  | sudo EXTERNAL_URL="http://192.168.56.104" yum install -y gitlab-ee  | 
安装好了,访问:http://192.168.56.104
管理员 root 用户操作相关
查看用户初始密码
1  | # 用户名为 root  | 
使用初始密码登录root,进入系统后会让修改密码,输入初始密码和两次新密码保存修改后重新登录即可。
将语言调整为中文,网址:http://<GitLab服务器IP>/-/profile/preferences,在 Localization 一栏将 Language 修改为 Chinese, Simplified - 简体中文,保存修改后刷新页面即可显示中文。
至此,GitLab就安装完成了。
相关命令
1  | # 查看 GitLab 状态  | 
GitLab https配置
说明
GitLab https 使用的是 nginx 实现的
本文使用的IP是 192.168.56.104(原因:如果使用域名,必须拥有这个域名的所有权,并增加解析才可以,要不然在 Docker 容器中,无法使用域名检出代码,因为根据域名找不到DNS记录)
如果使用自己生成的证书,git 检出代码、推送代码会失败,原因是无法验证证书的有效性,可以使用名 git config --global http.sslVerify false 禁用ssl的验证
生成证书
如果有域名,可以使用域名申请免费的证书,下载 Nginx 证书即可
如果没有域名,可使用下列命令在 CentOS 上生成
创建证书文件夹
1  | mkdir -p /etc/gitlab/ssl  | 
生成证书
1  | # 如果出现 -bash: openssl: command not found,请安装 openssl:yum -y install openssl  | 
最终生成了:ca.crt、ca.key、ca.srl、server.crt、server.csr、server.key,其中 server.crt 和 server.key 就是 Nginx 使用的证书。
配置Https
安装vim
1  | yum install -y vim  | 
编辑 gitlab.rb 文件
1  | vim /etc/gitlab/gitlab.rb  | 
修改内容如下
1  | # 填写你的域名,注意是https  | 
重新配置 GitLab
1  | sudo gitlab-ctl reconfigure  | 
查看GitLab各服务的状态
1  | sudo gitlab-ctl status  | 
修改DNS(或者在本地 hosts 将域名指向 GitLab服务器IP),访问https://<GitLab域名> 即可(如果使用自己生成的证书,可能会提示您的连接不是私密连接,忽略即可)。
如果是用 IP 方式配置的直接访问 https://IP地址 即可。
到此 GitLab 的 https 访问就配置好了。
到此 GitLab 安装包方式安装就好了,后面还需要使用 GitLab Runner,就暂时不在这展开了。
