Gitlab提供了非常完整的Git托管服务。那现在我就根据我自己的经验,图文并茂地详细介绍一下如何搭建和配置Gitlab,以及在过程中可能会遇到的坑。
我们选择困难模式来讲解整个过程:
假如你使用的是一台Win10电脑,并且从没接触过虚拟机、Linux、Gitlab,那就可以按照下面的步骤一步步来配置。如果你熟悉其中部分过程或者拥有其中部分配置,可以选择性地跳过它们。
简单来说分为以下几个步骤:
- 开启虚拟机
- 安装ubuntu
- 安装Gitlab
- 配置Gitlab
开启虚拟机
在win8和win10上,我们建议使用系统自带的Hyper-V来安装镜像文件。
win10平台上,只有win10专业版才有Hyper-V功能,假如你的PC系统是win10家庭版,请升级到win10专业版,否则无法使用Hyper-V创建虚拟机。
启用Hyper-V组件
Hyper是默认关闭的,所以我们需要手动开启。
- 打开控制面板
- 程序和功能
- 启用或关闭Windows功能
- 找到Hyper-V,并勾选,确认
- 系统会自动安装Hyper-V,然后系统会要求重启使设置生效。
打开Hyper,会重启
在查找Hyper-V的时候,如果发现Hyhper-V为灰色,需要在BIOS中将支持虚拟机的选项Enable。
使用Hyper-V开启Ubuntu虚拟机
首先去ubuntu的官网下载操作系统:http://www.ubuntu-china.cn/download。
由于技术资料都具有时效性,如果你想用和本教程一样的版本,可以从这里下载ubuntu-16.04.3-amd64.iso
找到Hyper-V管理器,启动Hyper-V
在Hyper-V管理器面板上点击新建虚拟机
分配内存的个人经验:
- 使用i5,8G内存电脑,分配3G给虚拟机,会有点卡。
- 使用i7,16G内存电脑,分配5G给虚拟机,很流畅。
配置网络选择默认即可。或者也可以在Hyper-V管理器主面板上右侧的“虚拟交换机管理器”中新建一个网络。
找到刚刚下载的ubuntu镜像文件,准备进行安装虚拟机
点击完成之后,虚拟机安装完成。在Hyper-V管理面板上,出现了一个名为ubuntu的虚拟机。
安装ubuntu
在ubuntu上点击启动,此时虚拟机会加载ubuntu的ISO文件并引导启动。然后点击连接(或者双击左下角的小屏幕)。先选择语言,然后选择安装。
安装完成,系统会要求重新启动。
重启过程中,有些人可能会遇到下面的问题。解决方法是,把ubuntun关了重新启动即可。
重启之后,输入之前设置的登录密码,ubuntu就安装完成了。
Linux系统最实用的就是终端命令行了。在桌面CTRL+ALT+T就可以调出终端命令行,再次CTRL+ALT+T就可以打开另一个终端命令行。
安装Gitlab
终于到了我们的主题Gitlab了,如果你本身拥有一台Linux系统电脑(而且我们也建议在一台稳定的Linux上搭建Gitlab服务,而非windows虚拟机),那么可以直接从这里开始。
在ubuntu上安装Gitlab基本上都在终端中进行。有两个注意点:
- 输入命令的某些过程中会要求输入电脑密码,输入的密码是不会显示的,所以不要以为输入法坏了。
- Linux终端上的赋值粘贴是CTLR+SHIFT+C 和CTRL+SHIFT+V。CTRL+C的功能是中断操作,不要弄错。
安装依赖
sudo apt-get install curl openssh-server ca-certificates postfix
过程中应该会弹出对话框,如图选择。
下载安装Gitlab安装包(可选)
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce
这一步的作用是从网上来下载安装,根据经验网速一般很慢,而且容易发生下载安装失败的情况。
手动安装Gitlab安装包(建议)
可以从这里下载本教程使用的适用ubuntu64位版本的Gitlab安装程序。
gitlab-ce_7.10.5~omnibus-1_amd64.deb
下载完之后,终端定位到安装包所在文件目录。如果你是第一次使用Linux,不知道文件的目录是什么,可以右击文件查看属性:
定位到安装包所在文件目录之后,输入安装命令。
sudo dpkg -i gitlab-ce_7.10.5~omnibus-1_amd64.deb
最后在终端上如果看见了类似"It looks like GitLab has not been..."表示安装成功,不要被文字欺骗。
配置动Gitlab
分别输入下面4条命令,打开配置文件。
sudo mkdir -p /etc/gitlab
sudo touch /etc/gitlab/gitlab.rb
sudo chmod 600 /etc/gitlab/gitlab.rb
sudo gedit /etc/gitlab/gitlab.rb
找到external_ur,改成你Linux的本地IP地址,端口号建议9090,因为8080一般有时候会被tomcat占用,如果用了8080,稍后你打开网址的时候可能会报502错误。
如"http://172.21.162.14:9090"
再在下面找到ngix['listen_addresses']和ngix['listen_port'],分别改成和上面的一样。
如['172.21.162.14']和9090。
保存文件,然后关闭。
启动Gitlab,使配置生效
sudo gitlab-ctl reconfigure
在这一步过程中,可能会遇到一些问题。如果终端中发生这种错误:
Error executing action `run` on resource 'execute[initctl status gitlab-runsvdir]'
可以用以下方法来解决:在终端中依次输入下面4条命令。
ls -a /etc/init/gitlab-runsvdir.conf
sudo initctl status gitlab-runsvdir
sudo dpkg-divert --local --rename --add /sbin/initctl
sudo ln -s /bin/true /sbin/initctl
然后再次输入下面的命令,重新配置
sudo gitlab-ctl reconfigure
如果在这个过程中,卡在action run 无法继续下去,CTRL+ALT+T打开一个新的终端,输入下面的命令,原Gitlab重配置程序便会继续执行下去。
sudo /opt/gitlab/embedded/bin/runsvdir-start
配置完成,访问本地Gitlab网址
输入之前配置的external_ur,进入本地Gitlab首页。第一次登陆默认管理员密码和用户名:
- Username: root
- Password: 5iveL!fe