gitlab安装

一,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

原文地址:https://www.cnblogs.com/yimiyan/p/10417279.html