一、安装
1.配置yum源
vim /etc/yum.repos.d/gitlab-ce.repo
复制以下内容:
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
2.更新本地yum缓存
yum makecache
3.安装GitLab社区版
yum install gitlab-ce #自动安装最新版本
4.更改默认端口配置(默认为80端口)
sudo vim /etc/gitlab/gitlab.rb
修改如下:
external_url 'http://ip:26100'
nginx['listen_https'] = false
nginx['listen_port'] = 26100
nignx['listen_address'] = ['*']
sudo vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
修改如下:
server {
listen *:26100;
server_name ip
if ($http_host = ""){
set $http_host_with_default "ip:26100";
}
}
5.开放端口
sudo firewall-cmd --add-port=26100/tcp --permanent
6.重新加载防火墙
sudo firewall-cmd --reload
7.修改配置后重新加载配置文件
sudo gitlab-ctl reconfigure
8.重启gitlab
sudo gitlab-ctl restart
注:如无需修改端口,可省略步骤4-7。
二、邮件配置
1.修改配置文件
sudo vim /etc/gitlab/gitlab.rb
新增以下内容:
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "mail.midea.com"
gitlab_rails['smtp_port'] = 994
gitlab_rails['smtp_user_name'] = "发信邮箱"
gitlab_rails['smtp_password'] = "发信邮箱密码"
gitlab_rails['smtp_domain'] = "xxx.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
user['git_user_email'] = "发信邮箱"
gitlab_rails['gitlab_email_from'] = '发信邮箱'
2.修改配置后重新加载配置文件
sudo gitlab-ctl reconfigure
3.测试邮件配置是否生效
[azureuser@devops ~]$ sudo gitlab-rails console
--------------------------------------------------------------------------------
Ruby: ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux]
GitLab: 13.7.1 (c97c8073a0e) FOSS
GitLab Shell: 13.14.0
PostgreSQL: 12.4
--------------------------------------------------------------------------------
Loading production environment (Rails 6.0.3.3)
irb(main):001:0> Notify.test_email('xxxx@midea.com','test','test').deliver_now
Notify#test_email: processed outbound mail in 1.4ms
Delivered mail 5ff2cb5082e2b_e45eb53d484754@devops.mail (673.8ms)
Date: Mon, 04 Jan 2021 08:01:20 +0000
From: GitLab <xxx@midea.com>
Reply-To: GitLab <noreply@ip>
To: xxxx@midea.com
Message-ID: <5ff2cb5082e2b_e45eb53d484754@devops.mail>
Subject: test
Mime-Version: 1.0
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body><p>test</p></body></html>
=> #<Mail::Message:199260, Multipart: false, Headers: <Date: Mon, 04 Jan 2021 08:01:20 +0000>, <From: GitLab <xxx@midea.com>>, <Reply-To: GitLab <noreply@ip>>, <To: xxxx@midea.com>, <Message-ID: <5ff2cb5082e2b_e45eb53d484754@devops.mail>>, <Subject: test>, <Mime-Version: 1.0>, <Content-Type: text/html; charset=UTF-8>, <Content-Transfer-Encoding: 7bit>, <Auto-Submitted: auto-generated>, <X-Auto-Response-Suppress: All>>
出现以上信息说明配置成功。
三、修改超级管理员root的密码
1.进入gitlab-rails控制台
sudo gitlab-rails console
2.查找切换账号
u=User.where(id:1).first
3.修改密码
u.password='更改后的密码'
4.再次确认密码
u.password_confirmation='更改后的密码'
5.保存
u.save!
至此,可使用新密码gitlab首页进行登陆。
注:保存命令后的"!"一定要加!
四、性能调优
sudo vim /etc/gitlab/gitlab.rb
新增以下内容并保存退出:
unicorn['worker_processes'] = 2 #官方建议值为CPU核数+1(服务器只部署gitLab的情况下),可提高服务器响应速度,此参数最小值为2,设为1服务器可能卡死
unicorn['work_timeout'] = 60 #设置超时时间
unicorn['worker_memory_limit_min'] = "200 * 1 << 20" #减少最小内存
unicorn['worker_memory_limit_max'] = "300 * 1 << 20" #减少最大内存
postgresql['shared_buffers'] = "128MB" #减少数据库缓存
postgresql['max_worker_processes'] = 6 #减少数据库并发数
sidekiq['concurrency'] = 15 #减少sidekiq并发数
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
五、其他gitlab命令
gitlab-ctl help #查看gitlab帮助信息
gitlab-ctl show-config #查看gitlab配置信息
gitlab-ctl status #查看gitlab状态
gitlab-ctl reconfigure #重新加载配置
gitlab-ctl tail #查看所有日志
六、数据迁移
前提:gitlab保持一致,已经在新服务器上安装好gitlab。
1. 旧服务器操作
1> 利用gitlab自带的命令gitlab-rake进行数据备份,备份位于/etc/gitlab/gitlab.rb中gitlab_rails[‘backup_path’]选项对应的目录,备份目录默认位于/var/opt/gitlab/backups
备份命令 gitlab-rake gitlab:backup:create
查看备份目录 cat /etc/gitlab/gitlab.rb|grep gitlab_rails|grep backup_path
2> 打包备份数据和配置文件
cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab-secrets.json /var/opt/gitlab/backups
cd /var/opt/gitlab/backups
tar zcvf gitlab_all_backup.tar.gz ./*
3> 将.tar.gz文件上传到新服务器上/tmp下
方法自选
2. 新服务器操作
1> 解压备份文件
cd /tmp
tar zxvf gitlab_all_backup.tar.gz
2> 将配置文件移到/etc/gitlab下
如果新服务器的gitlab由docker-compose生成,需要将备份的文件cp到gitlab映射的宿主主机的相应位置。
cd /tmp
反斜线是忽略系统的alias,不会有覆盖文件提醒,慎重使用
\mv gitlab.rb gitlab-secrets.json /etc/gitlab/
重载gitlab配置
gitlab-ctl reconfigure
3> 还原数据
将之前备份的数据文件移到/var/opt/gitlab/backups下,然后恢复数据
cd /tmp
注意前面一串数字为时间戳,将你备份的文件移进去
mv 1552743127_2019_03_16_10.5.1_gitlab_backup.tar /var/opt/gitlab/backups
恢复数据,注意BACKUP=后面只要 _gitlab_backup.tar 前面的版本号,如下
gitlab-rake gitlab:backup:restore BACKUP=1552743127_2019_03_16_10.5.1
重载gitlab配置
gitlab-ctl reconfigure
注:如果新服务器使用的是docker-compose方式安装,需要进入到gitlab容器中进行新服务器操作,需要使用以下命令进入容器内部:
docker exec -it gitlab bash