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)
4.安装修改 配置文件
上传自己下载好的 rpm 包
上传位置自己看着办吧
现在就可以执行
rpm -ivh gitlab-ce-12.10.9-ce.0.el8.x86_64.rpm
如果安装有问题 一般就是缺少依赖 ,看缺哪个自己安装下
一般 少这个 policycoreutils-python 的多
执行 :yum install policycoreutils-python
再次执行上面的命令安装 gitlab
5.修改下gitlab 的配置文件
执行:
vim /etc/gitlab/gitlab.rb
修改后 :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.前台页面进入
首次进入是需要设置密码 ,我已经修改过了所以是这个样子。
剩下的就是自己去研究了。
8.Gitlab使用中遇到的问题整理
生成秘钥信息
在.ssh 目录下右键打开Git Bash(.ssh目录不存在,则在任一目录下操作,或者手动创建该目录)
生成秘钥:
ssh-keygen -t rsa -C "your_email@youremail.com"
直接Enter就行,然后会提示输入密码(可输可不输)
说明:命令中的email,就是gitlab中的账号,需要保持一致
执行完成之后,在.ssh 目录下就会生成秘钥文件(没有.ssh目录的会自动生成,手动创建的则不会重复生成)
服务器生成 SSH 密钥
生成ssh-key,默认一路回车即可
ssh-keygen
在~/.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代码会有如下的界面。
上面这段话的大体意思是在本机中没有找到相应的安全凭证,需要你做一些选择……我们点击取消操作,看看如何解决这个问题。
2.配置SSH Key
SSH的原理我们就不多说了,这里使用的是rsa的非对称的加密算法,验证的机制就是我们本机会生成一对公钥私钥,私钥自己保存,公钥放在gitLab上面。
首先在TortoiseGit的安装目录下的bin文件夹中找到puttygen.exe这个工具,或者在开始菜单搜索这个程序(如果你没有选择安装目录的话默认路径应该是:C:\ProgramFiles\TortoiseGit\bin),这个工具是用来生成密钥对的,打开它点击Generate,然后鼠标在进度条下方不停的晃动,几秒后就会生成密钥对,点击Savaprivate key保存私钥到本地(输入一个名字,保存到一个你找的到的文件夹),我一般放在C盘下。不要关闭这个窗口,接下来还会用到。
打开GitLab,找到Profile settings(右上角)下的SSH keys选项,选择Add SSH Key,Title输入框里输入一个名称(随便写,或者不写自动生成一个),然后把上面生成的以ssh-rsa开头的一长串密钥复制到Key输入框,点击Add Key保存。
到这里SSH Key就配置成功了,刚才生成密钥对的窗口可以关闭了。
3.在本地项目中配置SSH Key
在项目的文件夹上右击鼠标,选择TortoiseGit—Settings—Remot,
因为我用的是汉化版本,所有文字介绍略有差异,在PuttyKey后选择刚才保存到本地的私钥,然后点击应用。
设置SSH客户端,选择Network选项,在下面的SSH Client选项中选择TortoiseGit的安装目录下bin文件夹中的TortoiseGitPlink.exe程序,如果已经默认选中,直接确定就可以了。
在Pull或Push项目的时候,记得勾选AutoloadPutty Key选项。
到这里,GitLab配置SSH Key就已经全部完成了。