安装使用GitLab需要至少4GB可用内存(RAM + Swap)!
- 安装依赖软件
yum -y install policycoreutils openssh-server openssh-clients postfix
yum install policycoreutils-python
- 设置postfix开机自启,并启动,postfix支持gitlab发信功能
systemctl enable postfix && systemctl start postfix
- 下载gitlab安装包,然后安装
centos 7系统的下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.7.6-ce.0.el7.x86_64.rpm
rpm -i gitlab-ce-12.7.6-ce.0.el7.x86_64.rpm
- 修改gitlab配置文件指定服务器ip和自定义端口:
vi /etc/gitlab/gitlab.rb
修改部分:
external_url=“http://ip:port”#如http://192.168.100.101:9988
unicorn['port'] = 9090
gitlab安装后吃内存的解决办法
将注释掉的这一行放开(至少为2,大致算法为cpu core数量*2 +1)
# unicorn['worker_processes'] = 2
- 重置并启动GitLab
gitlab-ctl reconfigure #使配置生效
gitlab-ctl restart #重启gitlab
提示“ok: run:”表示启动成功
- 访问 GitLab页面
如果没有域名,直接输入服务器ip和指定端口进行访问
初始账户:root 密码:第一次登录修改密码
- 设置gitlab发信功能,需要注意一点:(未配置测试)
发信系统用的默认的postfix,smtp是默认开启的,两个都启用了,两个都不会工作。
我这里设置关闭smtp,开启postfix
关闭smtp方法:vi /etc/gitlab/gitlab.rb
找到#gitlab_rails['smtp_enable'] = true
改为 gitlab_rails['smtp_enable'] = false
修改后执行gitlab-ctl reconfigure
另一种是关闭postfix,设置开启smtp,相关教程请参考官网https://doc.gitlab.cc/omnibus/settings/smtp.html
测试是否可以邮件通知:
登录并添加一个用户,我这里使用qq邮箱添加一个用户
基本命令:
gitlab-ctl start 启动
gitlab-ctl stop 停止
gitlab-ctl status 查看状态
gitlab-ctl restart 重启
gitlab-ctl reconfigure 修改后直接编译启动
gitlab-ctl tail #查看所有日志
gitlab-ctl tail nginx/gitlab_access.log #查看nginx访问日志
gitlab 默认的日志文件存放在/var/log/gitlab 目录下:
报错处理:
一.登录502报错
一般是权限问题,解决方法:`chmod -R 755 /var/log/gitlab`
如果还不行,请检查你的内存,安装使用GitLab需要至少4GB可用内存(RAM + Swap)! 由于操作系统和其他正在运行的应用也会使用内存, 所以安装GitLab前一定要注意当前服务器至少有4GB的可用内存. 少于4GB内存会出现各种诡异的问题, 而且在使用过程中也经常会出现500错误.
二.gitlab-ctl reconfigure
报错n itdb: could not obtain information about current user: Permission denied
Error executing action `run` on resource 'execute[/opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8]'
根据报错信息大概锁定用户的权限问题,安装gitlab-ce会自动添加用户四个用户:
gitlab-www:x:497:498::/var/opt/gitlab/nginx:/bin/false
git:x:496:497::/var/opt/gitlab:/bin/sh
gitlab-redis:x:495:496::/var/opt/gitlab/redis:/bin/nologin
gitlab-psql:x:494:495::/var/opt/gitlab/postgresql:/bin/sh
google和百度都搜索不到解决方法,既然出错提示到权限问题,那么按照这个方向去查就不会有问题,后来查了文件/etc/passwd的权限是600,给予644权限后,成功解决报错问题
修改密码:
- 在root用户下,执行
gitlab-rails console production
或
gitlab-rails console -e production
进入控制台
- 获得用户数据,修改用户密码
[root@svr34 bin]# gitlab-rails console production
Loading production environment (Rails 4.2.5.2)
irb(main):001:0> user = User.where(id: 1).first
或者
irb(main):001:0> user = User.find_by(email: 'admin@example.com')
=> #<User id:1 @root>
irb(main):002:0> user.password="12345678"
=> "12345678"
irb(main):003:0> user.password_confirmation="12345678"
=> "12345678"
irb(main):004:0> user.save!
=> true
irb(main):005:0> quit
内存优化配置
降低gitlab配置
修改配置文件
sudo vi /etc/gitlab/gitlab.rb
删除#号取消以下设置的注释,并修改参数
tip:vi编译器中搜索的方法: 命令模式下,输入
/字符串
,按下回车,得到搜索的结果,按n键切换搜索结果
1.减少进程数,修改worker_processes:
官方建议CPU核心数加一,最小值是2
unicorn['worker_processes'] = 2
2.减少数据库缓存
可适当改小
postgresql['shared_buffers'] = "256MB"
3.减少数据库并发数
可适当改小
postgresql['max_worker_processes'] = 8
4.减少sidekiq并发数
可适当改小
sidekiq['concurrency'] = 25
添加swap分区(虚拟内存)
[Swap分区]在系统的物理内存不够用的时候,把硬盘内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。
创建一个连续空间
dd if=/dev/zero of=/data/swap bs=512 count=8388616
创建swap分区
mkswap /data/swap
启动swap分区
swapon /data/swap
在/etc/fstab文件中记录文件的名字,使系统重启后,swap依然有效
echo “/data/swap swap swap defaults 0 0” >> /etc/fstab
查看swap分区是否启动
cat /proc/swaps
重加载gitlab配置
sudo gitlab-ctl reconfigure
启动gitlab
sudo gitlab-ctl start
#查看内存
free -m