本手册为Gitlab代码仓库管理工具搭建手册,因为公司现有Gitlab服务器为Debian linux,所以此次的搭建环境为Debian7.5.0+Nginx。本文档涵盖了Gitlab安装搭建的全过程,编写目的是为了灾难恢复或者重新搭建Gitlab做指导。
备注:本文档中的相关软件包版本可成功安装,其余版本需要查阅相关资料才可确定。
1,Ubuntu
2,Debian
3,CentOS
4,RedHat Enterprise Linux
5,Scientific Linux
6,Oracle Linux,
Gitlab要求Ruby版本必须为1.9.3或2.0以上
CPU:
2内核推荐数和最多支持500个用户
4内核支持多达2000个用户
8内核支持多达5000个用户
16内核支持多达100000个用户
32内核支持多达200000个用户
64内核支持多达400000个用户
内存:
2GB是推荐的内存大小,最多支持500个用户
4GB最多支持2000个用户
8GB最多支持5000个用户
16GB最多支持10000个用户
32GB最多支持20000个用户
64GB最多支持40000个用户
1,Chrome (Latest stable version)
2,Firefox (Latest released version)
3,Safari 7+ (known problem: requiredfields in html5 do not work)
4,Opera (Latest released version)
5,IE 10+
Gitlab的安装包括以下部分:
1,Packages / Dependencies
2,Ruby
3,System Users
4,GitLab shell
5,Database
6,GitLab
7,Nginx
安装以上部分之前建议添加新的系统软件更新源,比如此次添加的源为deb http://http.us.debian.org/debian/ stable main. 配置更新源文件路径为/etc/apt/sources.list,之后运行apt-get update apt-get upgrade更新软件包信息;系统未预装vim,编辑配置文件需要使用,所以需提前安装。
安装Gitlab所需依赖包
apt-get install -ybuild-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-devlibncurses5-dev libffi-dev curl git-core openssh-server redis-server postfixcheckinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev
安装过程中弹出postfix配置界面可以先选择no configure 等待安装好之后再做配置
确认Python的安装版本应该为2.5+,3.0+版本目前不支持
python --version
python2 --version
下载与编译安装
mkdir /tmp/ruby && cd /tmp/ruby
curl --progresshttp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p481.tar.gz | tar xz
cd ruby-2.0.0-p481/
./configure
make
make install
安装BundlerGem
geminstall bundler
为Gitlab建立系统用户git
adduser --disabled-login --gecos 'GitLab' git
--disabled-login参数为直到为用户git设置了密码,该用户才可以登录系统
--gecos 'GitLab'参数为为git用户设置全名
Gitlabshell是专门用于Gitlab的ssh访问和库管理软件
切换到git用户clone并安装Gitlab shell
#切换至git用户
sudo su git
#进入git用户家目录
cd /home/git/
#将gitlab shell clone到本地
git clone https://github.com/gitlabhq/gitlab-shell.git
#进入gitlab-shell目录
cdgitlab-shell/
#切换版本
gitcheckout v1.1.0
gitcheckout -b v1.1.0
#建立配置文件
cp config.yml.exampleconfig.yml
#修改配置文件中相关信息,主要修改gitlab_url
vim config.yml
#安装
./bin/install
#安装Mysql数据库
sudo apt-get install -ymysql-server mysql-client libmysqlclient-dev
#使用root用户登录Mysql
mysql -u root –p
#为Gitlab数据库建立用户’$password 需更换为实际的密码’
mysql>CREATE USER ' gitlab' @ ' localhost' IDENTIFIED BY' $password';
#建立Gitlab数据库
mysql>CREATE DATABASE IFNOT 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> \q
#使用新用户尝试连接新建数据库
sudo -u git -H mysql -u gitlab-p -D gitlabhq_production
#我们将把Gitlab安装在git用户家目录中
cd /home/git
#克隆gitlab库
sudo-u git -H git clone https://github.com/gitlabhq/gitlabhq.git gitlab
#进入gitlab目录
cd /home/git/gitlab
#checkout稳定的发行版(checkout的版本可自定)
sudo -u git -H git checkout 5-0-stable
对Gitlab进行配置,目录仍为/home/git/gitlab
#建立Gitlab配置文件
sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml
#务必将配置文件中Web server settings设置中的host改为服务器的FQDN,FQDN的查询方法为命令行运行hostname –f
sudo -u git -H vim config/gitlab.yml
#确保git用户对gitlab中的log与tmp目录有写权限
chown -R git log/
chown -R git tmp/
chmod -R u+rwx tmp/
chmod -R u+rwx log/
#建立satellites目录
sudo -u git -H mkdir /home/git/gitlab-satellites
#建立pids目录并给予权限使Gitlab可写
sudo -u git -H mkdir tmp/pids/
sudo chmod -R u+rwX tmp/pids/
#建立unicorn配置文件
sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb
#配置Gitlab数据库,配置文件中production部分设置中的username/password需修改为数据库真实的用户名和密码
sudo -u git cp config/database.yml.mysql config/database.yml
#安装Gems, 目录仍为/home/git/gitlab
sudo gem install charlock_holmes --version '0.6.9'
#下载并安装modernizr模块(地址为“http://rubygems.org/gems/modernizr-rail”
版本为modernizr-rails 2.7.1)
cp /home/username/download/modernizr_rails-2.7.1.gem /home/git/gitlab/
gem install modernizr-rails
#更新配置文件中modernizr模块版本
vim /home/git/gitlab/Gemfile#使用vim打开配置文件键入:set nu 显示行号将128行改为 gem "modernizr-rails" "2.7.1"
vim /home/git/gitlab/Gemfile.lock使用vim打开配置文件键入:set nu 显示行号将260行改为 modernizr-rails(2.7.1);547行改为modernizr-rails ( = 2.7.1)
#安装bundle gem(使用mysql数据库)
sudo -u git -H bundle install --deployment --without development testpostgres
#初始化数据库并按照默认提示在Production mode设定Rails
sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production
#产生默认生成的Gitlab账号和密码
Login [email protected]
Password 5iveL!ve
安装初始脚本
#下载初始脚本到/etc/init.d/gitlab并设置执行权限
sudo curl --output/etc/init.d/gitlab https://raw.githubusercontent.com/gitlabhq/gitlab-recipes/5-0-stable/init.d/gitlab
sudo chmod +x/etc/init.d/gitlab
#设置Gitlab开启启动
sudo update-rc.d gitlabdefaults 21
#检查Gitlab应用状态,环境是否配置正确
sudo -u git -H bundle execrake gitlab:env:info RAILS_ENV=production
#确认Gitlab是否有遗漏与运行相关的信息
sudo -u git -H bundle execrake gitlab:check RAILS_ENV=production
备注:此过程通过项会显示绿色信息,不通过项显示红色信息。
按照以上步骤可能会出现:
1:Checking Enviorment …
Git configured for git user?… no
解决方法如下
sudo -u git -H git config--global user.name "GitLab"
sudo -u git -H git config--global user.email "gitlab@Server FQDN"
2:Checking Sidekiq …
Running?...no
解决方法如下
sudo -u git -H bundle exec rakesidekiq:start RAILS_ENV=production
3:Init script up-to-date?… no
此问题无需理会
处理之后再运行一次
sudo -u git -H bundle execrake gitlab:check RAILS_ENV=production
除Init script up-to-date?… no之外全显示绿色信息最后提示Checking Gitlab…finshed表示Gitlab安装完毕
#启动Gitlab实例
service gitlab start or /etc/init.d/gitlab restart
#安装Nginx
sudo apt-get install nginx
#下载站点配置示例
sudo curl --output /etc/nginx/sites-available/gitlab https://raw.githubusercontent.com/gitlabhq/gitlab-recipes/5-0-stable/nginx/gitlab
#建立文件的软链接
sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab
#修改配置文件与实际配置相符
sudo vim /etc/nginx/sites-available/gitlab#修改server部分的信息
listen **YOUR_SERVER_IP** default_server
server_name **YOUR_SERVER_FQDN**
#重启Gitlab实例
sudo service service nginx restart
本机打开Nginx主页
http://FQDN显示Welcome tonginx
其他客户端打开网页
http://SERVER_IP显示登陆页面,可以使用默认生成的用户名和密码
Login [email protected]
Password 5iveL!ve
登陆
重建安装工作可能因为重建时间的晚于此次文档编写时间,部分软件已经更新版本,所以相应的配置与本文档中配置有出入,请注意安装ruby的版本与gem安装步骤中需要修改相应的配置文件的部分,如果是Gitlab的安装配置发生变化那么可以参考官方的网址https://github.com/gitlabhq/gitlabhq/compare其中可以根据选择重建时使用的版本来查看安装文档。