1.本文目标
在centOS7系统上成功装上Gitlab
2.准备工作
- 需要自己搭建CentOS7系统,不管是在服务器上还是自己开虚拟机
- 如果自己开虚拟机,这里推荐virtualbox虚拟机,然后去centOS官网下载iso镜像
- 安装Gitlab需要至少4GB的可用内存,由于操作系统和其他正在运行的应用也会使用内存, 所以安装GitLab前一定要注意当前服务器至少有4GB的可用内存,少于4GB内存会导致在reconfigure的时候出现各种诡异的问题, 而且在使用过程中也经常会出现500错误.
关闭防火墙
# systemctl stop firewalld
防止防火墙开机启动
# systemctl disable firewalld
用vi指令打开selinux文件并修改SELINUX=disabled
# vi /etc/sysconfig/selinux
...
SELINUX=disabled
...
重启系统
# reboot
可以用下面的指令查看是否成功,如果显示 Disabled就成功了
# getenforce
3.Gitlab安装配置管理
1、安装Gitlab组件
# yum install curl policycoreutils openssh-server openssh-clients postfix
2、 配置YUM仓库
# curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
3、 启动postfix邮件服务
# systemctl start postfix
# systemctl enable postfix
4、安装Gitlab-ce社区版本
# yum -y install gitlab-ce
4.Omnibus Gitlab等相关配置初始化并完成安装
1、创建本地私有秘钥
# mkdir -p /etc/gitlab/ssl
# openssl genrsa -out "/etc/gitlab/ssl/gitlab.example.com.key" 2048
2、使用刚才的私有密钥创建CSR证书
# openssl req -new -key "/etc/gitlab/ssl/gitlab.example.com.key" -out "/etc/gitlab/ssl/gitlab.example.com.csr"
3、进入csr证书的安装项,需要填写一些信息,根据个人具体信息填写
country 输入 cn
province 输入 bj
city 输入 bj
organization name输入空格
organization unit name输入空格
common name输入域名 gitlab.example.com
Email地址输入[email protected]
证书密码输入123456
optional company name 直接回车
上面输入的域名 gitlab.example.com,效果就是http://gitlab.example.com
可以输入LL查看私有秘钥和csr证书否创建成功
4、使用私有密钥和CSR证书创建CRT签署证书
# openssl x509 -req -days 365 -in "/etc/gitlab/ssl/gitlab.example.com.csr" -signkey "/etc/gitlab/ssl/gitlab.example.com.key" -out "/etc/gitlab/ssl/gitlab.example.com.crt"
5、创建pem证书
# openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048
6、更改所有证书的权限
# chmod 600 *
7、编辑Gitlab的配置文件
vi指令打开gitlab.rb文件并找到external_url这一行,把后面的http改成https
vi /etc/gitlab/gitlab.rb
external_url 'https://gitlab.example.com'
然后输入 /redirect_http_to_https 搜索,
找到nginx['redirect_http_to_https']改为true并且把最前面的注释打开,
ssl_certificate, ssl_certificate_key, 按照下面的改,
ssl_dhparam这一行,把nil替换成/etc/gitlab/ssl/dhparams.pem
nginx['redirect_http_to_https'] = true
# nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt"
# nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key"
# nginx['ssl_dhparam'] = /etc/gitlab/ssl/dhparams.pem
8、初始化gitlab
# gitlab-ctl reconfigure
5.Nginx SSL代理服务配置
1、找到gitlab下面的nginx代理工具,去更改gitlab http 配置文件
vi指令打开gitlab.rb文件
vi /var/opt/gitlab/nginx/conf/gitlab-http.conf
搜索 /server_name,在这行下面添加一行,用来重定向http请求
server_name gitlab.example.com;
rewrite ^(.*)$ https://$host$1 permanent;
2、初始化Gitlab相关服务并完成安装
# gitlab-ctl restart
修改本地host文件,将gitlab.example.com设置为服务器Ip
浏览器访问gitlab.example.com即可
6.注意事项
1、clone项目的时候,可以用http.sslverify=false,这个是为了避免本地证书无法进行克隆操作
# git -c http.sslverify=false clone https://gitlab.yadong.com/root/myfirstproject.git
2、执行 gitlab-ctl reconfigure 进行更新配置(只要修改了该文件,必须执行该命令才能生效)
3、执行 gitlab-ctl restart 重启服务