自己动手搭建GitLab

  • 5825

目录

GitLab概述

为什么要搭建GitLab?

(纯粹是闲的无聊)

软件配置管理工具对比

SVN,GIT,TFS,VSS等等(自行百度-略)

GitLab简介

(自行百度-略)

GitLab安装

安装要求

自行百度,本文是基于虚拟机+centOS 6的GitLab搭建

安装方法

参考GitLab在GitHub上的Wiki页面,详细步骤如下

GitLab环境搭建

1进入服务器 
本机装个虚机或申请个部门内网虚机 + CentOS 6 
2安装与配置必要的依赖 
[参考]https://about.gitlab.com/downloads/ 
这里写图片描述 
选择select Operation System->CentOS 6(…….Linux 6),查看相应信息 
这里写图片描述 
顺序执行如下命令(附截图): 
[root@localhost /]# sudo yum install openssh-server 
这里写图片描述 
这里写图片描述 
[root@localhost /]# sudo yum install postfix 
这里写图片描述 
这里写图片描述 
[root@localhost /]# sudo yum install cronie 
这里写图片描述 
这里写图片描述 
[root@localhost /]# sudo service postfix start 
这里写图片描述 
[root@localhost /]# sudo chkconfig postfix on 
这里写图片描述 
[root@localhost /]# sudo lokkit -s http -s ssh

3下载一键安装包并安装 
[root@localhost /]# 
curl -O https://downloads-packages.s3.amazonaws.com/centos-6.6/gitlab-7.9.0_omnibus.2-1.el6.x86_64.rpm 
这里写图片描述
备注:因为公司网络的原因,上面的一键安装包,可能下载失败,可以通过其他途径,下载后放到服务器根目录后,执行下面的命令 
[root@localhost /]# sudo rpm -i gitlab-7.9.0_omnibus.2-1.el6.x86_64.rpm 
这里写图片描述
报错了?啥原因? 
推测:可能是因为从windows下载并拷贝rpm到linux,导致rpm包文件大小不一致造成的。 
解决:scp命令直接将gitlab-7.9.0_omnibus.2-1.el6.x86_64.rpm文件从A服务器拷贝到B服务器即可。

4配置与启动GitLab 
执行下面的命令即可 
[root@localhost /]# sudo gitlab-ctl reconfigure 
类似如下的信息: 
* execute[initialize gitlab-rails database] action nothing (skipped due to action :nothing) 
* execute[initialize gitlab-ci database] action nothing (skipped due to action :nothing) 
* bash[migrate gitlab-rails database] action nothing (skipped due to action :nothing) 
* bash[migrate gitlab-ci database] action nothing (skipped due to action :nothing) 
Running handlers: 
Running handlers complete 
Chef Client finished, 2/160 resources updated in 5.431179057 seconds 
gitlab Reconfigured!

5打开浏览器并登录 
可以在本地先配置hosts: 
比如:XXx.XXX.XXX.XXX localhost(可根据服务器中的域名来配置) 
这样在浏览器中直接输入http://localhost来访问GitLab 
这里写图片描述 
(1)默认的Administrator的账号和密码 
Username: root Password: 5iveL!fe 
(2)第一次登录,会自动跳转到修改密码页面,修改成想要的密码即可。 
(3)管理员登录后可以修改自己的邮件信息等 
这里写图片描述 
修改其他信息的(略)

GitLab集成Idap

备注:如果没有这个文件 /etc/gitlab/gitlab.rb就自己建一个,然后如下操作。 
1、修改配置文件 /etc/gitlab/gitlab.rb 修改下面地址为你hostname或ip 
external_url = ‘gitlab.test.com’

在/etc/gitlab/gitlab.rb 追加ldap配置,如下:

For omnibus packages

