在 Linux 上集成 GitLab,常见场景有几种,我按使用目的给你分别说明,你可以对号入座。如果你能补充一句「我想用 GitLab 做什么(代码托管 / CI/CD / 登录认证 / 与 Jenkins、K8s 集成等)」,我可以给你更精确的方案。
sudo apt update
sudo apt install -y curl openssh-server ca-certificates tzdata perl
curl -fsSL https://packages.gitlab.com/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/gitlab-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/gitlab-archive-keyring.gpg] https://packages.gitlab.com/gitlab/gitlab-ee/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gitlab_gitlab-ee.list
sudo apt update
sudo EXTERNAL_URL="http://gitlab.example.com" apt install gitlab-ee
sudo yum install -y curl policycoreutils openssh-server perl
curl -fsSL https://packages.gitlab.com/gpg.key | sudo gpg --dearmor -o /etc/pki/rpm-gpg/gitlab-archive-keyring.gpg
sudo yum install -y gitlab-ee
sudo gitlab-ctl reconfigure
访问:
http://服务器IP
首次登录:
rootsudo gitlab-rake "gitlab:password:reset[root]"
ssh-keygen -t ed25519 -C "your_email@example.com"
cat ~/.ssh/id_ed25519.pub
在 GitLab:
User → Preferences → SSH Keys → 粘贴公钥
测试:
ssh -T git@your-gitlab-server
sudo curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
sudo apt install gitlab-runner
sudo gitlab-runner register
需要:
.gitlab-ci.ymlstages:
- build
- test
build_job:
stage: build
script:
- echo "Building..."
- make
test_job:
stage: test
script:
- echo "Testing..."
sudo gitlab-ctl status
# /etc/gitlab/gitlab.rb
nginx['enable'] = false
docker run -d \
--name gitlab \
-p 443:443 -p 80:80 -p 22:22 \
-v gitlab-config:/etc/gitlab \
-v gitlab-logs:/var/log/gitlab \
-v gitlab-data:/var/opt/gitlab \
gitlab/gitlab-ee:latest
| 集成目标 | 说明 |
|---|---|
| Jenkins | GitLab Webhook → Jenkins |
| Kubernetes | GitLab Agent / CI 部署 |
| LDAP / AD | 统一登录 |
| Jira | Issue 关联 |
| Slack | 通知 |
| SonarQube | 代码质量 |
sudo gitlab-ctl status
sudo gitlab-ctl restart
sudo gitlab-ctl tail
备份:
sudo gitlab-backup create
你可以直接告诉我:
我可以给你一步一步精确到命令的安装 + 集成方案。