下面是在CentOS7上搭建本地GitLab服务器的完整攻略:
1. 安装必要的软件
在开始安装GitLab之前,我们需要先安装一些必要的软件,包括curl、openssh-server、openssh-clients、postfix等。在终端中执行以下命令:
sudo yum install curl openssh-server openssh-clients postfix
安装完成后,需要将Postfix服务设置为开机自启动以及启动该服务:
sudo systemctl enable postfix
sudo systemctl start postfix
接着,我们还需要安装EPOL和YUM工具:
sudo yum install epel-release
sudo yum install yum-utils
2. 安装GitLab
下载并安装GitLab所需的RPM包:
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
sudo EXTERNAL_URL="http://your-gitlab-domain.com" yum install -y gitlab-ee
其中EXTERNAL_URL指的是你的GitLab服务器的域名或IP地址,类似于http://192.168.1.100 或 http://git.example.com。注意,如果你使用的是https,需要将其替换为https的地址。
此外,在安装过程中,可能需要等待一段时间来下载安装包和完成配置。
3. 配置GitLab
安装完成后,我们需要修改GitLab配置文件以便其能够正常工作。编辑配置文件:
sudo vim /etc/gitlab/gitlab.rb
将external_url设置为你的GitLab服务器域名或IP:
external_url 'http://your-gitlab-domain.com'
如果你使用的是https,需要将其替换为https的地址。
除此之外,还需要配置SMTP,以方便GitLab能够发送邮件通知:
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.server"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "smtp@example.com"
gitlab_rails['smtp_password'] = "your-password"
gitlab_rails['smtp_domain'] = "example.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
以上配置将GitLab的SMTP设置为使用465端口的SSL,需要填写你的发件邮箱、密码和域名。
配置完成后,需重新加载配置文件:
sudo gitlab-ctl reconfigure
4. 配置防火墙
GitLab服务器需要开放80、443和22端口以便外部网络访问。在终端中依次执行以下命令:
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
sudo firewall-cmd --permanent --zone=public --add-port=443/tcp
sudo firewall-cmd --permanent --zone=public --add-port=22/tcp
sudo firewall-cmd --reload
5. 运行GitLab
安装完成后,我们需要以管理员身份运行GitLab,并登录GitLab管理后台以完成进一步的配置。
sudo gitlab-ctl start
现在,你就可以在浏览器中输入http://your-gitlab-domain.com 访问GitLab服务器了。
注意:第一次登录GitLab时,需要使用默认管理员账户root,密码为5iveL!fe,登录后请及时修改密码,并创建新的用户。
示例
示例1:在本地搭建GitLab服务器,使其在内网中可以被访问。
假设我们的GitLab服务器IP地址为192.168.1.100,我们需要在内网中访问该服务器,可以按照以下步骤操作:
- 在GitLab服务器上运行
sudo systemctl stop firewalld
命令,关闭防火墙; - 在GitLab服务器上运行
sudo gitlab-ctl stop unicorn
,停止GitLab服务; - 在GitLab服务器上运行
sudo vim /etc/gitlab/gitlab.rb
,将external_url设置为服务器IP地址,保存并退出; - 在GitLab服务器上运行
sudo gitlab-ctl reconfigure
命令,重新加载配置文件; - 在GitLab服务器上运行
sudo gitlab-ctl start
命令,重新启动GitLab服务; - 在浏览器中输入http://192.168.1.100访问GitLab服务器。
示例2:配置GitLab使用第三方SMTP服务器发送邮件通知
假设我们的SMTP服务器为smtp.example.com,邮箱为user@example.com,密码为password,且使用SSL连接,则可以按照以下步骤配置GitLab:
- 在GitLab服务器上运行
sudo vim /etc/gitlab/gitlab.rb
,将以下SMTP配置添加到配置文件中:
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.example.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "user@example.com"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_domain'] = "example.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
- 在GitLab服务器上运行
sudo gitlab-ctl reconfigure
命令,重新加载配置文件。
配置完成后,GitLab将能够使用SMTP服务器发送邮件通知。