gitlab 介绍与本地安装

Gitlab代码库说明

  • Gitlab背景

以前我们使用GitLite进行代码管理,并无可用管理界面和组件(plugins),导致配置自动化CI/CD无法实现,改用Gitlab进行代码库管理。

 

  • Gitlab应用场景

使用Gitlab搭配SonarQube和Jekins,实现代码自动审查、自动打版功能和最终的自动发布功能,减少人工干预和预知错误处理。

 

  • Gitlab简介

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务

 

可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。

 

  • Gitlab安装部署

Gitlab官网:https://about.gitlab.com/installation/#centos-7

在CentOS上,以下命令也将在系统防火墙中打开HTTP和SSH访问。

sudo yum install -y curl policycoreutils openssh-server openssh-clients postfix

 

sudo systemctl enable sshd

sudo systemctl start sshd

sudo systemctl enable postfix

sudo systemctl start postfix

 

sudo firewall-cmd --permanent --add-service=http

sudo systemctl reload firewalld

 

添加GitLab仓库,并安装到服务器

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

 

sudo yum install gitlab-ce

手动下载文件,然后使用rpm命令安装

curl -LJO https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-XXX.rpm/download 

 

rpm -i gitlab-ce-XXX.rpm

 

启动GitLab

sudo gitlab-ctl reconfigure

 

打开浏览器访问,默认80端口

你第一次的访问,需要设置初始管理员帐户的密码。默认的帐户的用户名是root。

 

 

 

常用配置

修改内置nginx端口号,默认是80,修改 vim var/opt/gitlab/nginx/conf/gitlab-http.conf

gitlab本身采用80端口,配置GitLab的URL,修改 vim /etc/gitlab/gitlab.rb

external_url 'http://127.0.0.1:8222'

每次重新配置,都需要执行sudo gitlab-ctl reconfigure 使之生效。

 

日常管理

常用命令gitlab-ctl start|stop|status|restart 比如查看状态:

gitlab-ctl status

 

查看日志 /var/log/gitlab 可以进去查看访问日志以及报错日志等。

gitlab-ctl tail #查看所有日志

gitlab-ctl tail nginx/gitlab_access.log #查看nginx访问日志

 

卸载GitLab

通过以下几步就可以彻底卸载gitlab

  1. 停止gitlab,执行sudo gitlab-ctl stop
  2. 卸载gitlab,执行sudo rpm -e gitlab-ce
  3. 查看gitlab进程,杀掉第一个守护进程kill -9 pid
  4. 删除gitlab文件,执行find / -name gitlab|xargs rm -rf删除所有包含gitlab的文件及目录,再执行gitlab-ctl uninstall删除自动在root下备份的配置文件。

 

  • Gitlab 使用子模组进行项目管理说明

当项目越来越庞大之后,不可避免的要拆分成多个子模块,我们希望各个子模块有独立的版本管理,并且由专门的人去维护,这时候我们就要用到git的submodule功能。

 

常用命令

git clone <repository> --recursive 递归的方式克隆整个项目

git submodule add <repository> <path> 添加子模块

git submodule init 初始化子模块

git submodule update 更新子模块

git submodule foreach git pull 拉取所有子模块

 

子模块的库还是原来的,重新创建了新的项目,把本地主项目添加进去上传远程仓库。剩下的就是把主项目(linlong-cloud-aggregation)跟子模块关联起来。

 

配置子模组

$ git submodule add http://172.27.8.191/root/linlong-cloud-admin.git linlong-cloud-admin

 

提交子模组配置代码

$ git add --all && git commit –m “20190220增加linlong-cloud-admin子模组”

$ git push

 

到此就完成子模组新增配置

现在你就在项目(linlong-cloud-aggregation)里的子目录下有了一个 linlong-cloud-admin 项目。你可以进入那个子目录,进行变更,加入你自己的远程可写仓库来推送你的变更,从原始仓库拉取和归并等等。

 

拉取子模组代码

$ git clone http://172.27.8.191/root/linlong-cloud-aggregation.git

 

将子模组进行初始化

$ git submodule init && git submodule update

 

切换子模组分支

$ git submodule foreach git checkout dev

 

 

 

删除子模块

有时子模块的项目维护地址发生了变化,或者需要替换子模块,就需要删除原有的子模块。

 

删除子模块较复杂,步骤如下:

 

  1. rm -rf 子模块目录 删除子模块目录及源码;
  2. vi .gitmodules 删除项目目录下.gitmodules文件中子模块相关条目;
  3. vi .git/config 删除配置项中子模块相关条目;
  4. rm .git/module/* 删除模块下的子模块目录,每个子模块对应一个目录,注意只删除对应的子模块目录即可;

执行完成后,再执行添加子模块命令即可,如果仍然报错,执行如下:

 

git rm --cached 子模块名称

完成删除后,提交到仓库即可。

 

  • 使用工具

使用子模组命令 git client 需要使用 Git-2.20.1-64-bit.exe 版本,可到 https://www.git-scm.com/download/win 下载

 

  • Gitlab 项目Web Hooks配置

使用 Gitlab 的 WebHooks 触发 Jenkins 的自动编译和自动发布工作,配置请看下图:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值