GitLab简介
GitLab是一个用于仓库管理系统的开源项目,项目首页:http://gitlab.org/
使用Git作为版本控制工具,并在此基础上搭建起web服务。web服务使用的ruby on rails,并使用了gitolite协同工作。使用mysql和redis作为数据服务。
一键安装脚本
请访问:https://github.com/mattias-ohlsson/gitlab-installer/blob/master/gitlab-install-el6.sh 。本文并未使用一键安装脚本。由于自定义了mysql和redis,因此有些配置是自己手动实现的。
安装系统依赖
如果安装了redis,下面的脚本中就将redis去掉。
# yum -y install readline readline-devel ncurses-devel gdbm-devel glibc-devel tcl-devel openssl-devel curl-devel expat-devel db4-devel byacc sqlite-devel gcc-c++ libyaml libyaml-devel libffi libffi-devel libxml2 libxml2-devel libxslt libxslt-devel libicu libicu-devel system-config-firewall-tui python-devel redis mysql-devel postgresql-devel
请注意libicu-devel,请注意安装时是否成功安装,如果不成功,将会在后面的安装过程出现错误,安装失败请手动安装libicu-devel安装Ruby
先安装qt
#
yum install qt-devel qtwebkit-devel -y
查看系统中ruby的版本,gitlab需要ruby至少是1.9.3
# curl -O http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p0.tar.gz
# tar xzvf ruby-1.9.3-p0.tar.gz
# cd ruby-1.9.3-p0
# ./configure --disable-install-doc
更新gem&安装rails
可以先更新一下gem,再安装rails
# gem update --system
# gem update
# gem install rails
安装gitolite
创建git和gitlab用户,并加入组
# adduser --system --shell /bin/bash --comment 'gitolite' --create-home --home-dir /home/git git
# adduser --shell /bin/bash --create-home --home-dir /home/gitlab gitlab
# usermod -a -G git gitlab
# usermod -a -G gitlab git
# sudo -H -u gitlab ssh-keygen -q -N '' -t rsa -f /home/gitlab/.ssh/id_rsa
# cp /home/gitlab/.ssh/id_rsa.pub /home/git/gitlab.pub
# chmod 0444 /home/git/gitlab.pub
安装gitolite
sudo -H -u git git clone -b gl-v304 https://github.com/gitlabhq/gitolite.git /home/git/gitolite
切换到git用户
su git
$ cd /home/git
$ git clone -b gl-v304 https://github.com/gitlabhq/gitolite.git /home/git/gitolite
$ mkdir bin
$ gitolite/install -ln /home/git/bin
$ bin/gitolite setup -pk /home/git/gitlab.pub
修正权限
# chmod -R g+rwX /home/git/repositories/
# chown -R git:git /home/git/repositories/
# chmod 750 /home/git
检查权限是否生效:
# sudo -u gitlab -H git clone git@localhost:gitolite-admin.git /tmp/gitolite-admin
安装pygments和bundle
# easy_install pip
# pip install pygments
# gem install bundler
安装补充依赖
# gem install ruby-debug19
# gem install charlock_holmes
安装gitlabhq
在gitlab用户下安装
# su gitlab
$ cd /home/gitlab
$ git clone -b stable https://github.com/gitlabhq/gitlabhq.git gitlab
修改配置
请注意:三个文件的配置需要根据自身修改。比如database.yml指定了mysql服务的配置信息。gitlab中指定了host,port,repositories目录等信息,需要一一修改。
$ cd /home/gitlab/gitlab/config
$ cp gitlab.yml.example gitlab.yml
$ cp database.yml.mysql database.yml
$ cp unicorn.rb.example unicorn.rb
再安装一些依赖
# cd /home/gitlab/gitlab
# sudo -u gitlab -H bundle install --without development test sqlite postgres --deployment
配置gitlab的git用户信息
# sudo -u gitlab -H git config --global user.email "gitlab@localhost"
# sudo -u gitlab -H git config --global user.name "Gitlab"
安装,初始化程序
注意,此时需要有一个mysql的服务,并在database.yml中配置好用户名和密码。
如果没有安装mysql,可以执行:
# yum install mysql-client mysql-server
# sudo gitlab
$ cd /home/gitlab/gitlab
$ RAILS_ENV=production rake db:setup
$ RAILS_ENV=production rake db:seed_fu
运行一下看看:)
$ nohup bundle exec rails s -e production > /home/gitlab/gitlab.log 2>&1 &
访问地址:
http://127.0.0.1:3000
默认的管理员密码
user: admin@local.host
pass: 5iveL!fe
配置nginx
从gitlabhq下载nginx配置文件:https://github.com/gitlabhq/gitlab-recipes/blob/master/nginx/gitlab
注意,需要修改nginx的启动用户:
#user nginx;
user gitlab root;
启动脚本
放入/etc/init.d并启动服务:
# curl --output /etc/init.d/gitlabhq https://github.com/gitlabhq/gitlab-recipes/blob/master/init.d/gitlab-centos
# chmod 755 /etc/init.d/gitlabhq
# service gitlabhq start
如果出现以下信息表示启动成功:
Starting unicorn: [ OK ]
Starting sidekiq: [ OK ]
注意:gitlab.socket此时才在指定目录出现,而以上面的测试方式启动在3000端口的服务是无法获得unix的socket的。此时使用脚本启动完成后,nginx的配置也会生效。如果访问nginx proxy的地址后,出现css加载失败的情况,请执行下面命令后重启gitlab。
# bundle exec rake assets:precompile RAILS_ENV=production
之前曾经出现过ssh_key校验失败的错误,现在也没有复现了,考虑可能和更改使用socket方式有关,或者是因为执行了下面这条命令,具体原因无法分析了。# bundle exec rake gitlab:enable_namespaces RAILS_ENV=production
使用merge requests中出现错误提示:This repository does not have satellite. Ask administrator to fix this issue 需要执行下面的命令:# bundle exec rake environment gitlab:enable_automerge RAILS_ENV=production
执行中如果出现错误:Updating repo permissions ... ... done Creating satellites for ... Administrator / tongji-app ... rake aborted! No such file or directory - chdir需要手动创建目录
# mkdir /home/gitlab/gitlab-satellites
没有评论:
发表评论