一 、 环境
CentOS 7
没有环境的可使用virtualBox安装一个虚拟机
搭建私服前需要做以下操作:
#打开xshell,登陆到自己的主机上
ssh [email protected]
#关闭防火墙
systemctl stop firewalld
#禁止防火墙开机启动
systemctl disable firewalld
#关闭Linux强制访问控制安全策略
vim /etc/sysconfig/selinux
把 SELINUX=enforcing 修改为 SELINUX=disabled
#重启系统,使配置生效
reboot
#重启完成后,使用getenforce查看selinux策略是否被禁用(disabled为被禁用)
getenforce
二、搭建gitlab私服
1.安装
- 安装gitlab的依赖包
yum install curl policycoreutils openssh-server openssh-clients postfix
- 下载gitlab yum仓库源
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
- 开启邮件服务
#启动邮件服务
systemctl start postfix
#设置为开启启动
systemctl enable postfix
- 安装gitlab-ce社区版本
yum -y install gitlab-ce
2.配置
- 使用Openssl创建私有密钥
#创建ssl文件夹
mkdir -p /etc/gitlab/ssl
#生成密钥
openssl genrsa -out "/etc/gitlab/ssl/gitlab.example.com.key" 2048
- 使用openssl生成csr证书
openssl req -new -key "/etc/gitlab/ssl/gitlab.example.com.key" -out "/etc/gitlab/ssl/gitlab.example.com.csr"
并填写国家、城市、域名、邮箱、密码等信息:
- 使用openssl生成crt证书
#x509为生成格式,-days 3650为证书有效期3650天
openssl x509 -req -days 3650 -in "/etc/gitlab/ssl/gitlab.example.com.csr" -signkey "/etc/gitlab/ssl/gitlab.example.com.key" -out "/etc/gitlab/ssl/gitlab.example.com.crt"
- 使用openssl生成pem证书
openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048
- 到此,证书都创建完毕,出现下面的四个证书即都创建成功
[root@VM_0_11_centos ~]# cd /etc/gitlab/ssl/
[root@VM_0_11_centos ssl]# ll
- 修改所有证书的权限为600
#进入ssl文件夹
cd /etc/gitlab/ssl/
#更改本文件夹下所有文件的权限
chmod 600 *
权限解释:linux规定数字 4 、2 和 1表示读、写、运行权限,即r=4,w=2,x=1,4 + 2 = 6表示可读写不可运行,同时linux将权限分为 拥有者 、群组 、其它组 三个权限,600中的6表示拥有者的权限,另外两个0表示拥有者 、群组的权限,更多权限解读如下:
-rw------- (600) 只有拥有者有读写权限。
-rw-r--r-- (644) 只有拥有者有读写权限;而属组用户和其他用户只有读权限。
-rwx------ (700) 只有拥有者有读、写、执行权限。
-rwxr-xr-x (755) 拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx--x--x (711) 拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) 所有用户都有文件读、写权限。
-rwxrwxrwx (777) 所有用户都有读、写、执行权限。
- 编辑gitlab.rb,将所有的证书配置到gitlab的配置文件中
vim /etc/gitlab/gitlab.rb
找到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
- 初始化gitlab配置
#如果不执行此命令,此时可能会卡住报错
systemctl restart gitlab-runsvdir
#初始化
gitlab-ctl reconfigure
出现Reconfigured就是正常初始化结束。
- 修改gitlab的nginx的代理文件
vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
找到server,在server_name下增加:rewrite ^(.*)$ https://$host$1 permanent;
- 重启gitlab使Nginx配置生效
gitlab-ctl restart
当执行成功后会出现下面的信息,至此,gitlab已经安装完成了。
- 最后一步,修改windows下的hosts文件
#添加gitlab服务所在主机的IP,并指定gitlab.example.com
192.168.1.1 gitlab.example.com
- OK,终于可以访问了
打开浏览器,输入gitlab.example.com
打开后,会让你设置新的root的密码,设置成功后即可登录。