怎样在Ubuntu 14.04中搭建gitolite git服务器

怎样在Ubuntu 14.04中搭建gitolite git服务器,第1张

1 首先这里我们安装openssh-serveropenssh-client,如果你用的是VPS之类的一般都默认安装好了,不过运行一个这个命令不会有错的,如果有安装就会提示已安装。

sudo apt-get -y install openssh-serveropenssh-client

怎样在Ubuntu 1404中搭建gitolite git服务器

2 安装Git,在这个核心软件,不可或缺。

sudo apt-get -y install git

怎样在Ubuntu 1404中搭建gitolite git服务器

3 添加gitolite用户和同名用户组,加上--system参数,用户就不会在登陆界面显示。

sudo adduser --system --shell /bin/sh--group --disabled-password --home /home/gitolite gitolite

怎样在Ubuntu 1404中搭建gitolite git服务器

4 生成ssh key,一路回车下来。

ssh-keygen -t rsa

怎样在Ubuntu 1404中搭建gitolite git服务器

5 将你当前用户的ssh pub key复制到/tmp下备用,由于我用的是桌面版在同一台机器上。

cp ~/ssh/id_rsapub /tmp/ubuntugegepub

如果你是ssh远程登陆到服务器上安装,就要把你本地的key复制到远程的机器上

scp ~/ssh/id_rsapubgitoliteserver:/tmp/ubuntugegepub

怎样在Ubuntu 1404中搭建gitolite git服务器

6 安装gitolite,在ubuntu中已经集成了,不用自己去下载。

sudo apt-get -y install gitolite

怎样在Ubuntu 1404中搭建gitolite git服务器

7 切换到gitolite用户环境中,因为我要以gitolite用户身份去初始化安装。

sudo su - gitolite

怎样在Ubuntu 1404中搭建gitolite git服务器

8 执行初始化安装gitolite。

gl-setup /tmp/ubuntugegepub

怎样在Ubuntu 1404中搭建gitolite git服务器

9 把管理库gitolite-admin克隆过来就可以开始gitolite用户及代码库的管理了,如果不能克隆,那么就说明初始化的ssh pubkey错了,如图就是成功了。

git clonessh://gitolite@localhost/gitolite-admingit

GitLab是GitHub的免费私有库替代方案,并且安装与配置都很方便。

GitLab要求最少4GB内存,支持小团队使用没问题,实测2GB内存的VPS基本没法用,开swapfile也不行,动不动就60秒超时。因此4GB内存是必须的。

关于这一点,内存大户主要是Unicorn,基于ruby的http服务器。Unicorn会在启动后预先占用大部分内存,内存会随着使用逐渐增长,并且不会释放。根据GitLab和Unicorn的官方文档,这不是它们的锅,那么这个锅可能是ruby和rails了。解决方法是unicorn-work-kill,会根据请求次数和内存占用自动重启Unicorn。Omnibus版的GitLab是默认开启的。

GitLab分为社区版和企业版,在未付费的情况下,两者的功能是一样的。并且社区版整合了CI/CD,因此可以满足绝大部分的开发需求。

安装包主要包括Omnibus整合包,Docker、AWS等的云镜像,以及一些第三方维护的版本。其中Omnibus直接整合了所有服务端组件,适合自用和练手。

安装以Omnibus整合包为例,操作系统为Ubuntu1604。

Gitlab需要 curl,openSSH 和 ca-certificates 这几个组件:

不过服务器系统一般自带,所以是可选的。

邮件服务,用于GitLab发送找回密码的邮件:

不过如果服务器没有域名的话,大部分邮箱会拒收邮件,而管理员帐号可以直接重置其他账号的密码,所以是可选的。

官方提供的脚本:

这个脚本会自动添加源到apt 的source list,以及安全key。另外,如果自己服务器在国内,脚本会自动添加清华的镜像,速度还行。

先更新apt缓存:

推荐使用 apt 而不是 apt-get ,前者大多数情况下更简单一点。

然后是安装:

其中 EXTERNAL_URL ,改成自己的域名。没有域名的话,可以直接设置成IP的形式: http://1234 ,这个推测跟nginx服务以及GitLab中的项目地址有关,所以最好正确设置。当然也可以之后在配置文件里更改。

安装完成后,可以在配置文件中修改配置 /etc/gitlab/gitlabrb 。

比如之前的 EXTERNAL_URL :

官方还有一个关于 unicorn 的优化建议:

默认值是2,如果服务器只用于GitLab的话,官方建议是CPU核心数加一,可以提高服务器的响应速度。不过如果内存只有4G,或者服务器同时承载其他服务,就不要改了,以免内存不足。另外,这个参数最小值是2,设为1,服务器可能会卡死。

