一,RPM 安装
1,安装包下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
2,rpm安装:sudo rpm -ih gitlab-ce-10.3.2-ce.0.el7.x86_64.rpm
3,配置:gitlab-ctl reconfigure
4,启动服务:gitlab-ctl start
5,停止服务:gitlab-ctl stop
二,配置邮件服务器
修改 /etc/gitlab/gitlab.rb文件。
### Email Settings
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'git@xxxx.com'
gitlab_rails['gitlab_email_display_name'] = 'GitLab'
gitlab_rails['gitlab_email_reply_to'] = 'noreply@xxxx.com'
gitlab_rails['gitlab_email_subject_suffix'] = ''
### GitLab email server settings
###! Docs: https://docs.gitlab.com/omnibus/settings/smtp.html
###! **Use smtp instead of sendmail/postfix.**
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.xxxx.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "git@xxxx.com"
gitlab_rails['smtp_password'] = "********"
gitlab_rails['smtp_domain'] = "xxxx.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
##! The home directory for the git user
# user['home'] = "/var/opt/gitlab"
user['git_user_name'] = "GitLab"
user['git_user_email'] = "git.xxxx.com"
配置完成之后,重新执行gitlab-ctl reconfigure
配置好邮件服务器后,可以通过gitlab-rails console测试
进入:
gitlab-rails console
Notify.test_email('xxxx@xxxx.com','Message Subject','Message Body').deliver_now
三、汉化 AND 取消汉化
生成中文插件:
1,git clone https://gitlab.com/xhang/gitlab.git
2,cd gitlab
3,git diff remotes/origin/10-3-stable remotes/origin/10-3-stable-zh > ../10.3.2-zh.diff
10.3.2-zh.diff为生成的中文插件。
4,停止服务
gitlab-ctl stop
5,打补丁
patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < ${PATH}/10.3.2-zh.diff
6,gitlab-ctl reconfigure
7,gitlab-ctl start
目前11.7.5版本的汉化插件,在merge request时,执行colse 和reopen时,页面显示有issue,会显示500.
取消汉化:如已经执行了汉化插件后,想要取消汉化插件,可以逆向生成英文插件。
git diff remotes/origin/10-3-stable-zh remotes/origin/10-3-stable > ../10.3.2-en.diff
以下步骤同汉化相同
四,升级
1,备份 gitlab-rake gitlab:backup:create
2,关闭部分服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-ctl stop nginx
3,下载新版本
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.8.0-ce.0.el7.x86_64.rpm
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.7.5-ce.0.el7.x86_64.rpm
gitlab的升级,如果升级版本跨越较大,需要逐层升级。
例如从10.3.2升级到11.7.5,需要10.3.2-->10.8.0→11.7.5
4,升级
rpm -Uvh gitlab-ce-11.7.5-ce.0.el7.x86_64.rpm
U 表示升级或者安装
5,升级后,重新配置gitlab
gitlab-ctl reconfigure
6,重启
gitlab-ctl start
五,卸载
1,停止gitlab
gitlab-ctl stop
2,卸载gitlab (如果是安装的gitlab-ee,则卸载ee)
rpm -e gitlab-ce
3,查看gitlab进程
ps aux | grep gitlab
4,杀掉runsvdir的进程
杀掉后,在ps aux | grep gitlab确认一遍,还有没有gitlab的进程
5,删除所有包含gitlab文件
find / -name gitlab | xargs rm -rf
六,迁移
gitlab的迁移,要在同版本之间进行。
1,查看gitlab版本
gitlab-rake gitlab:env:info
2,备份
gitlab-rake gitlab:backup:create RAILS_ENV=production
PS: 备份后的文件一般是位于/var/opt/gitlab/backups下, 自动生成文件名文件名如1481529483_gitlab_backup.tar
3,拷贝步骤2中生成的tar文件到b服务器的backups目录下
4,在b服务器上恢复数据
gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=1481529483
PS:BACKUP的时间点必须与原服务器备份后的文件名一致
七,安装中遇到的一些问题及解决方案
1,
在卸载gitlab然后再次安装执行sudo gitlab-ctl reconfigure的时候往往会出现:ruby_block[supervise_redis_sleep] action run,会一直卡无法往下进行!
解决方案:
1、按住CTRL+C强制结束;
2、运行:sudo systemctl restart gitlab-runsvdir
3、再次执行:sudo gitlab-ctl reconfigure
2,
报错/opt/gitlab/embedded/bin/psql: undefined symbol: PQsetErrorContextVisibility
因系统中已经安装了 postgresql; 解决方案是export LD_LIBRARY_PATH=/opt/gitlab/embedded/postgresql/9.6.8/lib/:$LD_LIBRARY_PATH 后
重新运行 gitlab-ctl reconfigure