如何在win7上安装gitlab服务器

如何在win7上安装gitlab服务器,第1张

GitLab是由Ruby语言开发的基于Linux的Git服务器,是我见过的最强大的Git服务器。发现它之后,立即决定将Git服务器换成GitLab。

但安装好GitLab之后面临一个问题,如何将服务器上的git项目直接导入到GitLab,之前的Git服务器是由是git+apache搭建的(详见在Linux上用Apache搭建Git服务器)。

在网上发现了这篇文档——Import bare repositories into your GitLab instance,并按之进行了操作。

1)设置存放代码库的主目录

vi /etc/gitlab/gitlab.rb

比如这里设置为:git_data_dir "/gitlab/repos"

2)访问刚搭建的GitLab站点,创建一个group,比如cnblogs。

这时会在 /gitlab/repos 下创建 /gitlab/repos/repositories/cnblogs 文件夹。

然后在/gitlab/repos/repositories/创建一个文件夹,比如cnblogs

3)将现有的所有git项目文件复制到这个文件夹

cp -r /data/git/* /gitlab/repos/repositories/cnblogs

4)修改一下复制过来的文件夹的所有者:

chown -R git:git /gitlab/repos/repositories/cnblogs

5)运行GitLab导入命令

cd /var/opt/gitlab

gitlab-rake gitlab:import:repos

等了一段时间之后,显示done,却一个项目也没导入进来。

经研究发现,在导入时,GitLab只认文件夹名以.git结尾的项目。于是,将要导入的项目文件夹名称加上.git后缀,再次进行导入。

结果显示导入成功,比如:

Processing cnblogs/CNBlogsJob.git

* Created CNBlogsJob (cnblogs/CNBlogsJob.git)

Done!

可以是GitLab站点上却看不到已导入的项目。多次努力,也没能解决这个问题。

后来,实在没办法,改为手动导入,导入方法如下:

1)在GitLab站点上创建与要导入的项目同名的项目。

2)进入刚创建的项目文件夹

cd /gitlab/repos/repositories/cnblogs/项目名称.git

3)删除该文件下的所有文件

rm -rf *

4)将要导入的项目文件夹下的所有文件复制过来

cp -r /data/git/CNBlogsJob/* /gitlab/repos/repositories/cnblogs/CNBlogsJob.git

就这样将项目一个一个地导入进来。

5)导入完成后,修改一下导入的所有项目的文件所有者

chown -R git:git /gitlab/repos/repositories/cnblogs

如果不修改所有者,客户端无法进行git push。

就这样手动地完成了现有Git项目的导入。

备注:操作系统是CentOS 6.2,GitLab版本是7.8.4。

从 Gitlab 8.0 开始,Gitlab CI 就已经集成在 Gitlab 中,只要在项目中添加一个 .gitlab-ci.yml 文件,然后添加一个 Runner ,即可进行持续集成。在介绍 Gitlab CI 之前,先看看一些 Gitlab CI 的一些相关概念。

Jobs->Stages->Pipeline

一次 Pipeline 其实相当于一次构建任务,里面可以包含很多个流程,如安装依赖、运行测试、编译、部署测试服务器、部署生产服务器等流程。任何提交或者 Merge Request 的合并都可以触发 Pipeline 构建,如下图所示:

Stages 表示一个构建阶段,也就是上面提到的一个流程。可以在一次 Pipeline 中定义多个 Stages,这些 Stages 会有以下特点:

Stages 和 Pipeline 的关系如下所示:

Jobs 表示构建工作,表示某个 Stage 里面执行的工作。可以在 Stages 里面定义多个 Jobs,这些 Jobs 会有以下特点:

Jobs 和 Stage 的关系如下所示:

如果理解了上面的基本概念之后,可能我们就会发现一个问题,我们的构建任务在什么地方来执行呢,以前用 Jenkins 在 Master 和 Slave 节点都可以用来运行构建任务,而来执行我们的 Gitlab CI 构建任务的就是 Gitlab Runner。

我们知道大多数情况下构建任务都是会占用大量的系统资源的,如果直接让 Gitlab 本身来运行构建任务的话,显然 Gitlab 的性能会大幅度下降的。GitLab CI 最大的作用是管理各个项目的构建状态,因此,运行构建任务这种浪费资源的事情交给一个独立的 Gitlab Runner 来做就会好很多,更重要的是 Gitlab Runner 可以安装到不同的机器上,甚至是我们本机,这样完全就不会影响到 Gitlab 本身了。

安装 Gitlab Runner 非常简单,我们可以完全安装官方文档: https://docs.gitlab.com/runner/install/ 即可,比如可以直接使用二进制、Docker 等来安装。同样的,我们这里还是将 Gitlab Runner 安装到 Kubernetes 集群中来,让我们的集群来统一管理 Gitlab 相关的服务。

1.验证 Kubernetes 集群

执行下面的命令验证 Kubernetes 集群:

cluster-info这个命令会显示当前链接的集群状态和可用的集群服务列表。

2.获取 Gitlab CI Register Token

上节已经成功安装了 Gitlab,在浏览器中打开 hwzxgit.sinoing.net 页面,然后登录后进入到管理页面 http://hwzxgit.sinoing.net/admin ,然后点击导航栏中的Runner,可以看到该页面中有两个总要的参数,一个是 URL,另外一个就是 Register Token,下面的步骤中需要用到这两个参数值。

图一、

同样将 Runner 相关的资源对象都安装到kube-ops这个 namespace 下面,首先,通过 ConfigMap 资源来传递 Runner 镜像所需的环境变量(runner-cm.yaml):

要注意 CI_SERVER_URL 对应的值需要指向 Gitlab 实例的 URL(可以是外网地址,也可以是 Kubernetes 集群内部的 Service DNS 地址,因为 Runner 也是运行在 Kubernetes 集群中的),并加上 /ci ( http://gitlab.kube-ops.svc.cluster.local/ci ),也可以是CI_SERVER_URL: " http://hwzxgit.sinoing.net/ci "此外还添加了一些构建容器运行的资源限制,可以自己根据需要进行更改即可。

除了上面的一些环境变量相关的配置外,还需要一个用于注册、运行和取消注册 Gitlab CI Runner 的小脚本。只有当 Pod 正常通过 Kubernetes(TERM信号)终止时,才会触发转轮取消注册。 如果强制终止 Pod(SIGKILL信号),Runner 将不会注销自身。必须手动完成对这种被杀死的 Runner 的清理,配置清单文件如下:(runner-scripts-cm.yaml)

可以看到需要一个 GITLAB_CI_TOKEN,然后复制下图中的Gitlab CI runner token 来创建一个 Kubernetes secret 对象。将 token 进行 base64 编码:

然后接下来就可以来编写一个用于真正运行 Runner 的控制器对象,这里使用 Statefulset。首先,在开始运行的时候,尝试取消注册所有的同名 Runner,当节点丢失时(即NodeLost事件),这尤其有用。然后再尝试重新注册自己并开始运行。在正常停止 Pod 的时候,Runner 将会运行unregister命令来尝试取消自己,所以 Gitlab 就不能再使用这个 Runner 了,这个是通过 Kubernetes Pod 生命周期中的hooks来完成的。

另外通过使用envFrom来指定Secrets和ConfigMaps来用作环境变量,对应的资源清单文件如下:(runner-statefulset.yaml)

可以看到上面我们使用了一个名为 gitlab-ci 的 serviceAccount,新建一个 rbac 资源清单文件:(runner-rbac.yaml)

4.创建 Runner 资源对象

资源清单文件准备好后,直接创建上面的资源对象:

创建完成后,可以通过查看 Pod 状态判断 Runner 是否运行成功:

可以看到已经成功运行了两个(具体取决于StatefulSet清单中的副本数) Runner 实例,然后切换到 Gitlab Admin 页面下面的 Runner 页面:

至此,在kubernetes中安装Gitlab CI Runner结束,当然也可以根据需要更改 Runner 的一些配置,比如添加 tag 标签等。

前言:在上一篇中,已经成功使用docker搭建了Gitlab服务器,这里就简单摸索一下大概的使用教程,我自己也是初学者,就大概简单记录一下而已,如果有什么问题,欢迎留言。

1、root用户登录后,创建项目

2、新增用户

3、项目关联用户

4、本地机子安装git,使用 git --version 确定是否安装成功

5、创建本地仓库,建立完成后,在目录下会生成一个“.git”目录,这样就能执行git语句了。

git init :是在当前目录下建立仓库;

git init 文件路径 :指定一个目录创建仓库

6、也可以从服务器上克隆一个库

ssh克隆: git clone git@gitlab.example.com:root/test-y.git

http克隆: git clone http://gitlab.example.com/root/test-y.git

输入git的用户名、密码即可(Gitlab上注册/创建的)

7、创建一个分支,并推送到服务器

推送到服务器时遇到了一个问题,报错信息如下(上图2):

原因:本地新建的分支与远程分支之间没有连接起来

解决:直接按提示信息重新执行 git push --set-upstream origin dev1 即可

8、Gitlab服务端,可查看已经推送的信息

9、点击“Create merge request”按钮,将dev分支内容合并到主分支上

10、审核人员收到合并消息,审核合并请求。

11、审核通过,合并分支

到这里,大致流程就全部结束了。

git还常用到的一个语句 git pull 从服务器上拉取更新


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/502402.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-16
下一篇2023-06-16

发表评论

登录后才能评论

评论列表(0条)

    保存