配置完成后,刷新配置:

每次修改完 gitlabrb ,都要刷新配置。

如果没有报错的话,GitLab就配置完毕并且正常运行了。接下来可以打开浏览器开始访问了。

1,在用作服务器的机器上创建 git 账户。我们可以通过 系统偏好设置 -> 用户与群组 来添加。账户权限给的是 管理员 权限为了方便操作。

2,设置远程访问

系统偏好设置 -> 共享 中,勾选 仅这些用户 允许访问。

1,验证Git用户

$ ssh git@yourComputerNamelocal

按提示输入git用户的密码,如图出现~ git$ 提示则说明登陆成功。

2, 生成 ssh rsa 公钥

注意:这里有个需要注意的地方,/etc文件夹可能没有sshd_config文件,只有有一个 sshd_config~previous 文件,那我们操作的文件就换成 sshd_config~previous

这样,我们就完成了在Mac中搭建私有Git Server的操作。

如果你的应用场景是企业级也可以参考这篇来设置服务器上的Git Server,或者搜索Gitosis、Gitolite、Gitlab之类的管理软件。

第一步,下载gitblit

http://gitblitcom/

这里当然是选择linux/osx的版本。下载下来是一个targz的压缩文件,我下载时最新版本是gitblit-171targz

第二步,配置gitblit

创建目录,作为git服务器存储数据的根目录,比如我这里的目录是:

/Users/xxxx/gitserver/gitRepository

解压第一步下载的文件,然后进入data子目录,找到defaultsproperties打开。这里的很多配置项都可以使用缺省,不过一般会把

gitrepositoriesFolder配置下。这里就配置成上面新建的目录gitRepository的路径。

然后找到serverhttpPort,设定http协议的端口号,这个端口号理论上来说可以随便指定,这里我设置成7070。

保存,关闭

启动gitblit服务,这里我只给出手动启动的方式(自动随系统启动还没研究,哈哈),其实手动方式也不麻烦,安装包里做好了可执行的脚本,我们只要在

终端运行就可以了,如下所示:

第三步,测试git服务器

打开浏览器,输入http://localhost:7070/(localhost也可以换成你本机的ip地址),进入gitblit web管理页面:

默认的用户名和密码是admin,强烈建议登陆后修改密码。登陆后创建一个用户,然后在该用户下创建项目目录,这里叫leanrgit

然后用本地的一个git工作目录与之关联,就可以commit,push这些操作了:

说明:Git,Github,GitLab三者关系。

Git - 是一款自由和开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。(svn是集中化的版本控制系统)。

GitHub - 是一个面向开源及私有软件项目的托管平台(也就一个网站),提供给用户空间创建git仓储,保存用户的一些数据文档或者代码等。它可以托管各种git库,并提供一个web界面。被戏称为“全世界最大的同性交流社区”。

GitLab - 基于Git的项目管理软件。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

当然啦国内开源中国出的“码云”,第一次听得人还以为是“马云”。我酱紫。它跟Github功能差不多,都能建立公有和私有的仓库。不过嘛感觉有点封闭,社区没有Github热闹。

有的人就说啦,我完全可以在Github或者GitLab上做远端代码仓库,为啥还要倒腾GitLab自建代码托管系统?就一个字: “代码安全性”(公司保密规定)。 对于公司来说,GitLab让开发团队对他们的代码仓库拥有更多的控制,相比于GitHub,它有不少的特色:

一、自建代码托管系统都需要做些什么工作?

1 选择开源软件

Git 大家族的 GitLab ,它提供了完善的用户权限管理,除了涵盖 Git 所有的功能,同时又提供方便的后台管理。分别有CE(社区版)、EE(企业版)、OM(RPM 包完整版)三个版本,目前市面上开发者们的普遍选择是使用 CE 版的源码,成本较低且相对方便。

2 硬件设施方面

如果是对于中小型企业来讲,自建机房一般成本较高,所以除非是大型集团企业。现在市面上存在太多的云服务器厂商,平均价格多在 5000元/年以上,都是不错的选择。

可能遇到的坑:

3由于个人眼界以及信息不对称,目前大部分公司都是在公司局域网内自行用GitLab搭建代码托管系统。部署Gitlab 是对服务器有配置要求的建议是CPU两核,内存4G以上。个人经验,勿喷啦。

二、搭建过程(这里仅是作者接触的,其实还有很多更高级的盘法)

Gitlab的服务构成

1搭建方法分为:传统方式安装GitLab和Docker安装(推荐)。

2传统安装过程(平台使用centos7安装)

