CentOS 7 中搭建 Gitlab 服务
一、环境搭建
yum -y install curl policycoreutils-python openssh-server openssh-clients postfix cronie wget
systemctl start postfix
systemctl enable postfix
systemctl start sshd
systemctl enable sshd
# 如果没有安装防火墙
yum -y install firewalld systemd
systemctl start firewalld
systemctl enable firewalld
# 添加 http 服务到防火墙
firewall-cmd --permanent --add-service=http
systemctl reload firewalld.service
二、下载,安装 Gitlab
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm
rpm -ivh gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm
三、配置
vim /etc/gitlab/gitlab.rb
external_url ‘http://192.168…:10080’
firewall-cmd --permanent --add-port=10080/tcp
systemctl restart firewalld.service
firewall-cmd --list-all
gitlab-ctl reconfigure
gitlab-ctl start
四、生成秘钥,创建项目
# 一路 enter 就可以
ssh-keygen
# 创建项目,然后 add ssh key
cat /root/.ssh/id_rsa.pub
五、邮箱配置
1、配置
gitlab_rails[‘gitlab_email_from’] = ‘*****@qq.com’
gitlab_rails[‘smtp_enable’] = true
gitlab_rails[‘smtp_address’] = “smtp.qq.com”
gitlab_rails[‘smtp_port’] = 465
gitlab_rails[‘smtp_user_name’] = “***********@qq.com”
gitlab_rails[‘smtp_password’] = “****” # qq邮箱授权码
gitlab_rails[‘smtp_domain’] = “qq.com”
gitlab_rails[‘smtp_authentication’] = “login”
gitlab_rails[‘smtp_enable_starttls_auto’] = true
gitlab_rails[‘smtp_tls’] = true
user[‘git_user_email’] = “*******@qq.com”
gitlab-ctl reconfigure
gitlab-ctl restart
2、邮件测试
gitlab-rails console
Notify.test_email(’*****@163.com’, ‘ssssss subject’, ‘bbb body’).deliver_now
六、问题记录
1、内存不足
vim /etc/gitlab/gitlab.rb
# 减少数据库缓存,默认 256MB,可适当改小
postgresql[‘shared_buffers’] = “256MB”
# 减少数据库并发,默认 8,可适当改小
postgresql[‘max_worker_processes’] = 8
# 减少 sidekiq 并发数,默认 25,可适当改小
sidekiq[‘concurrency’] = 25
unicorn[‘worker_processes’] = 2
gitlab-ctl reconfigure
gitlab-ctl restart
2、502
(1)检查是否端口冲突
vim /etc/gitlab/gitlab.rb
# unicorn[‘port’] = 8080
(2)日志文件权限
chmod -R 755 /var/log/gitlab/
(3)开启 swap 分区
cat /proc/swaps
free
dd if=/dev/zero of=/mnt/swap bs=512 count=8388616 # 这个步骤会很慢
mkswap /mnt/swap
sysctl -w vm.swappiness=60 # /proc/sys/vm/swappiness # 修改到 60
swapon /mnt/swap
echo "/mnt/swap swap swap defaults 0 0" >> /etc/fstab
gitlab-ctl restart
3、403 Forbidden
vim /etc/gitlab/gitlab.rb
gitlab_rails[‘rack_attack_git_basic_auth’] = {
‘enabled’ => false,
‘ip_whitelist’ => [“127.0.0.1”, “192.168.*****”],
‘maxretry’ => 10,
‘findtime’ => 60,
‘bantime’ => 3600
}