Gitlab的部署以及应用

GitLab简介

GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,它也是一个自托管的Git项目仓库,是集代码托管,测试,部署于一体的开源git仓库管理软件,可通过web界面来进行访问公开的或私人项目。现阶段的大小企业都在使用gitlab来测试发布代码。GitLab提供的不仅仅是线上的,强大的它能可以让用户自己部署,发布自己的项目,这一点是github上没有的。

Git的分支有很多,从发展到现在,已经从只是一个简单的工具(如git),发展成了库(如gitlibgithub),一直又延生到软件系统等等(gitlab),说明git的作用非常重要,这是毋庸置疑的。

废话不多说,接下来我们来安装gitlab,实现自己的git仓库管理,安装gitlab官网上也说明了需要的linux配置比较高点,至少4GB的可内存(RAM交换)来安装和使用GitLab。接下来我们需要手动安装,你也可以安装官网的来安装,不过个人不是很推荐。官网安装地址https://about.gitlab.com/installation/#centos-7

手动安装(centos7):

一、gitlab的安装

1、安装依赖包:

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">#yum install  -y curl policycoreutils openssh-server openssh-clients</span></code></span></span>

2、安装邮件服务,postfix设置开机启动,postfix支持gitlab发信功能

 

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">#yum install -y postfix</span>
<span style="color:slategray">#systemctl enable postfix</span>
<span style="color:slategray">#systemctl start postfix</span></code></span></span>

 

注意:

如果是开启防火墙firewall,需要以下配置

 

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">#firewall-cmd --permanent --add-service=http</span>
<span style="color:slategray">#systemctl reload firewalld</span></code></span></span>

3、使用国内源,添加GitLab镜像源并安装。

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">#vim /etc/yum.repos.d/gitlab_gitlab-ce.repo</span></code></span></span>

添加内容如下:

 

 

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:#999999">[</span>gitlab-ce<span style="color:#999999">]</span>
name<span style="color:#9a6e3a">=</span>gitlab-ce
baseurl<span style="color:#9a6e3a">=</span>http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck<span style="color:#9a6e3a">=</span>0
gpgcheck<span style="color:#9a6e3a">=</span>0
enabled<span style="color:#9a6e3a">=</span>1
gpgkey<span style="color:#9a6e3a">=</span>https://packages.gitlab.com/gpg.key</code></span></span>

 

baseurl源有很多,如果你的是centos6的话,可把下载地址改成https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6 就可以了。

4、安装gitlab

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">#yum install gitlab-ce</span></code></span></span>

 

安装成功如下:

1.png

5、配置启动gitlab

进入gitlab.rb配置文件,配置ip与端口一般配置格式为(external_url 'http://ip或者域名:端口'),如下图所示:

注意得是gitlab默认端口是8080,所以配置的时候需要查看(netstat -ntpl)端口是否被占用

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray"># vim  /etc/gitlab/gitlab.rb</span></code></span></span>

 

2.png

启用gitlab

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">#gitlab-ctl reconfigure</span></code></span></span>

 

启动时间比较久,成功如下:

3.png

查看端口http服务是否起来了

4.png

我这里可以发现已经是起来了。

6、访问gitlab

   第一次访问GitLab,系统会重定向页面到重定向到重置密码页面,你需要输入初始化管理员账号的密码,管理员的用户名为root,初始密码为5iveL!fe。

登陆后会提示一个登陆界面,这个界面是用来更改你的密码,如下图所示:

5.png

更完密码后,会跳转到登陆页面,我们直接登录就可以了

用户:root

密码:(更改密码)

6.png

之后我们就可以登录到我们直接的gitlab了

7.png

二,gitlab汉化配置

汉化一般是适合看英文不习惯的。

安装git

 

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">#yum install -t git</span>
<span style="color:slategray">#mkdir  /usr/local/gitlab</span>
<span style="color:slategray">#cd /usr/local/gitlab</span></code></span></span>

 

