如果要将gitlab安装在centos上,那么我们要在系统上面安装所需的依赖:ssh、防火墙、postfix(用于邮件通知)、wegt;以及安装完毕后修改、配置gitlab配置文件,本教程使用 gitlab-ce-15.0.0(社区版)
做演示,由于是较新的版本,所以安装完以后自带中文无需汉化。
第一步,依赖项安装
安装SSH服务
yum install -y curl policycoreutils-python openssh-server
出现Complete表示安装成功,如下图所示:
执行如下指令设置SSH服务开机自启、启动
//设置SSH服务开机自启
systemctl enable sshd
//立刻启动SSH服务
systemctl start sshd
安装防火墙
防火墙为选配组件,内网环境或者服务器安装了面板管理软件,可以忽略。
//安装防火墙命令
yum install firewalld systemd -y
出现Complete表示安装成功,如下图所示:
启动防火墙服务
//启动防火墙服务
systemctl start firewalld
添加HTTP服务
//添加HTTP服务到防火墙,--pemmanent表示永久生效,若不加--permanent系统下次启动后就会失效。
firewall-cmd --permanent --add-service=http
//添加HTTP服务后,需要执行重载指令才能生效
systemctl reload firewalld
安装Postfix邮件服务
//Postfix服务安装指令
yum install postfix
//设置Postfix服务开机自启
systemctl enable postfix
//启动Postfix服务
systemctl start postfix
安装其他组件
//wget安装指令(wget用于插件下载)
yum install wget -y
//vim安装指令(vim编辑器)
yum install vim -y
第二步,下载安装gitlab
下载gitlab包
//gitlab包下载命令,本文以15.0.0为例
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-15.0.0-ce.0.el7.x86_64.rpm
gitlab新版包比较大,大概1G左右,下载可能需要一些时间,等待下载进度条完成即可;如下图。
安装gitlab
//定位至rpm包所在目录,执行安装命令
rpm -i gitlab-ce-15.0.0-ce.0.el7.x86_64.rpm
安装过程可能需要一些时间,当出现gitlab狐狸图标时,则表示安装完成;如下图。
第三步,配置gitlab
修改配置文件
在配置文件中,我们需要修改external_url(gitlab地址)、gitlab_rails(ssh端口)git_data_dirs(仓库默认位置) 这几个属性的配置,首先用vi编辑器打开gitlab默认配置文件;命令如下。
vim /etc/gitlab/gitlab.rb
打开配置文件后,按INSERT键开始编辑;根据需要修改gitlab地址、ssh端口以及仓库存储位置;修改完毕后,按ESC键结束编辑,并且输入“:wq”(不包含引号)保存。
{message type="error" content="注意:安装在宿主机时,gitlab的ssh端口号应当与宿主机ssh端口一致,否则可能会导致ssh地址无法推/拉代码。"/}
//设置HTTP地址和端口
external_url 'http://192.168.31.141:8888'
//设置SSH端口,尽量与服务器ssh端口一致
gitlab_rails['gitlab_shell_ssh_port'] = 22
//修改仓库默认存储地址(可选)
git_data_dirs({
"default" => {
"path" => "/data/git-data"
}
})
刷新配置文件
//刷新gitlab配置命令
gitlab-ctl reconfigure
重新刷新gitlab配置文件时间会比较长,需要耐心等待;出现下图即表示刷新成功。
启动gitlab
gitlab-ctl restart
其他设置
如果开启了系统防火墙、或者面板防火墙;则需要把gitlab的端口放行,例如本次操作gitlab开放了端口8888,则需要在防火墙放行这个端口;系统防火墙放行命令如下
//添加8888防火墙放行,--pemmanent表示永久生效,若不加--permanent系统下次启动后就会失效。
firewall-cmd --zone=public --add-port=8888/tcp --permanent
//重载防火墙生效
systemctl reload firewalld