在web 服务器搭建gitlab

我这个是自己试着玩,所以没事不要在生成服务器上搭建gitlab,因为gitlab要求挺高的,很有可能搞奔溃了,当然你也可以使用docker去搭建。

1.安装必要的组件,以下命令将会打开httpssh 在系统防火墙的可访问权限

sudo yum install openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
 

2.下载安装包

国内有rpm包,【清华大学TUNA镜像源】,建议直接打开这个网址去yum目录下载,不然直接使用官网提供地址可能下不下来

curl -O https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-9.2.6-ce.0.el7.x86_64.rpm
sudo rpm -i gitlab-ce-9.2.6-ce.0.el7.x86_64.rpm

3.配置启动 gitlab

gitlab-ctl reconfigure

4 使用web 服务器自带的nginx

因为gitlab 是一套集成环境,里面自带了nginx,redis 等一系列软件,所有安装的时候默认不使用自带的nginx
vim /etc/gitlab/gitlab.rb 

nginx['enable']=false;

gitlab-ctl reconfigure

5.nginx 配置文件

执行 gitlab-ctl reconfigure之后会生成 nginx的配置文件 /var/opt/gitlab/nginx/conf/gitlab-http.conf,把这个文件放到自己的 Nginx配置目录下,这个文件使用的端口是 80,会有端口冲突的( unicorn的端口也是 8080),可以改成其他端口或者自己重新配置过。
cp /var/opt/gitlab/nginx/conf/gitlab-http.conf /etc/nginx/conf.d/
//检查配置是否正常:
nginx -t
  nginx: [emerg] unknown log format "gitlab_access" in /etc/nginx/conf.d/gitlab-http.conf:56
nginx: configuration file /etc/nginx/nginx.conf test failed
#将配置中第13行结尾的gitlab_access去掉,即可完成验证。重启nginx使配置生效。

这样配置完成后还是有问题,因为gitLab 自带的nginx 运行用户不是nginx, 而我们web nginx 服务器用户是nginx ,所有在使用的时候会有权限问题

nginx用户添加到gitlab-www组:

usermod -aG gitlab-www nginx

修改配置:

vim /etc/gitlab/gitlab.rb
web_server['external_users']=['nginx']

文件赋予权限

chmod -R o+x /var/opt/gitlab/gilab-rails/sockets
chmod 755 /var/opt/gitlab/gitlab-rails/sockets

参考文章:
1.http://www.yuzhewo.com/2015/1...

2.http://dreamlikes.cn/archives/65

安装过程中出现的问题

1.systemctl reload nginx 出现 nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)

netstat -ntpl  查看一下端口情况
killall -9 nginx  杀死所有的进程
systemctl reload nginx 重新启动

2.systemctl start postfix 出现错误


修改/etc/postfix/main.cf 

inet_protocols=ipv4
inet_interfaces=all

参考文章 http://blog.csdn.net/rodulf/a...

解释一下yumrpm

参考文章:http://blog.csdn.net/ngvjai/a...

邮件发送不成功

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "[email protected]"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = '[email protected]'

配置的是QQ 的企业邮箱,这个地方注意一下

gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
都为true 的话,是发不出去的,具体可以参考https://github.com/gitlabhq/gitlabhq/issues/9203

然后把gitlab_rails['smtp_tls']=false 就可以了

4.测试邮件发送

gitlab-rails console 进入控制台
Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now
就能看到是否发送成功了

参考文章:https://docs.gitlab.com.cn/om...

删除gitlab

https://blog.whsir.com/post-1...

gitlab 中文文档社区

https://docs.gitlab.com.cn/

你可能感兴趣的:(gitlab)