1. 环境准备与系统调优
在CentOS 7上部署GitLab,第一步不是急着下载安装包,而是要把地基打牢。很多朋友一上来就执行安装命令,结果后面遇到各种性能问题、端口冲突,甚至因为系统依赖缺失导致安装失败。我踩过几次坑之后,总结了一套企业级环境下的“热身”流程,这能让后续的部署和运行稳定得多。
首先,我们需要确保系统是最新的。虽然CentOS 7已经比较成熟,但基础软件包的更新能解决很多潜在的兼容性问题。执行 yum update -y 来更新所有包。这里有个小经验,对于生产服务器,我通常不会一股脑地更新所有内核,而是选择只更新软件包,避免内核变动带来意外重启风险。更新完成后,建议重启一次服务器,确保所有更新生效,系统处于一个干净的状态。
接下来是安装GitLab所必需的依赖包。原始文章里提到了几个核心包,但对于企业级部署,这远远不够。我通常会安装一个更全面的集合,特别是那些与系统服务、安全审计和性能监控相关的工具。你可以执行下面这条命令:
yum install -y curl policycoreutils-python openssh-server openssh-clients postfix cronie perl wget vim-enhanced net-tools htop
我来解释一下这几个额外包的作用。postfix 是邮件服务器,GitLab发送通知邮件(比如重置密码、合并请求)全靠它,虽然你可以配置外部SMTP,但本地有一个postfix作为备用或测试非常方便。cronie 是Cron守护进程,GitLab的备份、仓库维护等后台任务依赖它。vim-enhanced 和 net-tools 是管理员的利器,方便你编辑配置和排查网络问题。htop 则是一个比 top 更直观的系统监控工具,在后续性能调优时,你能实时看到CPU和内存的使用情况,非常直观。
安全方面,我们需要配置防火墙和SELinux。很多团队为了省事直接关闭防火墙和SELinux,这在企业内网测试环境或许可以,但对于任何有安全要求的场景,这都是不推荐的。正确的做法是配置它们,让它们为你的服务保驾护航。对于防火墙,我们先把后续GitLab要用的HTTP/HTTPS和SSH端口放行(假设我们计划用9999端口,SSH用22端口):
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-port=9999/tcp
firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --reload
SELinux的配置稍微复杂一点。GitLab的Omnibus包其实已经很好地处理了大部分SELinux上下文,但如果你计划将数据目录(比如仓库数据)存放在非默认路径(如 /home/gitlab-data),就需要手动打上正确的标签。我们可以先安装SELinux管理工具:yum install -y policycoreutils-python。如果后续在安装或运行时遇到权限问题,可以使用 ls -Z 查看目录的上下文,并用 semanage fcontext 和 restorecon 来修正。一个更稳妥的办法是,在安装GitLab并完成基础配置后,将SELinux模式设置为 permissive 观察日志,确认没有大量拒绝记录后,再切回 enforcing。这比直接禁用要安全得多。
最后,别忘了检查系统资源。GitLab是个“资源大户”,尤其是内存。官方建议至少4GB的RAM。在实战中,如果用户数超过50,或者仓库数量庞大,8GB内存是起步价。你可以用 free -h 查看可用内存。另外,确保 /var/opt/gitlab(默认安装和数据目录)所在的分区有充足的磁盘空间,几十GB是必要的,因为代码仓库、备份和日志都会占用大量空间。做好这些准备,你的GitLab之旅就有了一个坚实可靠的开端。
2. GitLab安装包的选择与部署
安装包的选择看似简单,其实暗藏


1555

被折叠的 条评论
为什么被折叠?



