- 环境配置
系统:CentOS Linux release 7.4.1708 (Core)
内核版本:3.10.0-693.el7.x86_64
内核信息:Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
CPU: 4 Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz
Memory Usage:8GB
Disk Usage: 50GB
GitLab版本:gitlab-ce-11.1.8-ce.0.el7.x86_64
- 安装步骤
2.1安装
- 下载安装包,Centos7环境下的GitLab安装包链接: https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
找到里面的最新版本,也可以根据需求选择历史版本
gitlab-ce-11.1.8-ce.0.el7.x86_64.rpm
下载指令:
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.1.8-ce.0.el7.x86_64.rpm
- 下载完成后安装GitLab:
rpm -i gitlab-ce-11.1.8-ce.0.el7.x86_64.rpm --nodeps --force
说明: -ivh 其中参数-i为安装 -v显示信息 -h显示进度条
--nodeps rpm在安装包时,不检查依赖关系
--force 强制安装
- 修改GitLab配置文件指定服务器ip和自定义端口:
vi /etc/gitlab/gitlab.rb
保存并退出,也可以不退出,因为接下来配置邮件也是编辑这个文件
- 配置邮件
vi /etc/gitlab/gitlab.rb
我这里使用的是139邮箱,比较稳定,基本上不会被邮箱官方给当成垃圾邮件拦截,其他邮件根据需求更改。相关教程请参考官网https://doc.gitlab.cc/omnibus/settings/smtp.html
注意 :登录邮件用户和发件用户须一致。密码是客户端授权密码,不是邮件在官方的登录密码,有些邮件这两个密码是一样的。
- 重置并启动GitLab
gitlab-ctl reconfigure(读取配置文件重新装配GitLab,时间有点长)
gitlab-ctl restart (重启gitlab所有组件)
提示“ok: run:”表示启动成功
- 关闭防火墙或者开放刚才设置的端口
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
2.2 验证操作
- GitLab的常用指令
# 读取Gitlab配置文件 sudo gitlab-ctl reconfigure
# 启动Gitlab所有组件 sudo gitlab-ctl start
# 停止Gitlab所有组件 sudo gitlab-ctl stop
# 重启Gitlab所有组件 sudo gitlab-ctl restart
# 查看状态 sudo gitlab-ctl status
# 查看实时日志 gitlab-ctl tail
- 访问Gitlab页面
输入服务器ip和指定端口进行访问,第一次登陆设置密码
设置好密码后 进入登陆注册界面
- 测试邮件功能
先打开Gitlab的实时日志,如果出错,方便找出相应错误
gitlab-ctl tail
使用新增用户来测试邮件是否发送成功
填写正确邮箱,会给你发个邮件,邮件内登录的邮件,第一次登录强制更改密码
点击提交后 ,这时实时日志会出现这样一段日志
表示发送成功,然后去看邮件
点进去连接然后修改密码完成注册
问题处理
3.1 配置gitlab遇到的问题
读取gitlab配置的时候报错
如果是这种,就将所有gitlab的用户删除,然后再执行 gitlab-ctl reconfigure即可
查看所有用户 cat /etc/passwd
删除用户 userdel –rf 用户名
如果是其他问题,红色字体描述的很清楚,找到相应位置根据提示修改即可
3.2 配置邮件可能遇到的问题(以139邮箱为例):
1、Connection refused - connect(2) for \"smtp.139.com\" port 456
端口一开始填写为:456,这是不对的。163邮箱的端口是25.
2、User has no permission
登陆139邮箱,开启SMTP服务。
3、535 Error: authentication failed
用户名或密码不正确,注意这里的
gitlab_rails['smtp_password'] = "xxpassword"
是139邮箱的“客户端授权密码 ”
4、553 Mail from must equal authorized user
服务器smtp机器要求身份验证帐号和发信帐号必须一致
##修改gitlab配置
gitlab_rails['gitlab_email_from'] = "xxuser@139.com"
user["git_user_email"] = "xxuser@139.com"
5、以上都没问题如果还是发不出去邮件的话,可能是25端口没有打开,可以尝试关闭防火墙,或者开放25端口。注:阿里云、腾讯云服务器商会把25端口封住(其他服务器商也可能会封,可自行查看服务器商官网),就算你关掉了防火墙,在安全组开放了25端口也没用,需要向服务器申请解封25端口。
有问题欢迎在评论区留言,我会继续更新DevOps搭建过程