本文主要是介绍gerrit、gitlab以及jenkins整合(未完待续),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在bitnami上下载一键安装的gitlab。是直接在vmware上运行的。以我这边为例,它启动后,地址为192.168.48.143,这个就如同github的地址。默认用户是root,密码是bitnami1.可以自己注册一个账号。我们可以用root用户创建一个group,里面可以添加用户,在group中创建一个工程,并给工程添加用户,注意不能用Guest角色。那样会导不出工程。
gitlab可以不使用ssh。而是使用http,因为这边环境老是出现拒绝连接的现象。不过要注意用http时,要先使用 git config --global http.sslVerify false才行,否则报unable to access 'https://': SSL certificate problem: self signed certificate...
--------------------------------------------
安装gerrit,比较繁琐。与gitlab不在一个服务器上,ip为12.168.48.131.需要git+apache+nginx+gerrit。centos7安装git、apache、nginx这里就不介绍了。前两者的安装参考http://blog.csdn.net/mqmmx/article/details/47058739。
之后就是安装gerrit,除了auth那一块使用http,其它可以一路默认,之后对在类似/home/gerrit/gerrit_site/etc中的gerrit.config进行修改,之后就是nginx配置文件的修改。附上我的nginx配置文件:
server {
listen 81;
server_name localhost;
allow all;
deny all;
auth_basic "Welcomme to Gerrit Code Review Site!";
auth_basic_user_file /home/gerrit/gerrit.password;
location / {
proxy_pass http://localhost:8080;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
}
}
其中8080是gerrit的服务端口。这部分我主要参考了http://blog.csdn.net/peterxiaoq/article/details/73330314
apache 主要就是用来操作 htpasswd -c /home/gerrit/gerrit.password admin,就是为gerrit创建一个用户,第二次使用htpasswd -m /home/gerrit/gerrit.password gerrit来创建用户,第一次登录gerrit的用户就是管理员,可以配置多个用户。连接gerritt就要使用ssh了。
可以用命令连接gerrit:
ssh-keygen -t rsa -C "管理员" -f ~/.ssh/admin 可以创建admin的秘钥,windows如果有git bash,那么也可以用这个命令。注意“管理员”是gerritweb页面中的fullname,可以在web中设置,非username。 windows的git bash可以用ssh -T -p 29418 gerrit@192.168.48.131测试能否连接
ssh -p 29418 -i ~/.ssh/admin 192.168.48.131 -l admin。就会去登录。如果觉得麻烦,可以在.ssh中创建一个文件config,写入:
Host ha
HostName 192.168.1.101
User admin # 注意:这里的admin是gerrit注册的用户名
Port 29418
IdentityFile ~/.ssh/admin
下次用ssh ha就可以了。如果报Bad owner or permissions on /home/gerrit/.ssh/config。那么就用chmod 600 config(普通用户也能执行这个命令,非root)。
--------------------------------------------------------------------------------------------------------------------
从gitlab克隆一个项目,可以使用ssh,也可以使用http,我就是使用了http。git clone https://192.168.48.143/dev-group/mygitlab1.git就可以pull过来,但是需要gitlab的用户和密码的。如果报403,那么就是你填写的用户可能是guest,用developer就不会了。如果unable to access 'https://': SSL certificate problem: self signed certificate...,那么就要
使用git config --global http.sslVerify false了。拷贝下来之后,文件是在home/gerrit下的。
你可以修改,诸如:
$ git config --global user.name 'gerrit'
$ git config --global user.email 'gerrit@example.com'
$ touch testfile
$ git add testfile
$ git commit -m 'gerrit add testfile'
$ git push
但一般用户没有push的权限。这里参考了http://www.cnblogs.com/kevingrace/p/5651447.html(很有用)
-----------------------------------------------------------------------------------------------------------------------------------------------
jenkins我是用windows搭建的,安装Gerrit Trigger插件和Git plugin插件,后者貌似自带的。
然后在系统管理中找到Gerrit Trigger,创建服务,名字自定义,
要填的如下:
Hostname 192.168.48.131
Frontend URL http://192.168.48.131:8080
SSH Port 29418(注意你的192.168.48.131服务器要开放这个端口)
Username gerrit
SSH Keyfile 就是windows下用git bash生成的gerrit文件(ssh-keygen -t rsa -C "gerrit" -f ~/.ssh/gerrit)。gerrit.pub中的内容拷贝到gerrit的ssh key中(通过192.168.48.131:81反向代理的web页面)(ssh-keygen -t rsa -C “admin@example.com”也可以生成ssh key)
SSH Keyfile Password 我们不用填。点击测试,如果成功,就保存。如果报错:
管理员(admin)登录gerrit服务器
Projects->List->All-Projects
Projects->Access
Global Capabilities->Stream Events 点击 Non-Interactive Users
添加 gerrit 用户到 ‘Non-Interactive Users’ 组试试。
-----------------------
save后,点击红色球会变蓝即可。
这篇关于gerrit、gitlab以及jenkins整合(未完待续)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!