Linux下GitLab集成实践指南
一 集成总览与选型
二 身份与单点登录集成
LDAP/AD集成(Omnibus示例)
gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
main:
label: 'LDAP'
host: 'ldap.example.com'
port: 389
uid: 'sAMAccountName'
bind_dn: 'CN=ldapuser,OU=IT,OU=People,DC=example,DC=com'
password: 'yourpassword'
encryption: 'plain' # 或 start_tls / tls
base: 'OU=People,DC=example,DC=com'
user_filter: 'memberOf=CN=gitlabuser,OU=Groups,OU=People,DC=example,DC=com'
allow_username_or_email_login: true
lowercase_usernames: true
block_auto_created_users: false
EOS
Kerberos集成(仅EE)
gitlab_rails['omniauth_allow_single_sign_on'] = ['kerberos']
gitlab_rails['kerberos_enabled'] = true
gitlab_rails['kerberos_keytab'] = "/etc/http.keytab"
# 如需兼容老版本Git的HTTP协商,启用专用端口
gitlab_rails['kerberos_use_dedicated_port'] = true
gitlab_rails['kerberos_port'] = 8443
gitlab_rails['kerberos_https'] = true
三 CI/CD与Runner集成
stages:
- build
- test
- deploy
build:
stage: build
script:
- mvn clean package
test:
stage: test
script:
- mvn test
deploy:
stage: deploy
script:
- scp target/*.jar user@server:/opt/app
only:
- master
四 生态联动与API
五 部署形态与网络要点
export GITLAB_HOME=/srv/gitlab
sudo docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --publish 22:22 --publish 8443:8443 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
--shm-size 256m \
registry.gitlab.cn/omnibus/gitlab-jh:latest