前言
主要内容
- GitLab社区版部署
- GitLab配置禁用创建组权限
- GitLab配置邮件(SMTP)
- GitLab常用命令说明
GitLab 介绍
GitLab 一个开源的 git 仓库管理平台,方便团队协作开发、管理。在 GitLab 上可以实现完整的 CI(持续集成)、CD(持续发布)流程。而且还提供了免费使用的Plan,以及免费的可以独立部署的社区版本 ,地址。
本篇环境信息
- 服务器信息
服务器名称:GitLab
操作系统:Centos 7
硬件配置:4C8G
说明:部署 GitLab 社区版 - 软件
工具 / 环境:GitLab
版本:社区版 14.4.2
准备工作
配置清华大学镜像仓库
- 新建仓库配置文件
使用 vim /etc/yum.repos.d/gitlab-ce.repo 命令,输入以下内容
[gitlab-ce] name=Gitlab CE Repository baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/ gpgcheck=0 enabled=1
- 更新 yum缓存
# 重新 yum 编译仓库缓存 $ sudo yum makecache # 建立元数据缓存 $ sudo yum install gitlab-ce
安装基础依赖
# 安装基础依赖 $ sudo yum -y install policycoreutils openssh-server openssh-clients postfix # 启动 ssh 服务 & 设置为开机启动 $ sudo systemctl enable sshd & sudo systemctl start sshd
安装 Postfix
Postfix 是一个邮件服务器,GitLab 发送邮件需要用到
# 安装 postfix $ sudo yum install -y postfix # 启动 postfix 并设置为开机启动 $ sudo systemctl enable postfix & sudo systemctl start postfix
开放 ssh 以及 http 服务(80 端口)
# 开放 ssh、http 服务 $ sudo firewall-cmd --add-service=ssh --permanent & sudo firewall-cmd --add-service=http --permanent # 重载防火墙规则 $ sudo firewall-cmd --reload
部署过程
本次我们部署的是社区版: gitlab-ce ,如果要部署商业版可以把关键字替换为:gitlab-ee
1、Yum安装GitLab
- 下载指定版本的 gitlab,可以在清华大学镜像站去选择:地址
$ wget http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.4.2-ce.0.el7.x86_64.rpm
- 安装 GitLab 社区版
$ rpm -i gitlab-ce-14.4.2-ce.0.el7.x86_64.rpm
安装成功后会看到 gitlab-ce 打印了以下图形
2、配置 GitLab站点 Url和端口号
GitLab 默认的配置文件路径是 /etc/gitlab/gitlab.rb
默认的站点 Url 配置项是:external_url 'http://gitlab.example.com
这里我将 GitLab 站点 Url 修改为 http://127.0.0.1:8000 也可以用域名代替 IP,这里根据自己需求来即可
# 修改配置文件 $ sudo vi /etc/gitlab/gitlab.rb # 配置首页地址(大约在第 15 行) $ external_url 'http://127.0.0.1:8000' # 开放端口号 $ firewall-cmd --zone=public --add-port=8000/tcp --permanent # 重启防火墙 $ systemctl restart firewalld # 查看是否成功 $ firewall-cmd --zone=public --query-port=8000/tcp
3、启动并访问GitLab
- 启动GitLab
# 重新配置并启动 $ sudo gitlab-ctl reconfigure # 完成后将会看到如下输出 Running handlers: Running handlers complete Chef Infra Client finished, 10/776 resources updated in 45 seconds gitlab Reconfigured! # 启动 gitlab $ gitlab-ctl restart # 查看启动详细信息 $ systemctl status gitlab-runsvdir.service
- 访问 GitLab
将设置的域名 DNS 解析到服务器 IP,或者修改本地 host 将域名指向服务器 IP。访问:
http://192.168.0.10:8000/users/sign_in进入首页,随后进行登录,管理员账号默认用户名是root。
初始化密码可以在 GitLab初始化文件查看
$ cat /etc/gitlab/initial_root_password # 复制 Password 后面的内容即可 Password: E EA7WZie9zJbMQ2gwISeVN/We9DBZmYsMFpbjzhYcc=
登录进来进入首页:
四、gitlab内存过高情况
cpu占用不高但是内存不高,一个gitlab内存占用过高
free -h
1、修改gitlab配置
vim /etc/gitlab/gitlab.rb
gitlab_rails[‘time_zone’] = ‘Asia/Shanghai’ //修改时间格式
puma[‘worker_processes’] = 1//可以将worker内存上限设置小一点
prometheus_monitoring[‘enable’] = false // 不启用普罗米修斯监控
postgresql[‘shared_buffers’] //减少数据库缓存(默认为256MB 我改为64MB了)
postgresql[‘max_worker_processes’] //减少数据库并发数(默认为8 我改为1了)
sidekiq[‘max-concurrency’] //减少sidekiq并发数,改为1
sidekiq[‘min-concurrency’] //减少sidekiq并发,改为1
2、邮件配置
配置邮箱可以让 GitLab 在发生相应事件的时候进行邮件通知
比如:找回密码、添加邮箱等
首先登录邮箱设置里面 开启服务
# 修改配置文件 $ sudo vi /etc/gitlab/gitlab.rb # 邮件配置 gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = 'smtp.163.com' gitlab_rails['smtp_port'] = 465 gitlab_rails['smtp_user_name'] = 'yourmail@163.com' gitlab_rails['smtp_password'] = '开启服务后给的授权码,不是邮箱登陆密码' gitlab_rails['smtp_domain'] = 'smtp.163.com' gitlab_rails['smtp_authentication'] = 'login' gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = true gitlab_rails['gitlab_email_enabled'] = true gitlab_rails['gitlab_email_from'] = 'yourmail@163.com' gitlab_rails['gitlab_email_display_name'] = 'Gitlab' # 保存后,重新配置并启动 GitLab $ sudo gitlab-ctl reconfigure
2、重启服务
gitlab-ctl reconfigure gitlab-ctl restart # 测试是否配置成功 sudo gitlab-rails console irb(main):001:0> Notify.test_email('xxxxxxx@qq.com', 'hello', 'bbbb').deliver_now
五、GitLab 常用配置
2、禁用创建组权限
GitLab 默认所有的注册用户都可以创建组。但对于团队来说,通常只会给 Leader 相关权限。
虽然可以在用户管理界面取消权限,但毕竟不方便。我们可以通过配置 GitLab 默认禁用创建组权限。
# 修改配置文件 $ sudo vi /etc/gitlab/gitlab.rb # 开启 gitlab_rails['gitlab_default_can_create_group'] 选项,并将值设置为 false ### GitLab user privileges $ gitlab_rails['gitlab_default_can_create_group'] = false # 保存后,重新配置并启动 GitLab $ sudo gitlab-ctl reconfigure
3、gitlab-ctl 常用命令介绍
命令 | 说明 |
---|---|
check-config | 检查在 gitlab 中是否有任何配置。在指定版本中删除的 rb |
deploy-page | 安装部署页面 |
diff-config | 将用户配置与包可用配置进行比较 |
remove-accounts | 删除所有用户和组 |
upgrade | 升级 |
service-list | 查看所有服务 |
once | 如果 GitLab 服务停止了就启动服务,如果已启动就不做任何操作 |
restart | 重启 GitLab 服务 |
start | 如果 GitLab 服务停止了就启动服务,如果已启动就重启服务 |
stop | 停止 GitLab 服务 |
status | 查看 GitLab 服务状态 |
reconfigure | reconfigure 重新配置 GitLab 并启动 |
六、参考
https://www.mobaijun.com/posts/4047318542.html
https://www.cnblogs.com/dzqdzq/p/9750126.html
文章评论