安装和配置必要的依赖项:

安装Postfix以发送通知邮件:

在安装Postfix期间,可能会出现配置屏幕。选择“Internet Site”并按enter键。使用您的服务器的外部DNS以“mail name”并按enter。如果出现额外的屏幕,继续按enter键接受默认值。

添加GitLab镜像源并安装gitlab服务器:

注意这里设置的端口不能被占用,默认是8080端口,如果8080已经使用,请自定义其它端口,并在防火墙设置开放相对应得端口。

重置并启动GitLab:

访问 GitLab页面:如果没有域名,直接输入服务器ip和指定端口进行访问

获取/修改超级管理员root的密码:

最后我们使用默认的账号:root 和刚刚设置好的密码12345678进行登录。

后面的步骤配置SSH key,git Bash的global config等初始化设置跟GitHub一样。可是还有一点就是“汉化”。(英文不好的小伙伴)但是有一定风险,后面我打开报502错误。有两种方法:用git比对出英文与中文的补丁,将英文打补丁。第二是直接下载中文版,替换英文。

3Docker安装(推荐)

(1)配置docker镜像

直接从 docker hub 获取的话速度非常慢,所以需要配置一个镜像。我使用的是 daocloudio提供的加速器,速度很快。

(2)获取 GitLab 镜像

下载完成后,查看镜像列表

(3)启动容器

3个--publish指定容器与主机的端口映射,分别是 http、https、ssh

3个--volume指定数据卷的映射,分别是 gitlab 的 配置、日志、数据

(4)配置外部访问 URL

修改 gitlab 配置文件:

找到 external_url 这一项修改为自己服务器的访问地址:

保存后,重启容器

(5)访问

初次访问时,gitlab 要求我们重置管理员密码,修改完成后登录。默认用户root。

当然以上为个人实验,公司里面大部分为CTO等大佬已经搭建完毕,我们主要是折腾。

最后推荐个人用很顺手的工具: SourceTree (可视化界面的Git),当然啦要想成为大牛或者装13也好,还是从Git Bash里敲命令行。

1创建Gitblit安装目录

首先我们将在我们的服务器上建立一个目录,并在该目录下安装最新的Gitblit。

$ sudo mkdir -p /opt/gitblit$ cd /opt/gitblit

创建gitblit目录

2 下载并解压

现在,我们将从Gitblit官方站点下载最新版的Gitblit。这里我们将安装162版本。所以,请在安装时根据具体的版本对命令进行修改。

$ sudo wget http://dlbintraycom/gitblit/releases/gitblit-162targz

下载gitblit安装包

接下来,我们将下载到的tar压缩包解压至之前创建的目录 /opt/gitblit/

$ sudo tar -zxvf gitblit-162targz

解压gitblit压缩包

3配置并运行

现在,我们将对Gitblit进行配置。如果你想要定制Gitblit的行为,你可以修改gitblit/data/gitblitproperties。在完成配置后,我们将运行安装好的gitblit。有两种方式来运行gitblit,第一种是通过下面的命令手动运行:

$ sudo java -jar gitblitjar --baseFolder data

另一种是将gitblit添加为服务。下面是在linux下将gitblit添加为服务的步骤。

由于我在使用Ubuntu,下面的命令将是 sudo cp service-ubuntush /etc/initd/gitblit,所以请根据你的发行版修改文件名service-ubuntush为相应的你运行的发行版。

$ sudo /install-service-ubuntush$ sudo service gitblit  start

启动gitblit服务

在你的浏览器中打开http://localhost:8080或https://localhost:8443,也可以将localhost根据本地配置替换为IP地址。输入默认的管理员凭证:admin / admin并点击login按钮。

gitblit欢迎页面

现在,我们将添加一个新的用户。首先,你需要以admin用户登录,username = admin,password = admin。

然后,点击用户图标 > users > (+) new user 来创建一个新用户,如下图所示。

添加新用户

现在,我们将创建一个开箱可用的仓库。点击 repositories > (+) new repository。然后,如下图所示添加新的仓库。

添加新的仓库

使用命令行创建一个新的仓库

touch READMEmd    git init    git add READMEmd    git commit -m "first commit"    git remote add origin ssh://arunlinoxide@localhost:29418/linoxidecomgit    git push -u origin master

请将其中的用户名arunlinoxide替换为你添加的用户名。

在命令行中push一个已存在的仓库

git remote add origin ssh://arunlinoxide@localhost:29418/linoxidecomgit    git push -u origin master

注意:强烈建议所有人修改用户名“admin”的密码。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 怎样在Ubuntu 14.04中搭建gitolite git服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情