在CentOS上部署GitLab是一个相对复杂的过程,但遵循最佳实践可以确保其稳定性和安全性。以下是一个详细的步骤指南:
更新系统:
sudo yum update -y
安装依赖项:
sudo yum install -y curl policycoreutils openssh-server openssh-clients postfix
安装数据库(推荐使用PostgreSQL或MySQL):
PostgreSQL:
sudo yum install -y postgresql-server postgresql
sudo systemctl start postgresql
sudo systemctl enable postgresql
sudo -u postgres psql
CREATE DATABASE gitlab;
CREATE USER gitlab WITH PASSWORD 'gitlab';
GRANT ALL PRIVILEGES ON DATABASE gitlab TO gitlab;
\q
MySQL:
sudo yum install -y mariadb-server mariadb
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo mysql_secure_installation
配置邮件服务器(如需要):
sudo yum install -y postfix
sudo systemctl enable postfix
sudo systemctl start postfix
添加GitLab仓库:
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
安装GitLab:
sudo EXTERNAL_URL="http://your-gitlab-domain.com" yum install -y gitlab-ce
配置文件:
sudo vi /etc/gitlab/gitlab.rb
external_url
为你的公网IP地址或域名。gitlab_rails['db_host'] = "localhost"
gitlab_rails['db_user'] = "gitlab"
gitlab_rails['db_password'] = "gitlab"
gitlab_rails['db_name'] = "gitlab"
重新配置并启动GitLab:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
配置防火墙:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
配置SSH访问:
ssh-keygen -t rsa -C "your_email@example.com"
cat ~/.ssh/id_rsa.pub | ssh gitlab "sudo gitlab-rails 'create_user'"
如果你希望简化安装过程,可以使用Docker:
安装Docker和Docker Compose:
sudo yum install -y docker
sudo yum install -y docker-compose
sudo systemctl start docker
sudo systemctl enable docker
创建docker-compose.yml
文件:
version: '3'
services:
web:
image: gitlab/gitlab-ce:latest
restart: always
hostname: your-gitlab-domain.com
environment:
GITLAB_OMNIBUS_CONFIG: external_url 'http://your-gitlab-domain.com'
ports:
- "80:80"
- "443:443"
- "22:22"
volumes:
- /var/opt/gitlab:/var/opt/gitlab
- /var/log/gitlab:/var/log/gitlab
- /etc/gitlab:/etc/gitlab
shm-size: 256m
启动GitLab:
docker-compose up -d
利用GitLab的CI/CD功能,编写.gitlab-ci.yml
文件来自动化构建、测试和部署流程,提升开发效率和代码质量。
通过以上步骤,你可以在CentOS上成功部署并配置GitLab,确保其稳定性和安全性。如果有任何问题,可以参考GitLab的官方文档或寻求社区帮助。