一 安装gitlab
1 环境简介
官方相关介绍:
硬件要求
. 存储
必要的硬盘空间在很大程度上取决于您想要存储在GitLab中的存储库的大小,但根据经验,您应该至少拥有与您的所有存储库合并占用的空闲空间。
如果您希望将来灵活扩展硬盘空间,请考虑使用LVM进行安装,以便在需要时添加更多硬盘。
除了本地硬盘驱动器,您还可以安装支持网络文件系统(NFS)协议的卷。此卷可能位于文件服务器,网络连接存储(NAS)设备,存储区域网络(SAN)或Amazon Web Services(AWS)弹性块存储(EBS)卷上。
如果你有足够的RAM内存和最近的CPU,GitLab的速度主要受硬盘寻道时间的限制。快速驱动(7200 RPM及以上)或固态驱动器(SSD)将提高GitLab的响应能力。. 中央处理器
? 1个核心最多支持100个用户,但由于所有工作和后台作业都在同一个核心上运行,因此应用程序可能会慢一点
? 2核是建议的核心数,最多支持500个用户
? 4个核心最多可支持2,000个用户
? 8个核心最多支持5,000个用户
? 16个内核最多可支持10,000个用户
? 32个核心最多可支持20,000个用户
? 64个内核最多可支持40,000个用户. 内存
至少8GB可寻址内存来安装gitlab,在运行gitlab之前,至少需要4GB可用空间,
建议至少有2BG交换,建议将内核的swappiness 设置为较低水平10 足以
vim /etc/sysctl.conf
vm.swappiness = 10. 数据库
运行数据库服务器至少要有5-10GB的可存储空间,但具体要求取决于gitlab安装的大小
强烈支持使用postgresql
Mysql/mariadb(不支持所有的gitlab功能)
Postgresql 要求
从GitLab 10.0开始,需要PostgreSQL 9.6或更高版本,并且不支持早期版本。我们强烈建议用户使用PostgreSQL 9.6,因为这是用于开发和测试的PostgreSQL版本。
使用PostgreSQL的用户必须确保将pg_trgm扩展加载到每个GitLab数据库中。可以通过对每个数据库运行以下查询来启用此扩展(使用PostgreSQL超级用户):
CREATE EXTENSION pg_trgm;
在某些系统上,您可能需要安装额外的软件包(例如?postgresql-contrib)以使此扩展可用。. Gitlab geo 要求
如果您使用的是GitLab Geo,则跟踪数据库也需要postgres_fdw扩展名。
CREATE EXTENSION postgres_fdw;. Unicorn
可以增加unicorn worker 的数量,有助于减少应用程序的响应时间并提高处理并行请求的能力
对于大多数情况,建议使用:CPU核心+1=unicorn worker
对于所有2GB及以上的机器,建议至少有3个,如果是1GB建议使用两个
. redis和 sidekiq
Redis 存储所有用户会话和后台任务队列,redis的存储要求很低,每个用户大约25KB,sidekiq使用多线程进程处理后台作业,此过程从整个redis堆栈(200M+)开始,但由于内存泄露,他可能会随着时间的推移而增长,在非常活跃的服务器上,sidekiq进程可以使用1GB+内存. Prometheus 及相关,使用默认设置,这些进程将消耗大概200M内存
2 安装相关依赖
yum install -y vim lrzsz wget gcc gcc-c++ make makeconf cmake
yum -y install readline readline-devel ncurses-devel gdbm-devel glibc-devel tcl-devel openssl-devel curl-devel expat-devel db4-devel byacc sqlite-devel libyaml libyaml-devel libffi libffi-devel libxml2 libxml2-devel libxslt libxslt-devel libicu libicu-devel system-config-firewall-tui redis sudo wget crontabs logwatch logrotate perl-Time-HiRes git cmake libcom_err-devel.i686 libcom_err-devel.x86_64 nodejs cmake libicu-devel libicu openssl openssl-devel
3 下载并配置yum源
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
4 安装软件
yum install gitlab-ce-11.0.6-ce.0.el7.x86_64
5 配置相关参数 URL 访问地址配置
6 配置访问相关解析
7 更新gitlab 配置
更新前需保证80端口未被占用,否则不能启动,因为其中的nginx代理默认启动的是80端口,若需更改,则需要在/etc/gitlab/gitlab.rb 中配置相关的nginx配置,切记,不能配置8080,因为8080已被gitlab内部配置默认占用unicorn master(此处也可改变),如果改成其他端口,则URL应写成server10.com:8060即可访问gitlab
查看是否成功
查看服务状态
8 登录和基本语言配置
登录修改root密码
通过root用户名和修改后的密码进行登录测试
设置环境为简体中文
保存并更新配置
查看
二 gitlab配置文件介绍及插件介绍
1 配置文件介绍
1 主配置文件介绍
其中包含所有的主配置的情况,组件的配置,其配置后需要进行reconfigure 进行生效配置并重启方可生效,其生效后的结果在各组件目录中可以看到
2 主目录
3 各个组件目录
4 放置日志文件
2 插件介绍
1 repository: 代码库,可以是硬盘或NFS文件系统
2 NGINX: web 入口
3 数据库:包含信息
Repository 中的数据(元数据,issue,合并请求merge request等)
可以登录的web用户信息
4 Redis 缓存 ,负责分发信息
5 sidekq: 后台任务,主要负责发送电子邮件,任务来自与redis
6 unicorn (gitlab rails):gitlab自身的web,包含了gitlab主进程,负责处理快速/一般任务,与redis一起工作,内容有
A 通过检查存储在redis中的用户来检查权限
B 为sidekiq 制作任务
C 从仓库(warehouse) 取东西或在哪里移动东西
7 gitlab-shell:用于SSH交互,而不是http,gitlab-shell 通过redis与sidekiq 进行通信,并直接通过TCP访问unicorn
8 gitaly: 后台服务,专门负责访问磁盘以高效处理git,并处理缓存耗时操作,所有的git操作都通过gitaly 进行处理
9 gitlab-workshorse: 反向代理服务器,可以处理与redis无关的请求,磁盘上的CSS,JS 文件等),处理git push/pull 请求,处理redis的链接(修改有redis发送的响应或发送给redis请求,管理redis的长期web socket链接)
10 mail_room: 处理邮件请求,恢复gitlab发送的邮件时,gitlab会调用此服务.
大体原理:
gitlab 使用nginx将前端请求代理到UNicorn web 服务器,默认情况下,unicorn 与前端之间的通信是通过unix domain 套接字进行的,但也支持通过TCP请求转发,web访问前端/home/git/gitlab/pubilc绕过unicorn 服务来提供静态页面,上传和预编译资源,gitlab使用Unicorn web 提供网页和gitlab api,使用sidekiq作为作业队列, 反过来,它使用redis 作为作业信息,元数据和作业的非持久化数据后端。
gitlab应用程序使用mysql或postgresql 作为持久化数据库,保存用户,权限,issue其他元数据等。
通过http/https提供repository时,gitlab使用gitlab API 来解释授权和访问以及提供git对象。
gitlab-shell 通过ssh提供repository,他管理/home/git/,ssh/authorized_keys 内的SSH密钥,不应该手动编辑,gitlab-shell通过gitaly访问bare repository 已提供git对象并与redis 进行通信以向sidekiq提交作业以供gitlab处理,gitlab-shell 查询gitlab API一确定授权和访问。
3 gitlab 忘记密码
修改密码为"12345678"
三 配置邮件服务器
四 配置项目相关
1 创建用户组
2 创建项目(在指定的用户组中)
3 创建用户
4 用户加组
5 登陆用户
6 配置客户端
7 配置文件并上传
8 创建分支
9 保证master分支不能上传
五 gitlab 备份与恢复
1 通过配置文件进行备份配置
2 手动进行备份和恢复
1 进入gitlab备份目录并进行备份
命令:
gitlab-rake gitlab:backup:create
2 删除gitlab中的项目
3 关闭相应的服务
4 进行备份恢复
直接输入yes
5 进行配置并启动
6 查看是否恢复成功
7 配置定时任务进行定时备份
30 00 5 /usr/bin/gitlab-rake gitlab:backup:create &> /dev/null && echo "gitlab 备份成功" | mail -s "gitlab 备份" [email protected]
原文地址:http://blog.51cto.com/11233559/2285622