注意:本文原创。
前言
- 众所周知,Git是目前世界上最先进的分布式版本控制系统
- 而GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库
- 可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释
- 可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。
- 以下简单介绍CentOS 6 以及 CentOS 7 下安装 gitlab
- 安装方法大致参照官网,CentOS 6 与 CentOS 7 前置准备工作有些许不同
CentOS 6 安装 Gitlab
①:依次使用以下命令在系统防火墙里开启HTTP和SSH端口
sudo yum install -y curl openssh-server openssh-clients cronie
sudo lokkit -s http -s ssh
②:接下来安装Postfix发送电子邮件通知,如果要使用其他解决方案发送电子邮件,请跳过此步骤,并在安装Gitlab之后配置外部SMTP服务器(后面介绍配置其他邮件服务器)
sudo yum install postfix
sudo service postfix start
启动postfix时可能报错:
Job for postfix.service failed because the control process exited with error code. See "systemctl status postfix.service" and "journalctl -xe" for details.
解决办法,修改 /etc/postfix/main.cf的设置
inet_protocols = ipv4
inet_interfaces = all
sudo chkconfig postfix on
CentOS 7 安装 Gitlab
①:依次使用以下命令在系统防火墙里开启HTTP和SSH端口
sudo yum install -y curl policycoreutils openssh-server openssh-clients
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
执行以上firewall命令时可能会报错
FirewallD is not running
通过systemctl status firewalld查看firewalld状态,发现当前是dead状态,即防火墙未开启
通过systemctl start firewalld开启防火墙,没有任何提示即开启成功,再次通过systemctl status firewalld查看firewalld状态,显示running即已开启了
如果要关闭防火墙设置,可能通过systemctl stop firewalld这条指令来关闭该功能
sudo systemctl reload firewalld
②:接下来安装Postfix发送电子邮件通知,如果要使用其他解决方案发送电子邮件,请跳过此步骤,并在安装Gitlab之后配置外部SMTP服务器(后面介绍配置其他邮件服务器)
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
启动postfix时可能报错,解决办法与上面一致
准备安装gitlab
通过 rpm 包的方式安装gitlab,我安装的是9.0.5-ce版本 拷贝gitlab-ce-9.0.5-ce.0.el6.x86_64.rpm到服务器某目录 执行安装命令等待即可
rpm -i gitlab-ce-9.0.5-ce.0.el6.x86_64.rpm
安装完成,修改端口(gitlab默认端口8080,可能与tomcat冲突)
vi /etc/gitlab/gitlab.rb
修改 external_url 'http://*.*.*.*:8099' (修改成自己的IP地址)
修改 nginx['listen_port'] = 8099
保存退出
修改防火墙设置,开放8099端口
vi /etc/sysconfig/iptables
添加 -A INPUT -m state --state NEW -m tcp -p tcp --dport 8099 -j ACCEPT(注意此行添加在80端口后面)
重启防火墙
service iptables restart
重新加载 gitlab 配置文件
sudo gitlab-ctl reconfigure
执行以上命令有可能报错:
Error executing action `run` on resource 'ruby_block[directory resource: /var/opt/gitlab/git-data/repositories]'
解决办法:
sudo chmod 2770 /var/opt/gitlab/git-data/repositories
sudo gitlab-ctl restart 重启 gitlab
sudo gitlab-ctl status 查看 gitlab 状态
配置外部邮件服务器
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.ym.163.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "tsx@zhiduntech.com"
gitlab_rails['smtp_password'] = "tsxP@ssw0rd"
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['gitlab_email_from'] = 'tsx@zhiduntech.com'
user['git_user_name'] = "GitLab"
user['git_user_email'] = "tsx@zhiduntech.com"