最近公司要使用gitlab做配置管理,就顺手把安装步骤做个记录。
一开始想安装社区版,但是安装成了企业版。看了官方文档,发现企业版不买license的话可以直接当社区版使用,功能是一样的,想买license的时候还可以一键使用,也就是官方更推荐企业版,那就企业版喽。
CE版和EE版区别,参考文档:https://about.gitlab.com/install/ce-or-ee/?distro=centos-7
环境准备:一台CentOS7系统的虚拟机,需联网。
官方安装文档:https://about.gitlab.com/install/#centos-7
1. Install and configure the necessary dependencies
sudo yum install -y curl policycoreutils-python openssh-server sudo systemctl enable sshd sudo systemctl start sshd sudo firewall-cmd --permanent --add-service=http sudo systemctl reload firewalld sudo yum install postfix sudo systemctl enable postfix sudo systemctl start postfix
由于是一台刚安装好的机器,一开始就遇到了问题,“Could not resolve host: mirrorlist.centos.org”,这个一般是DNS网络配置问题,很好解决
vi /etc/resolv.conf
在这个文件中添加
nameserver 8.8.8.8 nameserver 202.106.0.20
重启网络服务
/etc/init.d/network restart
看到一串 [ ok ] ,就是执行成功,可以重新尝试了。
2. Add the GitLab package repository and install the package
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ee
这里执行时间会长一些。http://gitlab.example.com要换成你自己的IP,如果忘记换掉,可以通过下面方法修改:
vi /etc/gitlab/gitlab.rb
在这个文件中找到如下内容,修改url
external_url "http://gitlab.example.com"
修改后,执行下面命令使变更生效:
sudo gitlab-ctl reconfigure
浏览器中打开http://myIP,页面显示502
找原因,看到有篇说可能是端口占用了,先找下是哪个端口:
vi /etc/gitlab/gitlab.rb 查看 unicorn['port'] = 8080
查看端口占用情况,发现lsof没装,安装下,再检查:
yum install lsof
lsof -i:8080
该端口未被占用,继续查找原因,看到有人说可能是空间太小,要做swap分区,照着做了,仍是502。
然后想着也许是内存问题,毕竟登录机器已经慢得像蜗牛了,于是扩了内存,从1G扩到2G,问题终于解决了。
至此,gitlab搭建完成,接下来就是使用啦~~~
3. gitlab启停
sudo gitlab-ctl start sudo gitlab-ctl stop sudo gitlab-ctl restart
4. 修改repositories路径
创建repositories路径,并修改权限和属组
cd /gitData mkdir /git-data chown -R git.git git-data
修改gitlab配置文件 /etc/gitlab/gitlab.rb,参考文档:https://docs.gitlab.com/ee/administration/repository_storage_paths.html
git_data_dirs({ "default" => { "path" => "/gitData/git-data" } })
这里要注意,修改这个配置的时候,要把这几行前面的注释和多余的空格都去掉,血泪教训啊`(*>﹏<*)′
sudo gitlab-ctl reconfigure
修改完后,重新加载下配置,/gitData/git-data路径下出现repositories,说明成功了。
然后通过页面创建一个project,新路径下出现了该项目文件,ok,大功告成!