自己动手搭建GitLab

来源:互联网 发布:马伯乐了知 编辑:程序博客网 时间:2024/06/06 00:56

环境搭建


 

安装依赖

本机装个虚机VM或申请个部门内网虚机 + CentOS 6。然后通过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

 

下载一键安装包并安装

[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服务器即可。

 

配置与启动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!

 

打开浏览器并登录

可以在本地先配置hosts:

比如:XXx.XXX.XXX.XXX localhost(可根据服务器中的域名来配置)

这样在浏览器中直接输入http://localhost来访问GitLab

(1)默认的Administrator的账号和密码

    Username: root             Password: 5iveL!fe

(2)第一次登录,会自动跳转到修改密码页面,修改成想要的密码即可。

(3)管理员登录后可以修改自己的邮件信息等

集成Idap


备注:如果没有这个文件 /etc/gitlab/gitlab.rb就自己建一个,然后如下操作。

 

修改配置文件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

 

修改文件gitlab.yml

就搭建过程来看,上一步完成后,基本不需要修改这个文件。该文件所在路径 /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: '密码略'   -------à同上

 

重新配置与启动GitLap

[root@localhost /]# sudo gitlab-ctl reconfigure

tips:只要修改配置文件就需要重启

重新打开页面,见下图:使用域账户登录即可

遇到的坑儿

 

提示“retry later或422…..”

 推测:可能配置文件修改后没有reconfigure,可以尝试重新执行:

解决:[root@localhost /]# sudo gitlab-ctl reconfigure

通常问题就可以解决了!

 

查看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

 

在服务器重启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

 

 "Missing credentials"错误

出现如下图所示错误:

(1)解决修改如下:应该是步骤1中的下面3个配置有误:

uid: 'sAMAccountName'   -------à默认,不用动

base: 'DC=xxxxxx,DC=com'  -------à可咨询部门ops

       bind_dn: 'gitlibldap@XXXX.com'  -------à可咨询部门ops

       password: '密码略'   -------à可咨询部门ops

(2)重新打开浏览器,用域账号登录即可。

 

修改访问页面URL

 即访问页面的url从http://localhost/........修改成http://gitlab.XXXXX.com/...........

(1)解决方法:修改hostname

A、修改/etc/sysconfig/network中的hostname

B、修改/etc/hosts文件

C、重启系统reboot

(2)执行reconfig命令后,重新登录并查看或新建项目。(如果重启系统后,无法访问web页报错503,查看下面的解决方法)

 

重启后web端无法访问

推测:可能与apache服务启动,相冲突了。

解决:需要杀掉并卸载httpd

[root@gitlab ~]# netstat -tulnp | grep 80    --->找到httpd的pid

[root@gitlab ~]# kill -9 pid    --->杀掉httpd

[root@gitlab ~]# yum -y remove httpd     --->卸载httpd

卸载之后,应该可以正常登录!

 

使用GitLab中的SSH keys

备注:SSH key提供了一种与GitHub通信的方式,通过这种方式,能够在不输入密码的情况下,将GitHub作为自己的remote端服务器,进行版本控制。

操作步骤:

(1)    如下图

(2)    如下图(title随便填一个即可,图中写的不用填写,是指默认填充的话,不用填写)

(3)    上图中的key值需要在,本地windows中生成并查找(需要先安装git)

打开git bash,执行命令:ssh-keygen -t rsa -C "xxxxxxx@XXXXX.com"

 会出现类似下面的信息,一路默认enter键即可:

然后,在图中找到 ~/.ssh/id_rsa.pub文件,右键记事本打开查看ssh key内容。最后复制内容放到(3)中的key输入框中保存即可,详见(4)图。

(4)    如下图

(5)添加成功的话,显示如下图:

(6)    当当SSH keys增加后,无需用户名和密码即可通过本地cmd或git-bush下载或上传代码等,如:

(7)    如果从windows下载的话,其实也可以用tortoise-git工具(类似tortoise-svn)

具体的使用详见使用说明文档《GitLab的使用说明.doc》有图有真相。

 

新旧gitlab服务器更换问题

当新旧gitlab服务器更换的时候,可能会出现如下问题:“在本机无法clone下来”,如下图所示:

这个报错的原因是,我们clone的还是老的服务器配置的域名gitlab.XXXXXX.com。

需要OPS协助在后台服务器改这个域名对应的ip地址即可!

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


点击打开链接

原创粉丝点击