gitlab

gitlab程序:

文件目录:

  • /etc/gitlab 配置文件目录
  • /run/gitlab 运行 pid 目录
  • /opt/gitlab 安装目录
  • /var/opt/gitlab 数据目录
  • /var/log/gitlab 日志目录

命令行工具

gitlab-rails:

用于于启动控制台进行特殊操作,比如修改管理员密码、打开数据库控制台等

gitlab-rails 命令

generate,g 	生成新代码
console,c    启动Rails控制台
server,s      	启动Rails服务
test,t        	
test:system 	
dbconsole,db   启动数据库控制台,配置文件在:config/database.yml
new
gitlab-psql:

数据库命令行

gitlab-psql

\copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
gitlab-rake

数据备份恢复等数据操作

create		 #备份git、sql,等同执行gitlab-rake gitlab:backup:create
gitlab-ctl:

客户端命令行操作行

gitlab-ctl 命令

stop 		#停止 gitlab
	puma
	sidekiq
start		 #启动 gitlab
restar 		#重启 gitlab
status		 #查看组件运行状态
tail nginx 		#查看某个组件的日志
reconfigure		#重载配置
backup-etc 		#备份配置文件
	--backup-path 路径
gitlab数据备份恢复:

需要先禁止向gitlab服务器写入数据的进程
配置项可选修改:

gitlab_rails['backup_path'] = '/mnt/backups' #备份路径

1)停服务

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

2)备份

gitlab-rake gitlab:backup:create
gitlab-rake backup-etc --backup-path /data/gitlab-etc
cd /var/opt/gitlab/backups/		#备份文件自动存在此目录

3)启动服务

gitlab-ctl start unicorn
gitlab-ctl start sidekiq

4)恢复数据
在web界面删除文件,模拟故障

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

#BACKUP=备份文名(只需要数字,无需字符串)
gitlab-rake gitlab:backup:restore BACKUP=1640009303_2021_12_20_12.8.5

5)启动服务

gitlab-ctl start unicorn
gitlab-ctl start sidekiq

gitlab优化

由于现在gitlab的体量非常大,默认安装时,将所有功能都开启了,按官方文档推荐的最小配置绝对卡成翔,会频繁oom,所以可根据配置自行调整,只保留作为代码仓库核心作用

配置相关

gitlab_rails['time_zone'] = 'Asia/Shanghai'
# 关闭容器仓库功能
gitlab_rails['gitlab_default_projects_features_container_registry'] = false
gitlab_rails['registry_enabled'] = false
registry['enable'] = false
gitlab_rails['registry_enabled'] = false
registry_nginx['enable'] = false

# 包仓库、依赖管理,可用harbor、nexus替代
gitlab_rails['packages_enabled'] = false
gitlab_rails['dependency_proxy_enabled'] = false

# 文档、demo演示功能,可用Hugo、MdBook替代
gitlab_pages['enable'] = false
pages_nginx['enable'] = false

# 监控
prometheus_monitoring['enable'] = false
alertmanager['enable'] = false
node_exporter['enable'] = false
redis_exporter['enable'] = false
postgres_exporter['enable'] = false
pgbouncer_exporter['enable'] = false
gitlab_exporter['enable'] = false
grafana['enable'] = false
sidekiq['metrics_enabled'] = false

#性能分析
gitlab_rails['usage_ping_enabled'] = false
gitlab_rails['sentry_enabled'] = false
grafana['reporting_enabled'] = false

#关闭cd功能和k8s云功能
gitlab_kas['enable'] = false
gitlab_rails['gitlab_kas_enabled'] = false
gitlab_rails['terraform_state_enabled'] = false

#Kerberos、Sentinel 关闭
gitlab_rails['kerberos_enabled'] = false
sentinel['enable'] = false

# Mattermost聊天关闭
mattermost['enable'] = false
mattermost_nginx['enable'] = false

#puma提供web服务,小于4G环境,官方推荐禁用 PUMA 集群模式,关闭后就只有1个进程,减少大约100-400MB
puma['worker_processes'] = 0
puma['min_threads'] = 1
puma['max_threads'] = 2
puma['per_worker_max_memory_mb'] = 1024		#默认1024M

#sidekiq提供管理调度功能,可降低后台守护进程并发数
sidekiq['max_concurrency'] = 5

#关闭电子邮件相关功能
gitlab_rails['smtp_enable'] = false
gitlab_rails['gitlab_email_enabled'] = false
gitlab_rails['incoming_email_enabled'] = false

#ci功能关闭,Drone可替代
gitlab_ci['gitlab_ci_all_broken_builds'] = false
gitlab_ci['gitlab_ci_add_pusher'] = false

#数据备份
gitlab_rails['backup_keep_time'] = 604800	#备份保留时间,默认604800s等于7d,0为永久保留
gitlab_rails['backup_path'] = '/mnt/backups'
git_data_dirs({ "default" => { "path" => "/mnt/nas/git-data" } })		#git数据目录
#指定标头,防止主机头攻击
gitlab_rails['allowed_hosts'] = ['gitlab.example.com','127.0.0.1', 'localhost']


gitaly['concurrency'] = [
  {
    'rpc' => "/gitaly.SmartHTTPService/PostReceivePack",
    'max_per_repo' => 3
  }, {
    'rpc' => "/gitaly.SSHService/SSHUploadPack",
    'max_per_repo' => 3
  }
]
#pgsql配置
postgresql['shared_buffers'] = "256MB"		#共享缓冲
postgresql['autovacuum_max_workers'] = "2"		#自动清理进程数
postgresql['shmmax'] =  17179869184
postgresql['shmall'] =  4194304
postgresql['max_worker_processes'] = 4

#redis配置
redis['maxmemory'] = "0"
redis['io_threads'] = 4

隐藏不需要的菜单栏功能

在web界面中,"Security and Operations"选项卡,占用资源太多,也不需要使用时可以关闭,但官方并未给出解决方案,但可改代码实现关闭

cp /opt/gitlab/embedded/service/gitlab-rails/lib/sidebars/projects/menus menus

#只需要修改此目录下,想要关闭的菜单栏代码即可,文件中其他部分不变,只用清空函数内容,并返回false,gitlab就不会初始化此部分
vim menus/monitor_menu.rb
    ...
    def configure_menu_items
        false
    end
posted @ 2023-11-25 17:58  suyanhj  阅读(73)  评论(0)    收藏  举报