GIT是日常开发管理项目使用的工具,而常用的Git服务端一般都是使用的GitLab,GitLab有CE和EE版本,区别在于CE属于社区版,不需要付费,也有免费版本更新,而EE则加入了更多的企业定制的服务,属于企业版,正常来说我们使用CE即可完成企业日常需要

    搭建GitLab-CE

    GitLab的官网在国内访问速度是极慢的,因此我们可以选择国内的镜像源,常见的国内镜像源中,清华大学站点的镜像里就维护了多个版本的GitLab-CE的rpm镜像,因为这里使用的是centos7,因此我们选择el7分支的进行下载,选择时间最新的版本,进行下载安装配置:

    1. # 1.下载 gitLab-CE的rpm镜像源(这个rpm包有800M左右,网络不好的话,建议先下载到本地,进行上传会比较稳,甚至中间可能会断掉好几次)
    2. wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.11.2-ce.0.el7.x86_64.rpm;
    3. # 2.安装rpm,删除rpm源
    4. yum install -y gitlab-ce-13.11.2-ce.0.el7.x86_64.rpm;
    5. rm -rf gitlab-ce-13.11.2-ce.0.el7.x86_64.rpm;
    6. # 3.修改gitlab的配置文件,指定访问的ip和邮件配置等
    7. vim /etc/gitlab/gitlab.rb;

    配置文件修改的内容如下:

    1. #external_url配置的是当前gitlab启动以后,外部访问当前页面的地址,可以配置当前机器的外网ip或者绑定解析的域名等
    2. external_url = 'http://121.43.231.10:8088'
    3. #修改gitlab显示时间的时区为上海
    4. gitlab_rails['time_zone'] = 'Asia/Shanghai'
    5. #设置邮件服务器的信息,这里用的腾讯企业邮箱
    6. gitlab_rails['smtp_enable'] = true
    7. gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
    8. gitlab_rails['smtp_port'] = 465
    9. gitlab_rails['smtp_user_name'] = "rdc-admin@hearyoumt.com"
    10. gitlab_rails['smtp_password'] = "Rdchearyou2021"
    11. gitlab_rails['smtp_domain'] = "smtp.exmail.qq.com"
    12. gitlab_rails['smtp_authentication'] = "login"
    13. gitlab_rails['smtp_enable_starttls_auto'] = true
    14. gitlab_rails['smtp_tls'] = true
    15. #别忘记在下面找到这个配置,放开,否则邮件服务不生效
    16. gitlab_rails['gitlab_email_enabled'] = true
    17. #指定发件人邮箱
    18. gitlab_rails['gitlab_email_from'] = 'rdc-admin@hearyoumt.com'

    配置完毕以后,我们退出编辑,接着重置gitlab并重新启动gitlab进程

    1. # 1.重置gitlab的配置(需要注意,这个过程会很久,并且经常卡在一堆action run的地方,里面有很多个action run,不注意会以为卡住不动了,实际上这个过程比较久)
    2. gitlab-ctl reconfigure;
    3. # 2. 检查是否开启了sshd,配置为默认开启(一般情况下默认ssh就是开启的)
    4. yum install -y policycoreutils-python openssh-server;
    5. systemctl enable sshd && systemctl start sshd;
    6. # 3. 安装邮件服务器,这里选择使用postfix
    7. yum install -y postfix;
    8. # 4. 启动postfix并设置为开机启动
    9. systemctl enable postfix && systemctl start postfix;

    这里需要注意的是,直接启动会显示开启报错,我们使用

    1. systemctl status postfix.service;

    查看更详细的信息,可以看到有一句:

    1. fatal: parameter inet_interfaces: no local interface found for ::1

    这里是指本地没有实现的inet_interfaces,这个时候我们解决方案是:

    1. vim /etc/postfix/main.cf;
    2. # 将如下两行配置
    3. inet_interfaces = localhost
    4. inet_protocols = all
    5. # 修改为如下内容,退出编辑,重启服务即可
    6. inet_interfaces = all
    7. inet_protocols = all