Gitlab的安装部署和介绍

在devops工具链中有一个最重要代码托管环节,代码托管一般公司采用gitlab和svn结合的方式进行代码托管。今天我们来介绍一下如何进行gitlab的安装部署。

1.安装环境建议

Gitlab 不建议用太新版本,可能会有bag还有汉化不太好。还有用虚拟机做实验的时候内存不要低于2G,不然很多服务起不来报错。

Gitlab推荐配置 8C 32G  磁盘IO 越高越好,最好物理机+SSD

 环境配置

1、OS:RHEL7.6
2、CPU:尽量使用四核以上
3、MEM:官方建议4GB以上

 这个对配置的要求确实高,如果太低的话,安装完成后服务真的会跑不起来

2.解决依赖

GitLab 10.x版本后多了一些依赖,我们现在来解决一下环境的依赖,我们是以最小化服务器来进行环境的配置。

[root@centos7 ~]# yum install vim gcc gcc-c++ wget net-tools lrzsz iotop lsof iotop bash-completion -y
[root@centos7
~]# yum install curl policycoreutils openssh-server openssh-clients postfix -y #下面这标红的是我们做实验时为了图方便关闭了防火墙,已防止防火墙问题给我们带来的不便。
[root@centos7
~]# systemctl disable firewalld [root@centos7 ~]# sed -i '/SELINUX/s/enforcing/disabled/' /etc/sysconfig/selinux #启动ssh服务&设置为开机启动
systemctl enable sshd && sudo systemctl start sshd
#设置postfix开机自启,并启动,postfix支持gitlab发信功能
systemctl enable postfix && systemctl start postfix
#上面关闭防火墙,在生产环境中的,是不建议的,所以在生产环境中,我们部署gitlab,需要
开放ssh以及http服务,然后重新加载防火墙列表
firewall-cmd --add-service=ssh --permanent
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
[root@centos7 ~]# hostnamectl set-hostname gitlab.example.com
[root@centos7 ~]# reboot

 

安装包下载地址:https://packages.gitlab.com/gitlab/gitlab-ce

rpm 包国内下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/

ubuntu 国内下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/

由于我们这次的部署环境是centos的所以我们采用rpm包的方式进行部署。

 

 点进去之后选择我们需要的rpm包进行安装,直接下载,通过xftp传到服务器上,也可以复制链接地址通过服务器直接下载,这里我们用第二个方法。

3.安装过程

[root@gitlab ~]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.11.5-ce.0.el7.x86_64.rpm
[root@gitlab ~]# yum localinstall gitlab-ce-11.11.5-ce.0.el7.x86_64.rpm             #用yum localinstall 安装本地rpm包并解决依赖关系
#这里需要我们到配置文件中修改external_url,将url中的域名换成本机ip ,如果有需要的话,我们可以在此配置文件中,修改默认的80端口
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
[root@gitlab ~]# grep "^[a-Z]" /etc/gitlab/gitlab.rb
external_url 'http://192.168.195.166'
#把端口添加到防火墙 ,我们这里是默认的80端口。
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

1.gitlab邮件配置

到这里基本的gitlab配置已经做完了,不过一般我们还需要做一项基本配置就是gitlab的邮件配置,可以让gitlab向外发送通知邮件,比如创建账号或者修改了什么配置都可以给管理源发送邮件。配置方法也是修改配置文件/etc/gitlab/gitlab.rb里的一些配置。配置如下

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "632328143@qq.com"
gitlab_rails['smtp_password'] = "这里填入自己的授权码"
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = :login
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = "632328143@qq.com"
user["git_user_email"] = "632328143@qq.com"

2.初始化服务

这里需要注意的是我们在安装配置gitlab的之前,我们在服务器不要装任何类似tomcat的服务,因为它会导致端口被占用。

[root@gitlab ~]# gitlab-ctl reconfigure        #修改完配置文件要执行此操作,然后继续等待服务启动完成。

 完成后,我们就可以在浏览器中输入本机ip进入gitlab界面了
第一次进入会提示你修改管理员密码,按照提示修改就行

 

 密码修改完之后我们会到下面的页面,这里我们可以用root加你刚刚修改的密码进行登陆了,这里我们会看到还有一个注册的页面,这里一般后面我们建议关掉,因为可能会导致产生一堆垃圾账号。

 设置:取消勾选

点击保存:

验证是否关闭账号注册:

4.Gitlab的汉化

虽然不推荐,但是有需求, 基于第三方开发爱好者实现

1.下载语言包替换

https://gitlab.com/xhang/gitlab

 

 

2.变更过程