下载最新的汉化包:

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">#git clone https://gitlab.com/xhang/gitlab.git</span></code></span></span>

 

停止GitLab并执行如下语句:

 

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">#gitlab-ctl stop</span>
<span style="color:slategray">#cp -rf /usr/local/gitlab/gitlab/*  /opt/gitlab/embedded/service/gitlab-rails/</span></code></span></span>

  

复制时可能不断提示是否要覆盖,这时可能是系统每次执行cp命令时,其实是执行了cp -i命令的别名。出现这种情况可以修改/root/.bashrc,把 alias cp=cp-i’改为“alias cp=cp’即可。

注释后记得执行:

<span style="color:#333333"><span style="color:black"><code class="language-bash">#source /root/.bashrc</code></span></span>

或者你也可以直接使用rsync来同步

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">#rsync -avz /usr/local/gitlab/gitlab/*  /opt/gitlab/embedded/service/gitlab-rails/</span></code></span></span>

 

接下来可以重新配置和启动:

 

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray"># gitlab-ctl reconfigure</span>
<span style="color:slategray"># gitlab-ctl restart</span></code></span></span>

 

访问页面,发现已经汉化成功了。

8.png

 

 

三、gitlab常规维护命令

l  查看gitlab的状态

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">#gitlab-ctl status</span></code></span></span>

 

l  启动gitlab所以组件

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">#gitlab-ctl start</span></code></span></span>

 

l  也可以单独启动某个服务比如nginx

#gitlab-ctl start nginx

l  停止gitlab所有服务

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">#gitlab-ctl stop</span></code></span></span>

 

l  重启gitlab所有服务

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">#gitlab-ctl restart</span></code></span></span>

 

l  查看gitlab所有服务的日志信息

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">#gitlab-ctl tail</span></code></span></span>

 

l  查看某个服务的信息。

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">#gitlab-ctl tail nginx</span></code></span></span>

 

l  查看启动的服务

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">#gitlab-ctl service-list</span></code></span></span>

 

l  更改gitlab文件配置

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">#vim /etc/gitlab/gitlab</span></code></span></span>

 

l  Gitlabnginx目录

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">#cd /var/opt/gitlab/nginx/</span></code></span></span>

 

l  Gitlabnignx日志目录

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">#cd /var/log/gitlab/nginx/</span>
或者
<span style="color:slategray">#cd /var/opt/gitlab/nginx/logs</span></code></span></span>

 

l  Gitlabc查看所有服务的配置文件

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">#gitlab-ctl show-config</span></code></span></span>

 

l  Gitlab的卸载

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">#gitlab-ctl uninstall</span></code></span></span>

 


 

四、常见错误以及解决办法

在访问gitlab的时候我们会发现会有502的错误,到底是什么原因

9.png

解决办法:

1、权限问题

Gitlab文件需要给予读写的权限

解决办法

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">#chmod -R 755 /var/log/gitlab</span></code></span></span>

 

2、端口问题

Gitlab的默认启动端口是80,8080,所以有肯能会与其他的端口产生冲突,所以需要修改文件。

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">#vim /etc/gitlab/gitlab.rb</span></code></span></span>

 

更改参数

external_url 'http://localhost:8888' #指定访问端口,默认是80

unicorn['listen'] = '127.0.0.1'

unicorn['port'] = 8001    # 为unicorn worker的工作端口,默认为8080,如果你的8080端口被占用的,这一项需要更改。

重启gitlab

 

<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">#gitlab-ctl reconfigure</span>
<span style="color:slategray">#gitlab-ctl restart</span></code></span></span>

 

3、内存不足的问题

安装gitlab的时候,已经说明你的空余内存需要有4G左右的内存,所以在安装gitlab的时候,请给足内存,再安装。

 

四、总结

学会gitlab的常规安装以及应用和排错,gitlab的应用更github差不多,搭建完就后我们需要进一步的使用git的常规命令操作,更好的使用gitlab。

 

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