Loading... ## 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下载地址](https://docs.gitlab.com/omnibus/manual_install.html),使用官网脚本会简单一些。执行这一步会如果使用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 ``` 里面的配置项非常的多,可以对照官网文档根据需要修改。 [GitLab配置选项](https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab) #### 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' ``` ###### 3.4.5 GitLab汉化  Last modification:June 7, 2021 © Allow specification reprint Support Appreciate the author AliPayWeChat Like 0 感谢大佬投喂 啾咪~