[root@centos7 ~]# head -1 /opt/gitlab/version-manifest.txt                  #查看当前gitlab的版本
gitlab-ce 11.11.5
[root@centos7 ~]# wget https://gitlab.com/xhang/gitlab/-/archive/v11.11.5-zh/gitlab-v11.11.5-zh.tar.gz     #这里注意下载-zh的包,别下错了
[root@centos7 ~]# tar -zxvf gitlab-v11.11.5-zh.tar.gz                     #解压包
[root@centos7 ~]# gitlab-ctl stop                          #停gitlab服务,如果没有第一次安装,就不用执行这一步
[root@centos7 ~]# cp -rp /opt/gitlab/embedded/service/gitlab-rails /opt/gitlab-rails.bak       #备份原目录
[root@centos7 ~]# \cp -rf gitlab-v11.11.5-zh/* /opt/gitlab/embedded/service/gitlab-rails/   #替换文件,复制过程中提示,以下信息是正常的:
cp: cannot overwrite non-directory ‘/opt/gitlab/embedded/service/gitlab-rails/log’ with directory ‘gitlab-v11.11.5-zh/log’
cp: cannot overwrite non-directory ‘/opt/gitlab/embedded/service/gitlab-rails/tmp’ with directory ‘gitlab-v11.11.5-zh/tmp’ [root@centos7 ~]# gitlab-ctl reconfigure #重新加载配置 [root@centos7 ~]# gitlab-ctl start #启动

Web 界面更改语言:
右上角的账户下拉框选 Settings 然后左侧 Preferences 设置项,然后语言选择中文

 

 保存后刷新界面,可以看到汉化成功

5.gitlab迁移版本库(保留原版本库的所有内容)

在生产中有时候我们会遇到需要跨主机迁移Gitlab里某个库的里面的内容,但是又不能影响原版本库里的内容,下面我来演示一下实现方法。

1.从原地址克隆一份裸版本库

[root@github-no ~]# ll                      
total 16
-rw-------. 1 root root 6706 Sep 13  2017 anaconda-ks.cfg
-rw-------. 1 root root 6556 Sep 13  2017 original-ks.cfg
[root@github-no ~]# git clone --bare http://pl.git.iflytek.com/EvidenceGroup-SH/marking-module-server.git      #这里需要我们输入项目的具有clone代码的用户
和密码,如果需要迁移的版本库多,可以通过公私钥ssh的方式克隆代码
[root@github-no ~]# ll total 20 -rw-------. 1 root root 6706 Sep 13 2017 anaconda-ks.cfg drwxr-xr-x. 7 root root 4096 May 13 10:05 marking-module-server.git -rw-------. 1 root root 6556 Sep 13 2017 original-ks.cfg

2.然后到新的 Git 服务器上创建一个新项目,比如test_46_38

 

3.以镜像推送的方式上传代码到 test_46_38 服务器上。

[root@github-no ~]# cd marking-module-server.git/
[root@github-no marking-module-server.git]# git push --mirror http://172.31.46.38/root/test_46_38.git   #这里输入test_46_38项目的具有提交代码权限的用户和密码

这个时候新Gitlab上就有了信息了

 

4.删除本地代码

[root@github-no marking-module-server.git]# cd ..
[root@github-no ~]# ll -h
total 20K
-rw-------. 1 root root 6.6K Sep 13  2017 anaconda-ks.cfg
drwxr-xr-x. 7 root root 4.0K May 13 10:05 marking-module-server.git
-rw-------. 1 root root 6.5K Sep 13  2017 original-ks.cfg
[root@github-no ~]# rm -rf marking-module-server.git
[root@github-no ~]# ll -h
total 16K
-rw-------. 1 root root 6.6K Sep 13  2017 anaconda-ks.cfg
-rw-------. 1 root root 6.5K Sep 13  2017 original-ks.cfg

5.到新gitlab服务器上找到clone地址,直接clone到本地就可以了

[root@2-no test]# ll
total 0
[root@2-no test]# git clone http://172.31.46.38/root/test_46_38.git
[root@2-no test]# ll
total 0
[root@2-no test]# git clone http://172.31.46.38/root/test_46_38.git

6.让开发改本地远程地址

远程库地址变了,这个时候还需要开发,改本地远程地址,不然一切都白费。

以下均以项目git_test为例:
老地址:http://192.168.1.12:9797/john/git_test.git
新地址:http://192.168.100.235:9797/john/git_test.git
远程仓库名称: origin
方法一 通过命令直接修改远程地址

    进入git_test根目录
    git remote 查看所有远程仓库, git remote xxx 查看指定远程仓库地址
    git remote set-url origin http://192.168.100.235:9797/john/git_test.git

方法二 通过命令先删除再添加远程仓库

    进入git_test根目录
    git remote 查看所有远程仓库, git remote xxx 查看指定远程仓库地址
    git remote rm origin
    git remote add origin http://192.168.100.235:9797/john/git_test.git

方法三 直接修改配置文件

    进入git_test/.git

    vim config

    [core]
    repositoryformatversion = 0
    filemode = true
    logallrefupdates = true
    precomposeunicode = true
    [remote "origin"]
    url = http://192.168.100.235:9797/shimanqiang/assistant.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    [branch "master"]
    remote = origin
    merge = refs/heads/master

    修改 [remote “origin”]下面的url即可

方法四 通过第三方git客户端修改。

以SourceTree为例,点击 仓库 -> 仓库配置 -> 远程仓库 即可管理此项目中配置的所有远程仓库, 而且这个界面最下方还可以点击编辑配置文件,同样可以完成方法三。

 

posted @ 2020-01-15 10:15  清白之年980410  阅读(965)  评论(0编辑  收藏  举报