目录
一、gitlab依赖的安装
1、安装ssh
sudo yum install -y curl policycoreutils-python openssh-server
我这里因为安装过了,显示“完毕”或者complete就算完事了
2、将SSH服务设置成开机自启动
安装命令:sudo systemctl enable sshd
3、启动SSH服务
安装命令:sudo systemctl start sshd
4、关闭防火墙
安装命令:service firewalld start,如果开启了防火墙,后边就要注意后边修改gitlab端口、ssh端口和nginx端口的配置,应该对应的给开放。
5、安装Postfix
用来发送邮件,安装命令:sudo yum install postfix
6、将postfix服务设置成开机自启动
安装命令:sudo systemctl enable postfix
7、启动postfix
安装命令:sudo systemctl start postfix
8、查看wget -V
9、若wget未安装则进行安装,安装命令:yum -y install wget,用来下载gitlab-ce包
二、下载gitlab镜像和安装调试
1、下载镜像
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.7.10-ce.0.el7.x86_64.rpm
2、安装gitlab
安装命令:rpm -i gitlab-ce-11.7.10-ce.0.el7.x86_64.rpm
安装过程时间会久一下,大家可以休息一下。如下图就安装成功了。
3、自定义gitlab和gitlab内置的nginx端口
因为gitlab默认端口是8080,内置的nginx端口是80,很容易与其他服务冲突
vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.1.141:6800';(访问的地址)
unicorn['port'] = 6810;(gitlab端口)
nginx['listen_port'] = 6800(nginx端口)
这里需要说明一下,external_url我配置的是ip+nginx端口,因为我遇到创建用户时,给用户发送修改密码的地址居然是6810的URL,访问不了,通过反复调试,这样配置是对的。
修改后保存退出:wq。
4、重置并启动GitLab
gitlab-ctl reconfigure
gitlab-ctl restart
5、首次登陆gitlab
默认用户名是root,第一次访问页面让你修改密码
6、配置公钥
默认如果不配置SSH key ,使用的是http模式,
配置公钥,公钥的生成这里就不说了,大家可以参考:https://www.jianshu.com/p/7aba9b127cb8
在本地生成密钥后,配置公钥后就可以使用ssh模式了,ssh模式安全性更好
三、遇到的问题
1、gitlab和nginx的端口被占用
解决办法在上边已经说了,就是修改端口,并注意开启防火墙的端口
2、修改gitlab的ssh端口
默认的是22,我修改了2222,结果上传代码时报错
vim /etc/gitlab/gitlab.rb
保存好后重启 :gitlab-ctl reconfigure,gitlab-ctl restart
解决办法是:vim /etc/ssh/sshd_config,修改port为2222,
向 SELinux 中添加 ssh 端口: semanage port -a -t ssh_port_t -p tcp 2222
然后重启sshd:systemctl restart sshd.service
向防火墙中添加端口的命令为: firewall-cmd --zone=public --add-port=2222/tcp --permanent
reaload 防火墙规则: firewall-cmd --reload
查看端口是否添加成功: firewall-cmd --zone=public --query-port=2222/tcp
3、postfix邮件收不到,配置stmp
我用stmp配置了我的企业邮箱,配置企业邮箱需要授权码,企业邮箱的授权码获取方式参考:https://jingyan.baidu.com/article/6181c3e0b12548152ef153db.html
保存好后重启 :gitlab-ctl reconfigure,gitlab-ctl restart
测试邮箱修改是否生效
执行 gitlab-rails console进入控制台
发送一封测试邮件:Notify.test_email('收件人邮箱', 'title', 'body').deliver_now
本人也是第一次安装,写的有什么问题,希望大家指正,谢谢