目录
前言
许多技术公司代码是公司的重要资产,公司为了源代码不泄密,一般会要求代码放在公司的私有服务器上进行版本管理,这时你就不能放在GitHub或者Gitee上了,只能在公司私有服务器上搭建git服务器,对于小于100人的IT技术团队,推荐使用gitlab社区免费版,大于100人团队或者需要其它增强功能,建议使用gitlab收费版本。
本文以Ubuntu18.04为例,其它Linux发行版系统可以自行百度查找安装方法,但是后续配置步骤是一样的。
一、gitlab安装
1.安装gitlab依赖的库和工具
sudo apt install net-tools
sudo apt-get install curl openssh-server ca-certificates postfix
2.添加gitlab的包并进行安装
方法一:
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh |sudo bash
sudo apt-get install gitlab-ce
方法二:
wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/xenial/gitlab-ce_12.1.4-ce.0_amd64.deb/download.deb
使用dpkg安装deb包,第二种方法也是我推荐的。
dpkg -i gitlab-ce_12.1.4-ce.0_amd64.deb
如果要下载最新版本的gitlab安装包,可以去官网下载。
安装成功会显示
二、配置gitlab
1.修改gitlab.rb文件
sudo vim /etc/gitlab/gitlab.rb
找到配置服务ip地址和端口的位置,修改成自己的服务器地址和端口号。
配置邮箱,填写自己的邮箱地址
2.gitlab服务器操作命令
sudo gitlab-ctl stop //--停止服务
sudo gitlab-ctl reconfigure //--启动服务
sudo gitlab-ctl restart //--重启所有gitlab组件
sudo gitlab-ctl start //--启动所有gitlab组件
3.修改root用户的登录密码
1)切换到相应路径下
cd /opt/gitlab/bin/
2)打开控制台
sudo gitlab-rails console -e production
3)查询用户账号信息并赋值给u
u=User.where(id:1).first
4)设置该用户名的密码
u.password=xxxx
5)确认密码
u.password_confirmation=xxxx
6)保存信息
u.save!
root用户密码设置成功会显示true。
有些版本设置密码可以直接输入数字123456,有些版本是输入字符串“123456”。
4.启动gitlab服务
每次修改/etc/gitlab/gitlab.re文件之后,要执行sudo gitlab-ctl reconfigure 重新加载配置,然后执行sudo gitlab-ctl restart 重启所有的组件。
启用 Gitlab开机自启动 :systemctl enable gitlab-runsvdir.service
禁止 Gitlab 开机自启动:systemctl disable gitlab-runsvdir.service
三、浏览器登录
在浏览器地址栏输入刚配置gitlab服务器ip地址及端口号,即可登录进入登录界面
例如我的gitlab服务与端口:192.168.1.100:8081
进入登录页面后,输入root,密码就是你刚才设置的密码,顺利的话,直到此gitlab服务器搭建成功,如果不顺利有问题请看第四章
四、问题
如果是Ubuntu作为gitlab服务系统一般在配置上述三步骤正常使用。如果是CentOS 可能涉及到端口号需要开放。
1.访问网页502问题
在浏览器输入gitlab服务器地址与端口号,出现502不能访问情况,一般是权限问题,执行以下命令开放权限。
chmod -R 755 /var/log/gitlab
2.访问网页无反应问题
如果在浏览器输入gitlab服务器地址与端口号没反应,显示无法访问,可能是端口号没开放
第一步:确保防火墙启动,gitlab服务自身端口号开放
查看防火墙状态命令:
systemctl status firewalld
若结果显示“Active: inactive (dead)”,则需要启动防火墙
重启防火墙命令:systemctl start firewalld
若结果显示“Active: active (running)”,则可以运行下面的命令:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
若结果都显示“success”,则说明防火墙启动成功。
把gitlab服务端口开放,执行以下命令
firewall-cmd --zone=public --add-port=80/tcp --permanent
ps:此处的80端口修改成自己配置的gitlab服务器端口号,若结果显示“success”,则说明GitLab的端口号成功放开。
重新执行加载和启动gitlab命令
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
若结果显示“ok: run”,则说明配置文件修改完成
第二步:配置iptable设置端口号开放
命令:cd /etc/sysconfig
ls -la
结果显示“ip6tables-config”和“iptables-config”,但是没有查看到iptables文件,需要安装iptables-services
安装iptable-service:
yum install iptables-services,
启动iptables:
systemctl enable iptables 使能iptable
systemctl start iptables 启动iptable
在iptables中配置开放GitLab的端口号
命令:sudo vim /etc/sysconfig/iptables 在文件中添加
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
ps:此处的80端口修改成自己配置的gitlab服务器端口号。
重启防火墙:
service iptables restart
重新在浏览器中输入gitlab的服务器地址和端口号访问,如果界面还是显示无反应,请重启系统,执行reboot。