1.GitLab 环境搭建

GitLab,是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目安装。
它拥有与GitHub类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。
团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

2.搭建需要环境

yum install -y postfix sshd policycoreutils-python

postfix 邮件通知
sshd ssh服务(一般系统已经有了,可以不装)
policycoreutils-python GitLab必备依赖
设置postfix开机自启: chkconfig --add postfix 没有 wget 的 可以 装下
yum install -y wget

3.下载所需的rpm包

GitLab下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce

选择呢对应的版本进行下载 我选择的是这个 (我的系统是 centos8)

gitlab 企业级建设架构方案 搭建gitlab_git

4.安装修改 配置文件

上传自己下载好的 rpm 包

上传位置自己看着办吧

gitlab 企业级建设架构方案 搭建gitlab_配置文件_02


现在就可以执行

rpm -ivh gitlab-ce-12.10.9-ce.0.el8.x86_64.rpm

gitlab 企业级建设架构方案 搭建gitlab_gitlab 企业级建设架构方案_03


如果安装有问题 一般就是缺少依赖 ,看缺哪个自己安装下

一般 少这个 policycoreutils-python 的多

执行 :yum install policycoreutils-python 再次执行上面的命令安装 gitlab

5.修改下gitlab 的配置文件

执行:

vim /etc/gitlab/gitlab.rb

gitlab 企业级建设架构方案 搭建gitlab_配置文件_04


修改后 :wq 保存退出

执行:gitlab-ctl reconfigure 再执行:gitlab-ctl restart

至此 GitLab 已经启动

标题6.Gitlab 的相关操作和说明

/etc/gitlab/gitlab.rb          #gitlab配置文件
/opt/gitlab                    #gitlab的程序安装目录
/var/opt/gitlab                #gitlab目录数据目录
/var/opt/gitlab/git-data       #存放仓库数据
gitlab-ctl start #启动所有gitlab组件;
gitlab-ctl stop #停止所有gitlab组件; 
gitlab-ctl stop nginx          #单独停止某个服务

gitlab-ctl restart #重启所有gitlab组件; 
gitlab-ctl status #查看服务状态; 
gitlab-ctl reconfigure #修改配置文件之后,重新加载gitlab配置文件并启动所有gitlab组件
gitlab-rake gitlab:check SANITIZE=true --trace #检查gitlab; 
gitlab-ctl tail #查看日志;
gitlab-ctl --help #查看gitlab命令的帮助
Gitlab的服务构成:
nginx:                 静态web服务器
gitlab-workhorse        轻量级反向代理服务器
logrotate              日志文件管理工具
postgresql             数据库
redis                  缓存数据库
sidekiq                用于在后台执行队列任务(异步执行)

7.前台页面进入

首次进入是需要设置密码 ,我已经修改过了所以是这个样子。

gitlab 企业级建设架构方案 搭建gitlab_配置文件_05

剩下的就是自己去研究了。

8.Gitlab使用中遇到的问题整理

生成秘钥信息

在.ssh 目录下右键打开Git Bash(.ssh目录不存在,则在任一目录下操作,或者手动创建该目录)

gitlab 企业级建设架构方案 搭建gitlab_gitlab 企业级建设架构方案_06

生成秘钥:

ssh-keygen -t rsa -C "your_email@youremail.com" 直接Enter就行,然后会提示输入密码(可输可不输)

   说明:命令中的email,就是gitlab中的账号,需要保持一致

gitlab 企业级建设架构方案 搭建gitlab_git_07

执行完成之后,在.ssh 目录下就会生成秘钥文件(没有.ssh目录的会自动生成,手动创建的则不会重复生成)

gitlab 企业级建设架构方案 搭建gitlab_java_08

服务器生成 SSH 密钥
  生成ssh-key,默认一路回车即可

ssh-keygen

gitlab 企业级建设架构方案 搭建gitlab_运维_09

在~/.ssh/下会生成两个文件,id_rsa和id_rsa.pub
  id_rsa是私钥
  id_rsa.pub是公钥
  gitlab添加秘钥
  访问登录GitLab, 登录进去后, 搜索ssh, 或ss 就会有提示 设置—> ssh密钥. 点击进入ssh密钥添加页面. 把id_rsa.pub中的信息输入到key输入框中,title可以随便起,见名知意即可。然后点击Add Keys即可

问题:

Enter passphrase for key ‘/Users/MYNAME/.ssh/id_rsa’。
说好的ssh不需要密码呢??
翻了一些教程,有的说干脆重新设置为无密码,这样就不需要每次都输入了,个人觉得这是个办法,不是最优解。下面把我最后的解法贴下来,这个方法的原理就是托管一个代理替你保存密码,我的系统是centos7.6:
1、先打开代理,如果你已经打开,那么直接运行命令2即可:
eval $(ssh-agent)
#2、输入下面命令,然后再次输入密码即可,大功告成
ssh-add ~/.ssh/id_rsa
至此,我们就可以轻松地提交代码了。

GitLab配合小乌龟配置SSH Key

1.首先我们看一个错误页面,当自己没有配置sshkey的时候,pull或者push代码会有如下的界面。

gitlab 企业级建设架构方案 搭建gitlab_配置文件_10

上面这段话的大体意思是在本机中没有找到相应的安全凭证,需要你做一些选择……我们点击取消操作,看看如何解决这个问题。

2.配置SSH Key

SSH的原理我们就不多说了,这里使用的是rsa的非对称的加密算法,验证的机制就是我们本机会生成一对公钥私钥,私钥自己保存,公钥放在gitLab上面。

首先在TortoiseGit的安装目录下的bin文件夹中找到puttygen.exe这个工具,或者在开始菜单搜索这个程序(如果你没有选择安装目录的话默认路径应该是:C:\ProgramFiles\TortoiseGit\bin),这个工具是用来生成密钥对的,打开它点击Generate,然后鼠标在进度条下方不停的晃动,几秒后就会生成密钥对,点击Savaprivate key保存私钥到本地(输入一个名字,保存到一个你找的到的文件夹),我一般放在C盘下。不要关闭这个窗口,接下来还会用到。

gitlab 企业级建设架构方案 搭建gitlab_配置文件_11

打开GitLab,找到Profile settings(右上角)下的SSH keys选项,选择Add SSH Key,Title输入框里输入一个名称(随便写,或者不写自动生成一个),然后把上面生成的以ssh-rsa开头的一长串密钥复制到Key输入框,点击Add Key保存。

gitlab 企业级建设架构方案 搭建gitlab_配置文件_12

gitlab 企业级建设架构方案 搭建gitlab_gitlab 企业级建设架构方案_13

到这里SSH Key就配置成功了,刚才生成密钥对的窗口可以关闭了。

3.在本地项目中配置SSH Key

在项目的文件夹上右击鼠标,选择TortoiseGit—Settings—Remot,

因为我用的是汉化版本,所有文字介绍略有差异,在PuttyKey后选择刚才保存到本地的私钥,然后点击应用。

gitlab 企业级建设架构方案 搭建gitlab_java_14

设置SSH客户端,选择Network选项,在下面的SSH Client选项中选择TortoiseGit的安装目录下bin文件夹中的TortoiseGitPlink.exe程序,如果已经默认选中,直接确定就可以了。

gitlab 企业级建设架构方案 搭建gitlab_运维_15

在Pull或Push项目的时候,记得勾选AutoloadPutty Key选项。

gitlab 企业级建设架构方案 搭建gitlab_配置文件_16

到这里,GitLab配置SSH Key就已经全部完成了。