GitLab,是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
开源项目地址:https://github.com/gitlabhq/gitlabhq
因为项目中要求系统为ubuntu ,公司的服务器系统为Centos,所以安装方法有些不同。
总的分为下面几个步骤
安装依赖包
创建系统账户
安装Ruby
安装Gitlab shell
搭建数据库环境
安装GitLab
搭建Nginx
1.安装依赖包
首先需要添加Epel源
[root@localhost~]rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
然后安装依赖包
[root@localhost~] yum -y groupinstall 'Development Tools' 'Additional Development'
[root@localhost~] yum -y install readline readline-devel ncurses-devel gdbm-devel glibc-devel tcl-devel openssl-devel curl-devel expat-devel db4-devel byacc gitolite 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
启动redis server数据库库服务
[root@localhost~]service redis start
将服务添加到启动项
[root@localhost~]chkconfig --levels 2345 redis on
创建系统帐户
[root@localhost~] mkdir -p /data/apps/
[root@localhost~] adduser sa_gitlab --home-dir=/data/apps/sa_gitlab
[root@localhost~] passwd sa_gitlab
切换到sa_gitlab用户,创建私有key
[root@localhost~] su - sa_gitlab
[sa_gitlab@localhost~] mkdir -p /data/apps/sa_gitlab/.ssh
[sa_gitlab@localhost~] chmod -R 700 /data/apps/sa_gitlab/.ssh
[sa_gitlab@localhost~] echo "" > /data/apps/sa_gitlab/.ssh/authorized_keys
[sa_gitlab@localhost~] chmod -R 600 /data/apps/sa_gitlab/.ssh/authorized_keys
[sa_gitlab@localhost~] ssh-keygen -q -N '' -t rsa -f /data/apps/sa_gitlab/.ssh/id_rsa
[sa_gitlab@localhost~] cat /data/apps/sa_gitlab/.ssh/id_rsa.pub >> /data/apps/sa_gitlab/.ssh/authorized_keys
安装ruby
Centos 6系统中缺省的ruby版本过低,需要手动编译安装。
[sa_gitlab@localhost~] mkdir temp
[sa_gitlab@localhost~] mkdir ruby
[sa_gitlab@localhost~] cd temp
[sa_gitlab@localhost~] wget -c "http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p392.tar.gz"
[sa_gitlab@localhost~] tar -xf ruby-1.9.3-p392.tar.gz
[sa_gitlab@localhost~] cd ruby-1.9.3-p392
[sa_gitlab@localhost~] ./configure --prefix=/data/apps/sa_gitlab/ruby
[sa_gitlab@localhost~] make
[sa_gitlab@localhost~] make install
设置sa_gitlab用户变量
[sa_gitlab@localhost~] vim ~/.bash_profile
修改$PATH变量为
PATH=$HOME/ruby/bin:$PATH:$HOME/bin;
保存文件退出。
[sa_gitlab@localhost~] vim ~/.bashrc
添加$PATH变量路径
PATH=$HOME/ruby/bin:$PATH:$HOME/bin;
保存并关闭文件。
[sa_gitlab@localhost~] PATH=$HOME/ruby/bin:$PATH:$HOME/bin;
确认ruby路径与版本是否为最新
[sa_gitlab@localhost~] which ruby
~/ruby/bin/ruby
[sa_gitlab@localhost~] ruby --version
ruby 1.9.3p392 (2013-02-22) [x86_64-linux]
安装bundler
[sa_gitlab@localhost~] gem install bundler
4. 安装gitlab shell
[sa_gitlab@localhost~] cd ~/
[sa_gitlab@localhost~] mkdir gitlab-shell
[sa_gitlab@localhost~] git clone https://github.com/gitlabhq/gitlab-shell.git gitlab-shell/
Configure gitlab-shell and install it
[sa_gitlab@localhost~] cd gitlab-shell/
[sa_gitlab@localhost gitlab-shell] git checkout v1.2.0
[sa_gitlab@localhost gitlab-shell] cp config.yml.example config.yml
[sa_gitlab@localhost gitlab-shell] vim config.yml
修改文件中的变量值为下面的值
user: sa_gitlab
gitlab_url: "http://www.yourdomain.com/"
repos_path: "/data/apps/sa_gitlab/repositories"
auth_file: "/data/apps/sa_gitlab/.ssh/authorized_keys"
安装gitlab shell
[sa_gitlab@localhost gitlab-shell]./bin/install
5.搭建Mysql数据库环境
[root@localhost~]yum -y install mysql mysql-server mysql-devel
[root@localhost~]service mysqld start
[root@localhost~]mysql_secure_installation 设置用户密码
mysql-uroot-p
# 创建用户密码
mysql>CREATEUSER'gitlab'@'localhost' IDENTIFIED BY 'gitlab';
# 创建数据库gitlabhq_production
mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
# 设置用户gitlab访问数据库权限。
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO 'gitlab'@'localhost';
# 退出mysql
mysql>\q
安装gitlab
[sa_gitlab@localhost~] cd ~/
[sa_gitlab@localhost~] mkdir gitlab
[sa_gitlab@localhost~] git clone https://github.com/gitlabhq/gitlabhq.git gitlab
[sa_gitlab@localhost~] cd gitlab
[sa_gitlab@localhost gitlab] git checkout 5-0-stable
编辑gitlab配置文件
[sa_gitlab@localhost~] cp config/gitlab.yml.example config/gitlab.yml
[sa_gitlab@localhost~] vim config/gitlab.yml
修改文件中的变量
host: git.yourdomain.com
port: 80
https: false
user: sa_gitlab
email_from: gitlab-noreply@git.yourdomain.com
support_email: you@yourdomain.com
path: /data/apps/sa_gitlab/gitlab-satellites/
repos_path: /data/apps/sa_gitlab/repositories/
hooks_path: /data/apps/sa_gitlab/gitlab-shell/hooks/
保存关闭文件。
设置文件夹的访问权限
[sa_gitlab@localhost~] chown -R sa_gitlab log/
[sa_gitlab@localhost~] chown -R sa_gitlab tmp/
[sa_gitlab@localhost~] chmod -R u+rwX log/
[sa_gitlab@localhost~] chmod -R u+rwX tmp/
创建satellites 文件夹并修改配置文件
[sa_gitlab@localhost~] mkdir /data/apps/sa_gitlab/gitlab-satellites/
[sa_gitlab@localhost~] mkdir tmp/pids/
[sa_gitlab@localhost~] chmod -R u+rwX tmp/pids/
[sa_gitlab@localhost~] cp config/unicorn.rb.example config/unicorn.rb
[sa_gitlab@localhost~] vim config/unicorn.rb
编辑文件中的变量值
listen "127.0.0.1:65527" # listen to port 8080 on the loopback interface
配置数据库连接文件
[sa_gitlab@localhost~] cp config/database.yml.mysql config/database.yml
将用户名密码修改为上面mysql配置中的用户密码
安装gitlab依赖库charlocks_holmes
[sa_gitlab@localhost~] cd ~/gitlab
[sa_gitlab@localhost gitlab] gem install charlock_holmes --version '0.6.9'
[sa_gitlab@localhost gitlab] vi Gemfile
替换source "https://rubygems.org" 为 source "http://rubygems.org" 保存文件退出
[sa_gitlab@localhost gitlab] /data/apps/sa_gitlab/ruby/bin/bundle install --deployment --without development test postgres
[sa_gitlab@localhost gitlab] /data/apps/sa_gitlab/ruby/bin/bundle exec rake gitlab:setup RAILS_ENV=production
[sa_gitlab@localhost gitlab] /data/apps/sa_gitlab/ruby/bin/bundle exec rake db:seed_fu RAILS_ENV=production
下载gitlab启动脚本并修改配置
[root@localhost~] curl --output /etc/init.d/gitlab https://raw.github.com/gitlabhq/gitlab-recipes/5-0-stable/init.d/gitlab
[root@localhost~] chmod +x /etc/init.d/gitlab
[root@localhost~] vim /etc/init.d/gitlab
APP_ROOT修改为 APP_ROOT="/data/apps/sa_gitlab/gitlab"
添加一行 APP_USER="sa_gitlab"
搜索与替换sudo -u git -H bash 为 sudo -u $APP_USER -H bash
保存启动脚本
启动gitlab
[root@localhost~] /etc/init.d/gitlab start
[root@localhost~] /etc/init.d/gitlab status
Gitlab service / Unicorn with PID 19988 is running.
Gitlab service / Sidekiq with PID 20031 is running.
[root@localhost~] chkconfig --add gitlab
[root@localhost~] chkconfig --levels 345 gitlab on
切换用户与检查安装是否有错误
[root@localhost~] su - sa_gitlab
[sa_gitlab@localhost~] cd gitlab
[sa_gitlab@localhost~] git config --global user.name "GitLab"
[sa_gitlab@localhost~] git config --global user.email "gitlab-noreply@git.yourdomain.com"
[sa_gitlab@localhost~] bundle exec rake gitlab:env:info RAILS_ENV=production
# 检查错误
[sa_gitlab@localhost~] bundle exec rake gitlab:check RAILS_ENV=production
6. 安装nginx
[root@localhost~] wget http://nginx.org/packages/centos/5/noarch/RPMS/nginx-release-centos-5-0.el5.ngx.noarch.rpm
[root@localhost~] rpm -U nginx-release-centos-5-0.el5.ngx.noarch.rpm
[root@localhost~] yum update
[root@localhost~] yum install nginx
# 下载nginx配置文件
curl --output /etc/nginx/conf.d/gitlab.conf https://raw.github.com/gitlabhq/gitlab-recipes/master/nginx/gitlab
vim /etc/nginx/conf.d/gitlab.conf
修改变量YOUR_SERVER_IP 为你的服务器IP 地址
proxy_pass http://gitlab; 修改为proxy_pass http://IP:65527;
保存文件,重启nginx
访问http://IP 即可使用gitlab 系统
Gitlab系统中初始用户为 admin@local.host 密码为 5iveL!fe
(责任编辑:IT) |