暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

开发部署-Git仓库

花好夜猿 2019-03-12
293

Git


啥是GIt!

Git 是一个分布式版本控制系统。说直白一点就是,GIt 是一个仓库系统,该系统提供了存放物品的场所,同时针对每一次出入库都有详细的记载,可以方便知道你之前在这里放了什么,并且根据要求,还能够还原之前仓库的存放状态。

其实在开发中也有其他的版本控制系统,比如常用的SVN。而SVN一样可以做到这些,但是为什么选择 GIt 而不是 SVN呢?

人为因素是其中一个原因,技术领导的技术选型,下层员工不得不使用。而另外一个比较重要的原因就是GIt对比SVN的优势:Git 这个仓库很人性化,它允许你把物品在你自己的本地小仓库先摆者,然后觉得可以了再提交到远程GIt仓库中,避免堆积太多东西难以管理。而SVN 中所有的东西都只能提交到远程仓库中,无论你本地堆积了多少东西,你都只能在远程仓库中摆放,不允许你有小私库。

Git 由于多了些优势,相对应的操作步骤也变多了。但是这些代价都是很值得。

下午我们来看看 Git 的操作流程图:


这上面是一个简单git用法:拉取代码以及提交代码的流程图。
但是在实际操作过程中 git 实际上会更复杂,包括同一账号多库多分支, 操作有很多技巧,例如分支切换保留当前分支的开发环境等操作。很是灵活好用,相信使用上手之后,你会对 git 至死不渝。在这里不针对 git 的命令进行赘述。

了解了 git 之后,那我们尝试这搭建一下远程仓库。

最简版-Git服务搭建

前提:环境 centos ,安装有 git

最简版的 GIt 服务器其实就是个人的私服,主要通过创建 git 仓库,然后通过 linux内部用户权限机制进行权限控制,完成的一个简易的远程仓库。

而其实这种仓库也可以给企业用,比如我最早呆的一家创业公司,公司给到的服务器内存配置较小,并且服务器中东西比较多,比如 nexus 、jekines、nginx等很多,而 gitlab 因为底层依赖很多的东西占用较多内存,为了提高服务利用,加上开发人员较少,于是采用的这种方式进行仓库构建。

在早期的开发中,开仓库的形式还是能够满足的开发需求,不过随着开发人员增加,代码库增多,会变得更难维护,开发人员权限无法得到好的分配管理。

话不多说,直接进入正题

step1、创建系统用户“simple_git” 用来管理 git 仓库。

useradd simple_user
passwd simple_git

step2、创建一个文件夹用来存放simple_git 的git仓库

mkdir /simple_git

step3、初始化一个 git 仓库 wtf_coding

git init --bare wtf_coding

step4、设置 simple_git 的用户权限给 git 用户

chown -R simple_git:simple_git /simple_git/

step5、设置 用户 simple_git 不能登录系统。

修改/etc/passwd 中 simple_git 对应的/bin/bash 为其他不存在的执行文件即可
tail -1 /etc/passwd
simple_git : x:1003:1004::/home/simple_git:/bin/no-login

step6、拉取代码测试

git clone git@192.168.2.154:/simple_git/wtf_coding.git

Gitlab

gitlab 对比上面的简易仓库优势显而易见。GItLab 提供了可视化管理工具,权限管理,以及支持 kubernetes 容器编排等功能。但是缺点也很明显就是占内存,其原因就是GitLab运行时依赖 redis、nginx等多种服务。

step1、下载

下载地址:
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-11.8.1-ce.0.el6.x86_64.rpm

step2、安装依赖

一般需要安装 openssh-server ,postfix,ruby 等依赖,其他具体的根据程序报错进行安装。

step3、安装 gitlab

rpm -ivh gitlab-ce-11.8.1-ce.0.el6.x86_64.rpm

step4、修改相关配置

配置文件路径为: /etc/gitlab/gitlab.rb

一般修改如下配置
#外部访问url
external_url 'http://192.168.2.154:8080'
unicorn['port'] = 8080

step5、重新载入配置,并启动

gitlab-ctl reconfigure     # 重新载入配置
gitlab-ctl start # 启动

在启动安装可能出现的问题

问题一:ruby_block[wait for redis service socket] action run

在重新载入配置是,如果出现 

ruby_block[wait for redis service socket] action run

等待加载 redis 的时候,先 ctrl +c 停止
然后运行:systemctl restart gitlab-runsvdir
之后在运行 gitlab-ctl reconfigure

问题二:502 错误

该错误需要修改 /etc/gitlab.rb 配置文件,重新设定 unicorn[‘port’] = 9091 端口配置
或者 nginx[‘listen_port’] = 82 配置,
然后 gitlab-ctl reconfigure
就能够解决 502 问题

step6、测试使用

  • 首次进入,设置 超级管理员密码

  • 尝试创建用户


    更多详细操作(https://docs.gitlab.com/ee/user/group/)

GitLab 汉化操作

GitLab汉化模块下载地址

首先需要注意的是 Gitlab 的版本需要和GitLab 的汉化版本一致。

## GitLab 版本查看,其中-/opt/gitlab 为gitLab 安装目录
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

## 其中 /opt/gitlab-11-8-stable-zh 为 汉化模块解压文件目录
cat /opt/gitlab-11-8-stable-zh/VERSION

其实进行汉化操作很简单,就是把汉化模块中的所有文件覆盖 gitlab 安装目录中的  /opt/gitlab/embedded/service/gitlab-rails/ 中。

步骤很简单:

## 备份配置数据 ,如果汉化失败,能够撤回数据,保证程序能够运行
tar -zcvf /opt/gitlab-rails.tar.gz /opt/gitlab/embedded/service/gitlab-rails/

## 复制文件覆盖 gitLab 
cp -rf /opt/gitlab-stable-zh/* /opt/gitlab/embedded/service/gitlab-rails/

之后重新配置 gitlab

gitlab-ctl reconfigure

启动

gitlab-ctl start

汉化完成之后,想要看到结果需要进行用户登录设置,


  长按二维码关注,一起共同成长!



文章转载自花好夜猿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论