
Gitlab Debian12安装记录
1. 安装和配置所需的依赖
apt-get update
apt-get install -y curl openssh-server ca-certificates tzdata perl
(可选)如果要使用 Postfix 来发送电子邮件通知,执行以下安装命令。
apt-get install -y postfix
如果您想使用其他解决方案发送电子邮件,请跳过上面 Postfix 安装步骤并在安装极狐GitLab 后配置外部 SMTP 服务器。
2. 下载并安装极狐GitLab
执行以下命令配置极狐GitLab 软件源镜像。
# 中国特供版,建议安装全球版
curl -L get.gitlab.cn | bash
# 开源社区版
curl "https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh" | sudo bash
EXTERNAL_URL="https://gitlab.example.com" apt install gitlab-ce
接下来,安装极狐GitLab。安装之前,需要确保您的DNS设置正确。此外,还需要通过设置 EXTERNAL_URL
环境变量来指定极狐GitLab 实例的 URL。
如果您想通过 HTTPS
来访问实例,那么您可以根据官方文档进行配置,让实例使用 Let's Encrypt 自动请求 SSL 证书,这需要有效的主机名和入站 HTTP 访问。您也可以使用自己的证书或仅使用 http://
(不带 s
)。
如果您想为初始管理员用户( root
)指定自定义的初始密码,可以根据文档指导进行配置。否则将默认生成随机密码。
接下来执行如下命令开始安装:
apt-get install -y gitlab-jh
其他配置详情可以查看 Omnibus 安装配置文档。
注意,注意,注意:
疑难问题 1
默认情况下puma
同样监听8080
端口,会和nginx的8080端口重复,建议改成8081端口。查询/etc/gitlab/gitlab.rb
中相应的设置
# external_url 'http://gitlab.example.com'
external_url 'https://192.168.100.100:1010'
# 修改unicorn 重复端口
puma['port'] = 8081
疑难问题 2
有时会卡在runsvdir-start
,只需在再开个命令行手动启动下:
/opt/gitlab/embedded/bin/runsvdir-start &
疑难问题 3
Gitlab not accesible after Upgrade to 14.9.1, most probably letsencrypt problem
# 配置它引发的问题 nginx['custom_gitlab_server_config'] 被创建了两次
letsencrypt['enable'] = false
# 将此行代码移除或注释掉
nginx['custom_gitlab_server_config'] = "location /.well-known/acme-challenge/ {\n root /var/opt/gitlab/nginx/www/; \n}\n"
疑难问题 4
gitlab runsv not running
systemctl start gitlab-runsvdir.service
3. 登录极狐GitLab 实例
使用第二步 EXTERNAL_URL
中配置的地址来访问安装成功的极狐GitLab 实例。用户名默认为 root
。如果在安装过程中指定了初始密码,则用初始密码登录,如果未指定密码,则系统会随机生成一个密码并存储在 /etc/gitlab/initial_root_password
文件中, 查看随机密码并使用 root
用户名登录。
注意:出于安全原因,24 小时后,/etc/gitlab/initial_root_password
会被第一次 gitlab-ctl reconfigure
自动删除,因此若使用随机密码登录,建议安装成功初始登录成功之后,立即修改初始密码。
4. 启用https,frpc反向代理
修改文件/etc/gitlab/gitlab.rb
:
# 域名使用https
external_url 'https://192.168.100.100:1010'
# 取消自动生成ssl证书
letsencrypt['enable'] = false
# 配置ssh clone地址
gitlab_rails['gitlab_ssh_host'] = 'ssh.mhter.com'
# 配置smtp账户
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "mhter@foxmail.com"
# 使用授权的token,不是密码
gitlab_rails['smtp_password'] = "**********"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
# gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = 'mhter@foxmail.com'
gitlab_rails['gitlab_email_from'] = 'notification@mhter.com'
# 限制内存和线程占用
puma['worker_processes'] = 2
puma['min_threads'] = 4
puma['max_threads'] = 4
# 修改备份地址
gitlab_rails['backup_path'] = "/vol1/1000/Data/Parse/Gitlab"
直接使用frpc映射配置地址: 1010
5. Gitlab CI/CD 配置(持续部署)
教学视频https://www.bilibili.com/video/BV18z421e7pL
卸载gitlab-runner
!/bin/bash
# 卸载gitlab-runner
# 停止服务
gitlab-runner stop
# 取消随机启动
chkconfig gitlab-runner off
# 卸载服务
gitlab-runner uninstall
# 清理文件
rm -rf /etc/gitlab-runner
rm -rf /usr/local/bin/gitlab-runner
rm -rf /usr/bin/gitlab-runner
rm -rf /etc/sudoers.d/gitlab-runner
# 删除用户
userdel -r gitlab-runner
6.备份与恢复
gitlab-backup create
gitlab-backup restore
7. 卸载gitlab
Debian Linux完全卸载gitlab-ce
在Debian上本地安装了gitlab-ce,维护起来比较麻烦,而且占用了80和443端口
后面想改用docker,就想完全卸载gitlab-ce
卸载服务
sudo gitlab-ctl uninstall
清理所有产生的数据,会提示等待60秒,如果想反悔,可以按Ctrl+C
sudo gitlab-ctl cleanse
需要等待60秒
*******************************************************************
* * * * * * * * * * * STOP AND READ * * * * * * * * * *
*******************************************************************
This command will delete all local configuration, log, and
variable data associated with gitlab.
You have 60 seconds to hit CTRL-C before configuration,
logs, and local data for this application are permanently
deleted.
*******************************************************************
移除所有账户
sudo gitlab-ctl remove-accounts
卸载软件
sudo apt purge gitlab-ce
会有警告
dpkg: 警告: 卸载 gitlab-ce 时,目录 /opt/gitlab/sv 非空,因而不会删除该目录
dpkg: 警告: 卸载 gitlab-ce 时,目录 /opt/gitlab/init 非空,因而不会删除该目录
dpkg: 警告: 卸载 gitlab-ce 时,目录 /opt/gitlab/etc 非空,因而不会删除该目录
dpkg: 警告: 卸载 gitlab-ce 时,目录 /opt/gitlab/embedded/ssl/certs 非空,因而不会删除该目录
dpkg: 警告: 卸载 gitlab-ce 时,目录 /opt/gitlab/embedded/service/gitlab-shell 非空,因而不会删除该目录
dpkg: 警告: 卸载 gitlab-ce 时,目录 /opt/gitlab/embedded/service/gitlab-rails/public 非空,因而不会删除该目录
dpkg: 警告: 卸载 gitlab-ce 时,目录 /opt/gitlab/embedded/service/gitlab-rails/config 非空,因而不会删除该目录
dpkg: 警告: 卸载 gitlab-ce 时,目录 /opt/gitlab/embedded/cookbooks 非空,因而不会删除该目录
dpkg: 警告: 卸载 gitlab-ce 时,目录 /opt/gitlab/embedded/bin 非空,因而不会删除该目录
手动删除/opt/gitlab,如果提示权限不足,记得su切换到root用户,这个目录保存着gitlab的主要数据
su
cd /opt
rm -fr gitlab
检查/var/opt/gitlab,这个目录保存着gitlab的配置,如果有就删掉
检查/etc/gitlab,这个目录保存gitlab服务信息
检查/var/log/gitlab,这个目录保存日志文件
上面这些目录,如果有就删掉,没有就无所谓