Gitlab服务构成
- Nginx:静态web服务器。
- gitlab-shell:用于处理Git命令和修改authorized keys列表。
- gitlab-workhorse: 轻量级的反向代理服务器。
- logrotate:日志文件管理工具。
- postgresql:数据库。
- redis:缓存数据库。
- sidekiq:用于在后台执行队列任务(异步执行)。
- unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。
gitlab 安装完成会默认使用端口:80、8060、8080、9090、9100、9121、9168、9187
服务器上不应该存在以下用户, 这些用户在安装gitlab 的过程中会自己创建:gitlab-www、git、gitlab-redis、gitlab-redis、gitlab-prometheus
注:如果是使用虚拟机测试,不要使用nat模式,要用桥接模式
以下使用Centos7系统安装
1. 防火墙放行http服务或者80端口(gitlab默认访问端口),防火墙未开的略过这步
firewall-cmd --permanent --add-service ssh
firewall-cmd --permanent --add-service http
firewall-cmd --reload
2. 安装依赖软件
yum -y install policycoreutils openssh-server openssh-clients postfix policycoreutils-python
yum -y install openssh-server postfix policycoreutils-python
3. 设置postfix开机自启,并启动,postfix支持gitlab发信功能
systemctl start postfix && systemctl enable postfix
4. 下载gitlab安装包,安装,gitlab-ce和gitlab-ee是社区版和企业版的区别,这里使用的是社区版
# 官网地址
https://packages.gitlab.com/gitlab/gitlab-ce
# 清华镜像源
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm
# MD5:3e0e8459405b3721840b481814a37329
rpm -ivh gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm
如图所示
5. 上面的安装提示说明gitlab无法检测实例的有效主机名,需要在/etc/gitlab/gitlab.rb文件内修改`external_url`,:
vim /etc/gitlab/gitlab.rb
这里可以使用服务器IP或者域名(需解析到服务器IP,后面可以加端口,这里默认80访问)
修改邮箱配置,搜索smtp找到邮箱配置,官方文档
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "q7xx79xxx1@qq.com"
gitlab_rails['smtp_password'] = "fktzdfxxxoxxbbgf"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = 'q7xx79xxx1@qq.com'
gitlab_rails['smtp_domain'] = "exmail.qq.com"
如果修改过ssh端口,记得这条配置也需要修改一下,搜索ssh_port:
如果要修改仓库数据的存放目录,或者备份目录,那现在也一起修改一下
6. 修改好后继续按先前的提示执行,重置配置并启动
gitlab-ctl reconfigure
过程会比较慢,大概需要几分钟,配置越高越快... 完成如图
7. 测试邮件邮件发送:
# 执行下面命令后稍微等一会,会出现如下提示
[root@gitlab ~]# gitlab-rails console
-------------------------------------------------------------------------------------
GitLab: 11.11.8 (1d18d065069)
GitLab Shell: 9.1.0
PostgreSQL: 9.6.11
-------------------------------------------------------------------------------------
Loading production environment (Rails 5.1.7)
irb(main):001:0>
输入(改为收件邮箱):
irb(main):001:0> Notify.test_email('xxx.xxxx@qq.com','Message Subject','Hello, 2021 !').deliver_now
出现如下提示,则表示发送成功
如果出现:Net::SMTPAuthenticationError (535 Error 错误,则可能是邮箱的账户和授权码有问题
8. 启动好后输入服务器IP地址访问,第一次会让修改gitlab的root密码,最少8位
9. 安装好后,gitlab会生成命令,像上面使用过的gitlab-rails console
# 用于启动控制台进行特殊操作,比如修改管理员密码、打开数据库控制台等
gitlab-rails
# 数据库命令行
gitlab-psql
# 数据备份恢复等操作
gitlab-rake
# 管理命令,启动停止等,最后这个reconfigure参数,是重新编译配置文件,安装初期可以用用,如果修改了一些其它配置就不要随便重新编译了,会还原的
gitlab-ctl start|stop|restart|status|reconfigure
# gitlab 默认的日志文件存放在/var/log/gitlab 目录下
gitlab-ctl tail nginx/gitlab_access.log # 查看nginx访问日志
# 查看版本号
head -1 /opt/gitlab/version-manifest.txt
10. 汉化操作
# 找到自己合适的版本
# 先停止gitlab
gitlab-ctl stop
# 解压
tar xvf gitlab-v11.11.8-zh.tar
# 备份源文件
cp -rp /opt/gitlab/embedded/service/gitlab-rails/ /opt/gitlab-rails.bak
# 替换,这里会有两个提示/bin/cp: cannot overwrite non-directory,无法覆盖非目录,这个不用管
/bin/cp -rf gitlab-v11.11.8-zh/* /opt/gitlab/embedded/service/gitlab-rails/
# 重新编译启动
gitlab-ctl reconfigure
gitlab-ctl start
看着还是有大部分英文的样子,登录进去把偏好设置改程中文就可以了
右上角设置
选这个Preferences,然后拉到下面
选择简体中文后点一下保存,再刷新下页面即可
这个是自带的中文设置,但是做的比较差,配上替换的这些中文补丁文件,绝大部分地方都汉化的很不错了