gitlab_rails[‘ldap_enabled’] = true 
gitlab_rails[‘ldap_servers’] = YAML.load <<-EOS # remember to close this block with ‘EOS’ below 
main: # ‘main’ is the GitLab ‘provider ID’ of this LDAP server 
label: ‘LDAP’ ——-à默认,不用动 
host: ‘xxx.xxx.xxx.xxx’ ——-à详细咨询部门ops 
port: xxx ——-à详细咨询部门ops 
uid: ‘sAMAccountName’ ——-à默认,不用动 
method: ‘plain’ # “tls” or “ssl” or “plain” ——-à默认,不用动 
allow_username_or_email_login: true ——-à默认,不用动 
#base: ‘OU=XXXXXXXXX,DC=XXXXXXXXX,DC=com’ ——-à如需配置可咨询部门ops 
#bind_dn: ‘CN=gitlibldap,OU=XXXXXXXXX,DC=XXXXXXXXX,DC=com’ –à如需配置可咨询部门ops 
#password: ‘密码略’ ——-à之前配置的,有问题 
base: ‘DC=xxxxxx,DC=com’ ——-à可咨询部门ops 
bind_dn: ‘gitlibldap@XXXX.com’ ——-à可咨询部门ops 
password: ‘密码略’ ——-à可咨询部门ops 
#active_directory: true ——-à默认,不用动 
user_filter: ” ——-à默认,不用动 
EOS ——-à别忘了最后加EOS

2、修改文件gitlab.yml———-就搭建过程来看,第1步完成后,基本不需要修改这个文件 
该文件所在路径 /var/opt/gitlab/gitlab-rails/etc/gitlab.yml –à如需修改建议,在这里修改 
tips:/home/git/gitlab/config/gitlab.yml –à这个文件无需修改

2. Auth settings

# ========================== 
## LDAP settings 
ldap: 
enabled: true 
host: ‘xxx.xxx.xxx.xxx’ ——-à同上 
port: xxx ——-à同上 
uid: ‘sAMAccountName’ 
base: ‘DC=xxxxxx,DC=com’ ——-à同上 
bind_dn: ‘gitlibldap@XXXX.com’ ——-à同上 
password: ‘密码略’ ——-à同上

3、重新配置与启动GitLap 
[root@localhost /]# sudo gitlab-ctl reconfigure 
tips:只要修改配置文件就需要重启

4、重新打开页面,见下图:使用域账户登录即可 
这里写图片描述

GitLab的使用说明

(详见next《GitLab的使用说明》有图有真相)

GitLab使用问题汇总

1、可以看到登录界面,但是无法登录提示“retry later或422…..类似信息” 
推测:可能配置文件修改后没有reconfigure,可以尝试重新执行: 
解决: 
[root@localhost /]# sudo gitlab-ctl reconfigure 
通常问题就可以解决了!

2、如何在服务器查看GitLap是否正在运行? 
[root@localhost config]# sudo gitlab-ctl status 
run: logrotate: (pid 29012) 2700s; run: log: (pid 27288) 82266s 
run: nginx: (pid 27881) 81901s; run: log: (pid 27257) 82272s 
run: postgresql: (pid 27886) 81901s; run: log: (pid 27124) 82300s 
run: redis: (pid 27894) 81900s; run: log: (pid 27065) 82306s 
run: sidekiq: (pid 28407) 81844s; run: log: (pid 27229) 82278s 
run: unicorn: (pid 28455) 81819s; run: log: (pid 27187) 82284s

3、如何在服务器重启GitLap? 
[root@localhost config]# sudo gitlab-ctl restart 
ok: run: logrotate: (pid 32682) 0s 
ok: run: nginx: (pid 32686) 0s 
ok: run: postgresql: (pid 32691) 1s 
ok: run: redis: (pid 32700) 0s 
ok: run: sidekiq: (pid 32706) 1s 
ok: run: unicorn: (pid 32711) 0s

