在CentOS7上搭建本地GitLab服务器

  • Post category:Linux

下面是在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,我们需要在内网中访问该服务器,可以按照以下步骤操作:

  1. 在GitLab服务器上运行sudo systemctl stop firewalld命令,关闭防火墙;
  2. 在GitLab服务器上运行sudo gitlab-ctl stop unicorn,停止GitLab服务;
  3. 在GitLab服务器上运行sudo vim /etc/gitlab/gitlab.rb,将external_url设置为服务器IP地址,保存并退出;
  4. 在GitLab服务器上运行sudo gitlab-ctl reconfigure命令,重新加载配置文件;
  5. 在GitLab服务器上运行sudo gitlab-ctl start命令,重新启动GitLab服务;
  6. 在浏览器中输入http://192.168.1.100访问GitLab服务器。

示例2:配置GitLab使用第三方SMTP服务器发送邮件通知

假设我们的SMTP服务器为smtp.example.com,邮箱为user@example.com,密码为password,且使用SSL连接,则可以按照以下步骤配置GitLab:

  1. 在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'

  1. 在GitLab服务器上运行sudo gitlab-ctl reconfigure命令,重新加载配置文件。

配置完成后,GitLab将能够使用SMTP服务器发送邮件通知。