22天前2020-05-14 13:42:02 |    抢沙发  52 
最近公司开始扩展开发团队,需要用到合作开发,之前只有我一个人所以没有这个需求,现在开发人员变多了需要规范管理和协作开发,所以就有了项目管理的需求,开始了解的是github但是这个经常封号,而且项目上传也比较慢。然后就了解到了本文的主角,gitlab这个我测试下来相当好用,当然我用的是社区版ce版。因为ee版本是收费的。接下来我就讲一下gitla服务器搭建以一些常规的设置,比如汉化,修改项目存储目录,设置邮箱等等功能。

gitlab

简介:

这里我就简单说一下吧,gitlab和github是差不多的,用法也基本一样。但是gitlab是可以自己内网搭建服务器的。

然后就是gitlab分为社区版(ce)和收费版(ee)。至于有什么区别,大家可以自己去官网查看,对于管理要求不是很高的需求来说是完全够用了。


安装:

官方安装说明地址:https://about.gitlab.com/install/

然后选择你自己的平台,进行查看安装步骤。

我们直接选择centos7

根据提示我们先安装设置好依赖:

sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
接下来安装邮件服务器:

sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
因为我们后面会用qq邮箱来发邮件所以其实可以不用安装,但是我们没试过不安装会不会报错。

添加GitLab软件包存储库并安装软件包(注意这我们添加的是ce版本的不要添加ee版本的)

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
完成后如果你想安装最新版本的那么直接按照官网的操作就好了,如果你要汉化的话最好是先确认一下汉化包支持到那个版本了。否则无法汉化。

汉化包项目地址:https://gitlab.com/xhang/gitlab/

我选择的是12.3.5

我们可以先安装axel来进行多线程下载,因为wget下载会非常慢。

wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/a/axel-2.4-9.el7.x86_64.rpm
rpm -Uvh axel-2.4-9.el7.x86_64.rpm
然后下载gitlab-ce-12.3.5的rpm包:

axel -n 200 https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm
下载好后就可以进行安装了

yum -y localinstall gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm
完整完成后我们要进行简单的配置(或者你也可以直接启动看看是否能正常访问):

vim /etc/gitlab/gitlab.rb
修改绑定的域名或IP


搜索:external_url

去掉注释:# 后面的地址改为自己的域名或者ip

比如:external_url 'http://192.168.1.2'


修改数据存储目录:

搜索:git_data_dirs

去掉注释改为:

git_data_dirs({
   "default" => {
     "path" => "新的存储路径"
    }

设置qq企业邮箱发信

搜索:smtp_enable

在上面加上:

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "你的邮箱地址"
gitlab_rails['smtp_password'] = "你的邮箱密码/或者授权码"
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_from'] = '你的邮箱地址'
基本设置到这就已经OK了。

然后我们重新加载一下配置文件。

gitlab-ctl reconfigure
这个时间会比较长。

完成以后就可以启动了。

gitlab-ctl start
如果都没有报错的话就说明OK了。

然后我们检查一下. 用gitlab自带的命令查看相关组件的日志

gitlab-ctl tail ###查看所有logs
gitlab-ctl tail unicorn	###查看unicorn组件的日志
gitlab-ctl tail nginx/gitlab-error,los	###查看nginx的错误日志
正常情况下是没问题的

gitlab默认是使用的nginx作为web对外服务的,我们可以通过:

ps -ef | grep nginx
查看nginx安装位置。

然后他里面的gitlab-http.conf就是咱们的web配置了,当然一般我们不去动它而是直接修改配置文件。


然后在浏览器中输入ip或者绑定的域名就可以访问到了。

访问到后它会提示你设置一个密码,这个密码就是root的密码,拥有系统的最高权限。

按照要求设置一下就OK了。不能低于8位。

但是现在的页面还是英文版本的,下面我们就要开始进行汉化了.

我们先安装一下git

yum -y install git
然后下载汉化包:

git clone https://gitlab.com/xhang/gitlab.git -b v12.3.5-zh
这个过程也会比较慢。

完成后我们可以先备份一下原来英文版的否则出错了都没法恢复。

cp -r /opt/gitlab/embedded/service/gitlab-rails /opt/gitlab/embedded/service/gitlab-rails_back
停止gitlab

gitlab-ctl stop

然后我们复制汉化包到项目目录:

\cp -rvf gitlab/* /opt/gitlab/embedded/service/gitlab-rails/
然后为了避免错误可以吧/opt/gitlab/embedded/service/gitlab-rails/目录的tmp和log目录删除掉。否则在重置配置的时候有可能报错。

rm -rf /opt/gitlab/embedded/service/gitlab-rails/tmp
rm -rf /opt/gitlab/embedded/service/gitlab-rails/log
然后我们再重新让配置生效一下:

gitlab-ctl reconfigure
如果没有报错就直接启动gitlab服务

gitlab-ctl restart
然后去前端重新访问一下看看是不是已经变成中文了。

然后登陆root后还有一些地方没有被汉化,需要点击用户头像 Settings——Preferences——Localization中将字符集修改为中文——F5刷新.

这个是用户中心就被汉化了。但是我发现好像还是有些地方没有被汉化。

最后剩下的就是添加到开机启动了。

systemctl enable gitlab-runsvdir.service
禁止开机启动:

systemctl disable gitlab-runsvdir.service
PS:这里再回头讲讲关于gitlab数据迁移的问题:

比如/data/gitlab/git-data 是我新创建的存储目录,目标路径及其子路径不能为软连接

在没有数据的情况下
 gitlab-ctl stop (停止GitLab服务,防止用户写入数据)
 gitlab-ctl reconfigure (使其修改配置生效)


如果默认存储路劲下/var/opt/gitlab/git-data 目录下已经存在仓库数据下进行数据迁移

 gitlab-ctl stop (数据迁移前,停止服务,防止用户写入数据)
 rsync -av /var/opt/gitlab/git-data/repositories /data/gitlab/git-data/ (执行仓库数据迁移,正常情况应该有下面这个子目录)
 gitlab-ctl reconfigure ( 使其配置生效)
 gitlab-ctl start(开启服务,验证一下是否能通过web访问)


这里再讲一下gitlab-ctl的常规操作指令:

#GitLab常用命令
sudo gitlab-ctl start # 启动所有 gitlab 组件;
sudo gitlab-ctl stop # 停止所有 gitlab 组件;
sudo gitlab-ctl restart # 重启所有 gitlab 组件;
sudo gitlab-ctl status # 查看服务状态;
sudo gitlab-ctl reconfigure # 启动服务;
sudo vim /etc/gitlab/gitlab.rb # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;
sudo gitlab-ctl tail # 查看日志;

好了本文就到这里了,我应该把服务器放机柜里去了,放地上太碍事儿了。

发表评论

暂无评论

登录

忘记密码 ?

切换登录

注册

扫一扫二维码分享