@H_404_2@
2014-10-29 15:50@H_404_2@ 15368人阅读@H_404_2@ @H_404_2@GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。它提供Git版本控制、代码检查、Bug跟踪和Wiki,它可以通过LDAP或活动目录来进行安全认证和授权。单个GitLab可以支持25000个用户,同时它也可以通过设置多台服务器来实现其高可用性。GitLab并没有被收入到Ubuntu14.04软件库中,但安装GitLab却也十分方便,下面讲讲如何安装GitLab:
首先照着GitLab的官方文档,输入以下命令:
wget -c https://downloads-packages.s3.amazonaws.com/ubuntu-14.04/gitlab_7.0.0-omnibus-1_amd64.deb
sudo@H_404_2@ apt-get@H_404_2@ install openssh-server
sudo apt-get@H_404_2@ install postfix
sudo dpkg -i gitlab_7.0@H_404_2@.0@H_404_2@-omnibus-1@H_404_2@_amd64.deb@H_404_2@
因为GitLab这个包的地址下载速度很慢,还经常出现断点,所以在wget后加上了-c这个参数。安装openssh-server这句其实可以去掉,因为我一般都是在安装服务器的时候就勾选安装了这个服务,毕竟需要远程登录服务器嘛!Postfix是邮件服务,如果不安装这个服务的话,也可以安装Sendmail或Exim等相似的邮件服务(如果有邮件服务器的话,这一步可以忽略,可以通过gitlab-ctl来重配置SMTP服务)。
接下来是设置GitLab的域名:
sudo@H_404_2@ mkdir -p /etc/gitlab
sudo touch /etc/gitlab/gitlab.rb
sudo chmod 600@H_404_2@ /etc/gitlab/gitlab.rb
sudo vi /etc/gitlab/gitlab.rb@H_404_2@
然后添加一条域名配置:
external_url "# 如果没有安装Postfix或Sendmail这类邮件服务的话,那么就需要象邮件客户端那样根据SMTP服务器的参数来设置以下的内容了 gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.server" gitlab_rails['smtp_port'] = 456 gitlab_rails['smtp_user_name'] = "smtp user" gitlab_rails['smtp_password'] = "smtp password" gitlab_rails['smtp_domain'] = "example.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true
然后对GitLab进行重配置即可:
sudo@H_404_2@ gitlab-ctl reconfigure@H_404_2@
注意:正如GitLab大多数配置文件(如gitlab.yml或database.yml等)中所注释的那样:
# This file is managed by gitlab-ctl. Manual changes will be@H_404_2@
# erased! To change the contents below,edit /etc/gitlab/gitlab.rb@H_404_2@
# and run `sudo gitlab-ctl reconfigure`.@H_404_2@
在GitLab中的大部分关于配置方面的修改,现在都需要在/etc/gitlab/gitlab.rb中进行设置,然后再运行sudo gitlab-ctl reconfigure进行修改。
如果对如何配置gitlab.rb有兴趣的话,可以参见:https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md这个网址,基本上已经讲得很清楚了。
接下来就是检测是否安装成功了,可以输入下面的命令:
sudo gitlab-ctl status
[sudo] password for@H_404_2@ firehare:
run: Nginx: (pid 13334@H_404_2@) 16103@H_404_2@s@H_404_2@; run: log@H_404_2@: (pid 4244@H_404_2@) 22211@H_404_2@s@H_404_2@
run: postgresql: (pid 4153@H_404_2@) 22280@H_404_2@s@H_404_2@; run: log@H_404_2@: (pid 4152@H_404_2@) 22280@H_404_2@s@H_404_2@
run: redis: (pid 4070@H_404_2@) 22291@H_404_2@s@H_404_2@; run: log@H_404_2@: (pid 4069@H_404_2@) 22291@H_404_2@s@H_404_2@
run: sidekiq: (pid 4234@H_404_2@) 22212@H_404_2@s@H_404_2@; run: log@H_404_2@: (pid 4233@H_404_2@) 22212@H_404_2@s@H_404_2@
run: unicorn: (pid 4212@H_404_2@) 22218@H_404_2@s@H_404_2@; run: log@H_404_2@: (pid 4211@H_404_2@) 22218@H_404_2@s@H_404_2@
如果得到与上面相似的结果,那么说明你安装成功。
由于GitLab包自带了Ruby、Rails和Postgresql,所以也就不需要象以前那样考虑兼容性的问题了。最后只需要直接登录GitLab所在的服务器,并使用帐号root,密码5iveL!fe来登录GitLab。首次登录GitLab会强行让你重置密码,然后就可以进入GitLab了。
配置邮箱
$ @H_404_2@sudo vi /etc/gitlab/gitlab.rb
# Change the external_url to the address your users will type in their browser@H_404_2@
external_url 'http://xxhost.com'@H_404_2@
#Sending application email via SMTP@H_404_2@
gitlab_rails['smtp_enable'@H_404_2@]@H_404_2@ =@H_404_2@ true
@H_404_2@gitlab_rails['smtp_address'@H_404_2@]@H_404_2@ =@H_404_2@ "smtp.163.com"@H_404_2@
gitlab_rails['smtp_port'@H_404_2@]@H_404_2@ =@H_404_2@ 25
gitlab_rails['smtp_user_name'@H_404_2@]@H_404_2@ =@H_404_2@ "xxuser@163.com"@H_404_2@
gitlab_rails['smtp_password'@H_404_2@]@H_404_2@ =@H_404_2@ "xxpassword"@H_404_2@
gitlab_rails['smtp_domain'@H_404_2@]@H_404_2@ =@H_404_2@ "163.com"@H_404_2@
gitlab_rails['smtp_authentication'@H_404_2@]@H_404_2@ =@H_404_2@ :login
gitlab_rails['smtp_enable_starttls_auto'@H_404_2@]@H_404_2@ =@H_404_2@ true@H_404_2@
发送不成功,·sudo gitlab-ctl tail`检查日志报错如下:
2014@H_404_2@-@H_404_2@07@H_404_2@-@H_404_2@11_16@H_404_2@:@H_404_2@12@H_404_2@:@H_404_2@08@H_404_2@.@H_404_2@43945@H_404_2@ 2014@H_404_2@-@H_404_2@07@H_404_2@-@H_404_2@11@H_404_2@T16@H_404_2@:@H_404_2@12@H_404_2@:@H_404_2@08@H_404_2@Z@H_404_2@ 12595@H_404_2@ TID@H_404_2@-@H_404_2@dxf7c@H_404_2@ Sidekiq@H_404_2@::@H_404_2@Extensions@H_404_2@::@H_404_2@DelayedMailer@H_404_2@ JID@H_404_2@-@H_404_2@061604@H_404_2@dc558ce8560b273cbe@H_404_2@ INFO@H_404_2@:@H_404_2@ fail@H_404_2@:@H_404_2@ 0@H_404_2@.@H_404_2@574@H_404_2@ sec@H_404_2@
2014@H_404_2@-@H_404_2@07@H_404_2@-@H_404_2@11_16@H_404_2@:@H_404_2@12@H_404_2@:@H_404_2@08@H_404_2@.@H_404_2@44955@H_404_2@ 2014@H_404_2@-@H_404_2@07@H_404_2@-@H_404_2@11@H_404_2@T16@H_404_2@:@H_404_2@12@H_404_2@:@H_404_2@08@H_404_2@Z@H_404_2@ 12595@H_404_2@ TID@H_404_2@-@H_404_2@dxf7c@H_404_2@ WARN@H_404_2@:@H_404_2@ {@H_404_2@"retry"@H_404_2@=>@H_404_2@true@H_404_2@,@H_404_2@ "queue"@H_404_2@=>@H_404_2@"default"@H_404_2@,@H_404_2@ "class"@H_404_2@=>@H_404_2@"Sidekiq::Extensions::DelayedMailer"@H_404_2@,@H_404_2@ "args"@H_404_2@=>[@H_404_2@"---@H_404_2@\n@H_404_2@- !ruby/class 'Notify'@H_404_2@\n@H_404_2@- :project_access_granted_email@H_404_2@\n@H_404_2@- - 4@H_404_2@\n@H_404_2@"@H_404_2@]@H_404_2@,@H_404_2@ "jid"@H_404_2@=>@H_404_2@"061604dc558ce8560b273cbe"@H_404_2@,@H_404_2@ "enqueued_at"@H_404_2@=>@H_404_2@1405094359@H_404_2@.@H_404_2@354158@H_404_2@,@H_404_2@ "error_message"@H_404_2@=>@H_404_2@"553 Mail from must equal authorized user@H_404_2@\n@H_404_2@"@H_404_2@,@H_404_2@ "error_class"@H_404_2@=>@H_404_2@"Net::SMTPFatalError"@H_404_2@,@H_404_2@ "Failed_at"@H_404_2@=>@H_404_2@"2014-07-11 15:59:28 UTC"@H_404_2@,@H_404_2@ "retry_count"@H_404_2@=>@H_404_2@5@H_404_2@,@H_404_2@ "retried_at"@H_404_2@=>@H_404_2@2014@H_404_2@-@H_404_2@07@H_404_2@-@H_404_2@11@H_404_2@ 16@H_404_2@:@H_404_2@12@H_404_2@:@H_404_2@08@H_404_2@ UTC@H_404_2@}@H_404_2@
Google大法后,错误码对应解释网易服务器smtp机器要求身份验证帐号和发信帐号必须一致,如果用户在发送邮件时,身份验证帐号和发件人帐号是不同的,因此拒绝发送。
修改gitlab.rb,修改发信人和身份验证帐号一致,163发信OK。
$ @H_404_2@sudo vi /etc/gitlab/gitlab.rb
# Change the external_url to the address your users will type in their browser@H_404_2@
external_url 'http://xxhost.com'@H_404_2@
#Sending application email via SMTP@H_404_2@
gitlab_rails['smtp_enable'@H_404_2@]@H_404_2@ =@H_404_2@ true
@H_404_2@gitlab_rails['smtp_address'@H_404_2@]@H_404_2@ =@H_404_2@ "smtp.163.com"@H_404_2@
gitlab_rails['smtp_port'@H_404_2@]@H_404_2@ =@H_404_2@ 25
gitlab_rails['smtp_user_name'@H_404_2@]@H_404_2@ =@H_404_2@ "xxuser@163.com"@H_404_2@
gitlab_rails['smtp_password'@H_404_2@]@H_404_2@ =@H_404_2@ "xxpassword"@H_404_2@
gitlab_rails['smtp_domain'@H_404_2@]@H_404_2@ =@H_404_2@ "163.com"@H_404_2@
gitlab_rails['smtp_authentication'@H_404_2@]@H_404_2@ =@H_404_2@ :login
gitlab_rails['smtp_enable_starttls_auto'@H_404_2@]@H_404_2@ =@H_404_2@ true@H_404_2@
##修改gitlab配置的发信人@H_404_2@
gitlab_rails['gitlab_email_from'@H_404_2@]@H_404_2@ =@H_404_2@ "xxuser@163.com"@H_404_2@
user["git_user_email"@H_404_2@]@H_404_2@ =@H_404_2@ "xxuser@163.com@H_404_2@