Document
首页 centos7搭建gitlab及初期设置

centos7搭建gitlab及初期设置

江小白 2019-06-09 0 76

一、gitlab简介

gitlab是一个类似于github的代码仓库管理系统。由GitLabInc.开发并开源,使用MIT许可证。gitlab各方面体验和github非常相似,因为开源,个人和公司都可以用来搭建自己的私有代码仓库管理系统,非常方便。

gitlab原先全部由ruby编写,后来部分功能用go进行重写。其Web框架使用RubyonRails,数据库采用PostgreSQL,用户认证和授权基于Gitolite,邮箱服务采用postfix。

gitlab内部嵌入式集成了许多linux上常见的应用和服务。比如nginx, unicorn, logrotate, redis等。所以一键安装会很方便。当然其体量也会比较大。

下面是我在自己的服务器上(4C8G)获取的一些数据:

## 这里是重启的时候gitlab输出的启动服务 sudo gitlab-ctl restart
ok: run: alertmanager: (pid 2308) 1s ok: run: gitaly: (pid 2324) 0s ok: run: gitlab-monitor: (pid 2346) 0s ok: run: gitlab-workhorse: (pid 2350) 0s ok: run: logrotate: (pid 2379) 1s ok: run: nginx: (pid 2387) 0s ok: run: node-exporter: (pid 2396) 1s ok: run: postgres-exporter: (pid 2403) 0s ok: run: postgresql: (pid 2416) 0s ok: run: prometheus: (pid 2500) 1s ok: run: redis: (pid 2515) 0s ok: run: redis-exporter: (pid 2641) 1s ok: run: sidekiq: (pid 2689) 0s ok: run: unicorn: (pid 2702) 1s ## 查看gitlab启动的进程数 ps -ef | grep -c gitlab 65 ## 查看gitlab相关进程占用的内存 ps aux | grep gitlab | awk '{sum += $6} END{print sum "KB"}' 3838580KB

从以上数据可以看到gitlab启动65个进程,占用内存接近4G。所以服务器要求还是比较高的。

二、gitlab安装

2.1 配置yum源

sudo vim /etc/yum.repos.d/gitlab.repo ## 输入以下内容并保存 [gitlab-ce] name=Gitlab CE Repository baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/ gpgcheck=0 enabled=1 ## gitlab ce即gitlab的社区版本

接下来缓存相关包

yum makecache

2.2 安装相关依赖

sudo yum -y install curl policycoreutils openssh-server openssh-clients postfix #启动sshd和postfix服务 sudo systemctl enable sshd sudo systemctl start sshd sudo systemctl enable postfix sudo systemctl start postfix

2.3 安装gitlab

yum -y install gitlab-ce

三、gitlab配置

GitLab 的相关参数配置都存在 /etc/gitlab/gitlab.rb 文件里,每次配置完成之后需要执行gitlab-ctl reconfigure,进行重新配置才能生效。

3.1 基本配置

主要调整下面一些参数:

external_url 'http://gitlab.example.com:8081' #修改成自己的域名和端口(80端口可省略) #注意端口占用问题,因为gitlab自带nginx,如果服务器原本有一个nginx服务的话,两个端口不能一样;另外gitlab会启动unicorn服务,默认会占用8080端口 unicorn['worker_processes'] = 2 #CPU使用核数,默认是CPU核心数+1,根据性能适当调整 gitlab_rails['time_zone'] = 'Asia/Shanghai' # 时间区域

3.2 邮箱配置

gitlab可以通过SMTP服务给用户发送邮件,在/etc/gitlab/gitlab.rb文件中,邮箱有两处配置,一处是系统发件人配置,一处是邮箱的SMTP服务配置。

### 以163邮箱为例 ### 发件人设置 gitlab_rails['gitlab_email_enabled'] = true gitlab_rails['gitlab_email_from'] = 'test@163.com' gitlab_rails['gitlab_email_display_name'] = 'GitLab' gitlab_rails['gitlab_email_reply_to'] = 'test@163.com' ### SMTP配置 gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.163.com" gitlab_rails['smtp_port'] = 25 gitlab_rails['smtp_user_name'] = "test@163.com" gitlab_rails['smtp_password'] = "password" //这里填SMTP授权码,有的邮箱没有授权码,就填密码 gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = true

注意gitlab_email_from与smtp_user_name必须一致。

3.3 备份配置

可修改备份文件存储路径,备份文件访问权限,备份加密方式,备份网络上传等。

gitlab_rails['manage_backup_path'] = true gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" gitlab_rails['backup_archive_permissions'] = 0644

3.4 配置完成重启

gitlab对其相关的每个服务都提供了一系列配置,可以基于此优化性能。可以参考这个文章:解决gitlab内存消耗过大问题
另外gitlab还提供禁用内置nginx,接入外部nginx的配置方式。因为可能会遇到一些问题,我没有尝试,所以就不写了。

相关的配置完成后,必须重新运行gitlab-ctl reconfigure生成最终配置,并且需要重启gitlab:

sudo gitlab-ctl reconfigure sudo gitlab-ctl restart

四、gitlab常用命令

gitlab-ctl start [service] # 启动所有/单个服务 gitlab 组件 gitlab-ctl stop [service] # 停止所有/单个服务 gitlab 组件 gitlab-ctl restart [service] # 重启所有/单个服务 gitlab 组件 gitlab-ctl status [service] # 查看所有/单个服务状态 gitlab-ctl reconfigure # 重新生成配置 gitlab-ctl tail [service] # 查看所有/单个服务日志 gitlab-rails console # 进入rails控制台 gitlab-rake gitlab:backup:create #备份数据库 gitlab-rake gitlab:backup:restore BACKUP=1483198680 #备份恢复,后面的数字是备份的时间戳,可以通过备份文件名看到。

四、测试邮件和web服务

4.1 测试邮件服务

sudo gitlab-rails console
irb(main):003:0> Notify.test_email('接收方邮件地址','邮件标题','邮件内容').deliver_now

4.2 测试web服务

从浏览器访问上面配置的external_url。gitlab提供了一个初始账号。

  • 初始账户: root 密码: 5iveL!fe

第一次登录会要求修改密码。

这样不出问题就完成了gitlab的部署,剩下的就是去网站摸索各种功能咯,祝玩的愉快o(∩_∩)o

打赏作者
打赏作者 打赏作者
免责声明:本文仅代表作者个人观点,与本网站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
作者: 2019-06-09 17:32:38

发表评论

看不清?点击更换

评论列表: