怎样在Ubuntu 14.04中搭建gitolite git服务器
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”的密码。
0条评论