Gitlab当前版本16.8
,功能详解(中文)
Gitlab 15.11 Gitlab 15.10 Gitlab 15.5 Gitlab 15.4 Gitlab 15.3 Gitlab 15.2 Gitlab 15.1 Gitlab 15.0
Gitlab 14.10 Gitlab 14.9 Gitlab 14.8 Gitlab 14.7 Gitlab 14.6 Gitlab 14.5 Gitlab 14.4 Gitlab 14.2 Gitlab 14.1 Gitlab 14.0
Gitlab 13.12 Gitlab 13.11 Gitlab 13.10 Gitlab 13.9 Gitlab 13.8 Gitlab 13.7 Gitlab 13.6 Gitlab 13.5 Gitlab 13.4 Gitlab 13.3 Gitlab 13.2 Gitlab 13.1 Gitlab 13.0
Gitlab 12.10 Gitlab 12.9 Gitlab 12.8 Gitlab 12.7 Gitlab 12.6 Gitlab 12.5 Gitlab 12.4 Gitlab 12.3 Gitlab 12.2 Gitlab 12.1 Gitlab 12.0
Gitlab 11.11 Gitlab 11.10 Gitlab 11.9 Gitlab 11.8 Gitlab 11.7 Gitlab 11.6 Gitlab 11.5 Gitlab 11.4 Gitlab 11.3 Gitlab 11.2 Gitlab 11.1
Gitlab 官网 www.gitlab.com
Gitlab QQ交流群 208598995
Gitlab-runner文档
https://gitlab.com/gitlab-org/gitlab-runner/tree/master/docs
Security安全文档
https://gitlab.com/help/security/README.md
Gitlab安装国内镜像(清华)
https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/
只需要两步,官方说明的第一步实际上可以省略,如果后面发现有问题,在yum其他依赖包,其实上依赖包都安装了。
-
添加Gitlab yum源
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
-
yum安装
sudo EXTERNAL_URL="http://gitlab.xxoo" yum -y install gitlab-ce
-
首次访问 浏览器通过
如果虚拟域名比如 gitlab.xxoo,在你访问机器hosts增加一行
GitlabIP gitlab.xxoo
然后浏览器用gitlab.xxoo访问,用户用root,并且任意8个字符登陆,然后修改密码。
https://docs.gitlab.com/ce/install/installation.html
sudo docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
增加环境变量,比如external_url和lfs
sudo docker run --detach \
--hostname gitlab.example.com \
--env GITLAB_OMNIBUS_CONFIG="external_url 'http://my.domain.com/'; gitlab_rails['lfs_enabled'] = true;" \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
docker-compose安装
docker-compose.yml文件示例
web:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: 'gitlab.example.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://gitlab.example.com'
ports:
- '80:80'
- '443:443'
- '22:22'
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
详见:
https://docs.gitlab.com/omnibus/docker/
external_url 'http://git.YOUdomain'
gitlab_rails['gitlab_shell_ssh_port'] = 8888
nginx['listen_port'] = 5580
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "git@YOUdomian"
gitlab_rails['smtp_password'] = "YOUpasswd"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = 'gitYOUdomian'
说明:这就是几个需要自己配置的部分
第一个是external_url,那是显示在你gitlab页面链接那的url
第二,三分别是需要自定义的ssh和web端口
修改后重加载和重启服务(3.2)
升级之前请自做好完全备份!
目标版本 | 现有版本 | 推荐升级路径 | 注意事项 |
---|---|---|---|
13.2.0 | 11.5.0 | 11.5.0-> 11.11.8-> 12.0.12-> 12.10.6-> 13.0.0->13.1.0 | 需要四个中间版本:11.11、12.0和12.10及13.0 |
13.0.1 | 11.10.8 | 11.10.5-> 11.11.8-> 12.0.12-> 12.10.6->13.0.1 | 三个中间版本:11.11,12.0和12.10 |
12.10.6 | 11.3.4 | 11.3.4-> 11.11.8-> 12.0.12->12.10.6 | 两个中间版本:11.11和12.0 |
12.9.5 | 10.4.5 | 10.4.5-> 10.8.7-> 11.11.8-> 12.0.12->12.9.5 | 三个中间版本:10.8,11.11,12.0,然后12.9.5 |
12.2.5 | 9.2.6 | 9.2.6-> 9.5.10-> 10.8.7-> 11.11.8-> 12.0.12->12.2.5 | 四个中间版本:9.5,10.8,11.11,12.0,然后12.2 |
11.3.4 | 8.13.4 | 8.13.4-> 8.17.7-> 9.5.10-> 10.8.7->11.3.4 | 8.17.7是8系列的最新版本, 9.5.10是9系列 的最新版本,10.8.7是10系列的最新版本。 |
8.12之的版本升级 | 8.11.x及更老版本 | 8.11.x->8.12.0->8.17.7 | 8.11.x和更早的版本:必须先升级到8.12.0然后才能升级到8.17.7。 |
gitlab-ctl reconfigure
gitlab-ctl restart
注意gitlab任何配置都在主配置/etc/gitlab/gitlab.rb
里面修改
修改好gitlab-ctl reconfig 会自动生成各个部分的配置,不要单独去改其他部分的配置, 比如为了修改web端口去修改nginx配置,那都是错误的方法,很多blog都是那样配的, 那是完全错误的方法。reconfig就会丢掉。
1.启动rails console
gitlab-rails console production
2、依次输入执行以下操作
user = User.where(id: 1).first
user.password="你的密码"
user.save!
quit
https://docs.gitlab.com/omnibus/settings/ssl.html
https://docs.gitlab.com/omnibus/settings/nginx.html#manually-configuring-https
https://docs.gitlab.com/runner/configuration/tls-self-signed.html
https问题排查,见本地实例帮助文档:
/help/administration/troubleshooting/ssl.md
Gitlab代码数据默认目录:/var/opt/gitlab/git-data/repositories
数据目录,挂一个大磁盘到目录[目录按照你的喜好命名]
makedir -p /data/gitlab-data
mount sdb data/gitlab-data
-
停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq -
数据迁移
cp -r -p /var/opt/gitlab/git-data/repositories/ /home/gitlab-data/
这里CP一定要加上-p参数,不然会导致权限问题
-
更改配置 /etc/gitlab/gitlab.rb
vim /etc/gitlab/gitlab.rb
-
指定数据目录
git_data_dir "/home/gitlab-data"
-
使配置生效
gitlab-ctl reconfigure
-
重启gitlab
gitlab-ctl restart
如果内存较小,服务器硬件资源太小(4G+4G交换分区以下)
则服务启动过程较慢,在此期间启动则会导致502,等一段时间,服务启动后,再访问就ok了
原因:由于puma
或unicorn
(gitlab 13.x以下)默认使用的是 8080 端口。
解决办法:打开 /etc/gitlab/gitlab.rb
,去掉 # unicorn['port'] = 8080
的注释,
修改为:
puma['port'] = 8080
13.0以前版本:
unicorn['port'] = 8080
保存后
运行 sudo gitlab-ctl reconfigure 即可。
由于Gitlab 13.0以后,gitlab默认的应用服务器由unicorn
替换成了puma
如果在gitlab.rb配置文件手动设置过unicorn配置项时候会导致应用服务器(unicorn)起不来
会导致 502。
注释掉相关unicorn配置,或者unicorn配置项替换为puma。 然后,重新生成配置,重新启动gitlab即可。
gitlab-ctl reconfig
gitlab-ctl restart
- ssh -T git@IP测试,测试成功说明证书添加成功。
比如测试github: ssh -T [email protected]
Hi bollwarm! You've successfully authenticated, but GitHub does not provide shell access.
注意测试建实例时候吧[email protected]换成git@XXX
,XXX为你自己实例服务器的IP地址或者域名。
如果有问题,则你证书生成或者添加有问题。你可以ssh -vv -T git@IP
来看详细ssh通讯过程和报错,找出问题。
主要问题keys生成不对;
文件权限问题(linux下证书权限必须为600,如果是从其他地方复制来的需要注意);
添加公钥时候添加不是用户账号下证书,而是部署证书(部署证书没有push权限)。
-
确保你项目目录下.git/config 文件中远程仓的URL链接是SSH链接:git或者ssh开头,而不是http/https开头。
-
https认证时候可以直接在配置url上配上用户名和密码,这样不用每次操作都输入用户名和密码,格式如下:
更多信息欢迎Pull Request
Gitlab QQ交流群 208598995
,交流
本repo会持续更新