4、如果用域账号登录发现有如下问题: 
这里写图片描述 
或提示Could not authorize you from Ldapmain because “Missing credentials” 
(1)解决修改如下:应该是步骤1中的下面3个配置有误 
uid: ‘sAMAccountName’ ——-à默认,不用动 
base: ‘DC=xxxxxx,DC=com’ ——-à可咨询部门ops 
bind_dn: ‘gitlibldap@XXXX.com’ ——-à可咨询部门ops 
password: ‘密码略’ ——-à可咨询部门ops 
(2)重新打开浏览器,用域账号登录即可

5、域账号登录后新建项目,出现如下情况: 
这里写图片描述

这里写图片描述 
问题:如何将git@localhost,改成gitlab@XXXXX.com 
即访问页面的url从http://localhost/……..修改成http://gitlab.XXXXX.com/……….. 
(1)解决方法:修改hostname 
A、修改/etc/sysconfig/network中的hostname 
B、修改/etc/hosts文件 
C、重启系统reboot 
(2)执行reconfig命令后,重新登录并查看或新建项目 
(如果重启系统后,无法访问web页报错503,查看下面的6)

6、服务器重启后,出现web端访问不了的情况: 
这里写图片描述
推测:可能与apache服务启动,相冲突了, 
解决:需要杀掉并卸载httpd 
[root@gitlab ~]# netstat -tulnp | grep 80 —>找到httpd的pid 
[root@gitlab ~]# kill -9 pid —>杀掉httpd 
[root@gitlab ~]# yum -y remove httpd —>卸载httpd 
卸载之后,应该可以正常登录!

7、如何使用GitLab页面中的SSH keys? 
备注:SSH keys是干什么的,自行百度 
操作步骤: 
(1) 如下图 
这里写图片描述 
(2) 如下图(title随便填一个即可,图中写的不用填写,是指默认填充的话,不用填写) 
这里写图片描述 
(3) 上图中的key值需要在,本地windows中生成并查找(需要先安装git,自行百度) 
打开git bash,执行命令:ssh-keygen -t rsa -C “wangjie@dangdang.com”

会出现类似下面的信息,一路默认enter键即可: 
这里写图片描述 
然后,在图中找到 ~/.ssh/id_rsa.pub文件,右键记事本打开查看ssh key内容 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC90olFVGYf7ZkjyAe1eWJ1nTWAlaQMiq0d2Y2k5UdCUr5/rngHd2q86OGM8odwNKdsi1I3YUoACO+jJ6/xCt+CpYk51glC0Sw7+wqHm6llH9+fxG9YdSrfAmGCFsDlkBPrcR+WyDJ1Hi2iAYf5iGl7ANwEfwhJGDIGC9GrAEE1Ji0aS8Q3XkXC5dSEb5yjDF0XUvjN1Zw0Y1JFJABt94fLjDEHgbaCmLckoRqwllp/ROJApFM5jso677/dVXgJY+aHg4nb8Nlmn8mmXEgxNEe8bSNTCTGYNgfy/TCDPCXDbLADtNI8B0qApPDaG+YpM/QQkIODR74iTvRuRQHtw5gt wangjie@dangdang.com 
最后复制内容放到(3)中的key输入框中保存即可,详见(4)图 
(4) 如下图 
这里写图片描述

(5) 添加成功的话,显示如下图: 
这里写图片描述 
(6) 当当SSH keys增加后,无需用户名和密码即可通过本地cmd或git-bush下载或上传代码等,如: 
这里写图片描述 
这里写图片描述 
(7) 如果从windows下载的话,其实也可以用tortoise-git工具(类似tortoise-svn,自行百度) 
具体的使用详见使用说明文档《GitLab的使用说明.doc》有图有真相

8、当新旧gitlab服务器更换的时候,可能会出现如下问题:“在本机无法clone下来” 
这里写图片描述 
这个报错的原因是,我们clone的还是老的服务器配置的域名gitlab.XXXXXX.com 
需要OPS协助在后台服务器改这个域名对应的ip地址即可! 

同时需要删除本机.ssh/known_hosts文件,重新配置sshkey即可,实现新服务器的git操作!


转自:https://blog.csdn.net/langhailove_2008/article/details/53921130

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值