1. 准备
由于公司特殊需求 需要一个内部的git仓库保证项目的私有性 只有公司内部员工才可以访问 更加安全。
2. 部署
2.1. 安装依赖
安装一些依赖软件包,SSH一般系统是默认安装好的,不过也不排除一些最小安装的系统没有sshd服务。
sudo yum install policycoreutils-python*
sudo yum install openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
2.2. 关闭防火墙(firewalls)
如果是Firewalls需要用别的方法 此处只展示iptables关闭方法
//刷新防火墙的规则
iptables -F
2.3. 安装邮件服务(可选)
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
2.4. 获取安装脚本
从官网获取一件安装脚本,当然自己手动安装也是可以的gitlab下载地址,使用官网脚本会简单一些。执行这一步会如果使用CentOS系统,会添加gitlab的yum源
//输出到文件里是为了看下下载的脚本内容
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh > rpm.sh
chmod +x rpm.sh
./rpm.sh
2.5. 安装GitLab
//使用yum安装gitlab
yum install -y gitlab-ee
//可以看下gitlab-ee包的内容,看到gitlab安装在/opt/gitlab目录下
rpm -ql gitlab-ee | less
2.6. 配置
上面已经安装好了gitlab 不过可以稍作一些配置 配置gitlab监听的地址与端口
gitlab的配置文件在/etc/gitlab/
目录下,主要配置文件为gitlab.rb
external_url 'http://gitlab.qwq.ro'
nginx['listen_addresses'] = ['0.0.0.0', '[::]']
nginx['listen_port'] = 28080
里面的配置项非常的多,可以对照官网文档根据需要修改。
2.7. 测试
# 停止服务
gitlab-ctl stop
# 重载配置
gitlab-ctl reconfigure
# 启动服务
gitlab-ctl start
已经是可以成功访问到啦
3. 进阶配置
3.1. 配置GitLab仓库存储位置
GitLab仓库默认位子:/var/opt/gitlab/git-data
# 创建/opt/gitlab/gitlab-data目录,作为仓库存储目录
mkdir /opt/gitlab/gitlab-data
# 迁移数据目录
mv /var/opt/gitlab/git-data /opt/gitlab/git-data
# 修改gitlab配置文件,找到git_data_dir
vim /etc/gitlab/gitlab.rb
# 新增内容
git_data_dirs({
"default" => {
"path" => "/opt/gitlab/gitlab-data"
}
})
3.2. 修改 unicorn 端口
# 修改/etc/gitlab/gitlab.rb配置文件
unicorn['listen'] = 'localhost'
unicorn['port'] = 28081
3.3. 修改 prometheus 端口
# 修改/etc/gitlab/gitlab.rb配置文件
prometheus['listen_address'] = 'localhost:28082'
3.4. 优化GitLab性能
3.4.1.修改gitlab配置文件/etc/gitlab/gitlab.rb
# 超时时间
unicorn['worker_timeout'] = 60
# 不能低于2,否则卡死 worker=CPU核数+1
unicorn['worker_processes'] = 4
3.4.2. GitLab默认使用了PostgreSQL,优化PostgreSQL
# 数据库缓存大小 默认256,可适当改小
postgresql['shared_buffers'] = "1024M"
# 数据库并发数
postgresql['max_worker_processes'] = 8
# sidekiq并发数
sidekiq['max_concurrency'] = 50
sidekiq['min_concurrency'] = 10
3.4.3. 减少 unicorn 内存使用
# 减少内存
unicorn['worker_memory_limit_min'] = "256 * 1 << 20"
unicorn['worker_memory_limit_max'] = "1024 * 1 << 20"
3.4.4. 配置邮箱服务SMTP服务器
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.server"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "smtp user"
gitlab_rails['smtp_password'] = "smtp password"
gitlab_rails['smtp_domain'] = "example.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
# If your SMTP server does not like the default 'From: gitlab@localhost' you
# can change the 'From' with this setting.
gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'
gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com'