GIT是日常开发管理项目使用的工具,而常用的Git服务端一般都是使用的GitLab,GitLab有CE和EE版本,区别在于CE属于社区版,不需要付费,也有免费版本更新,而EE则加入了更多的企业定制的服务,属于企业版,正常来说我们使用CE即可完成企业日常需要
搭建GitLab-CE
GitLab的官网在国内访问速度是极慢的,因此我们可以选择国内的镜像源,常见的国内镜像源中,清华大学站点的镜像里就维护了多个版本的GitLab-CE的rpm镜像,因为这里使用的是centos7,因此我们选择el7分支的进行下载,选择时间最新的版本,进行下载安装配置:
# 1.下载 gitLab-CE的rpm镜像源(这个rpm包有800M左右,网络不好的话,建议先下载到本地,进行上传会比较稳,甚至中间可能会断掉好几次)
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.11.2-ce.0.el7.x86_64.rpm;
# 2.安装rpm,删除rpm源
yum install -y gitlab-ce-13.11.2-ce.0.el7.x86_64.rpm;
rm -rf gitlab-ce-13.11.2-ce.0.el7.x86_64.rpm;
# 3.修改gitlab的配置文件,指定访问的ip和邮件配置等
vim /etc/gitlab/gitlab.rb;
配置文件修改的内容如下:
#external_url配置的是当前gitlab启动以后,外部访问当前页面的地址,可以配置当前机器的外网ip或者绑定解析的域名等
external_url = 'http://121.43.231.10:8088'
#修改gitlab显示时间的时区为上海
gitlab_rails['time_zone'] = 'Asia/Shanghai'
#设置邮件服务器的信息,这里用的腾讯企业邮箱
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "rdc-admin@hearyoumt.com"
gitlab_rails['smtp_password'] = "Rdchearyou2021"
gitlab_rails['smtp_domain'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
#别忘记在下面找到这个配置,放开,否则邮件服务不生效
gitlab_rails['gitlab_email_enabled'] = true
#指定发件人邮箱
gitlab_rails['gitlab_email_from'] = 'rdc-admin@hearyoumt.com'
配置完毕以后,我们退出编辑,接着重置gitlab并重新启动gitlab进程
# 1.重置gitlab的配置(需要注意,这个过程会很久,并且经常卡在一堆action run的地方,里面有很多个action run,不注意会以为卡住不动了,实际上这个过程比较久)
gitlab-ctl reconfigure;
# 2. 检查是否开启了sshd,配置为默认开启(一般情况下默认ssh就是开启的)
yum install -y policycoreutils-python openssh-server;
systemctl enable sshd && systemctl start sshd;
# 3. 安装邮件服务器,这里选择使用postfix
yum install -y postfix;
# 4. 启动postfix并设置为开机启动
systemctl enable postfix && systemctl start postfix;
这里需要注意的是,直接启动会显示开启报错,我们使用
systemctl status postfix.service;
查看更详细的信息,可以看到有一句:
fatal: parameter inet_interfaces: no local interface found for ::1
这里是指本地没有实现的inet_interfaces,这个时候我们解决方案是:
vim /etc/postfix/main.cf;
# 将如下两行配置
inet_interfaces = localhost
inet_protocols = all
# 修改为如下内容,退出编辑,重启服务即可
inet_interfaces = all
inet_protocols = all