Debian7.5.0搭建Gitlab+Nginx手册


一,编写目的:

    本手册为Gitlab代码仓库管理工具搭建手册,因为公司现有Gitlab服务器为Debian linux,所以此次的搭建环境为Debian7.5.0+Nginx。本文档涵盖了Gitlab安装搭建的全过程,编写目的是为了灾难恢复或者重新搭建Gitlab做指导。

 

备注:本文档中的相关软件包版本可成功安装,其余版本需要查阅相关资料才可确定。

 

二,Gitlab环境及硬件支持说明

1,操作系统支持

1Ubuntu

2Debian

3CentOS

4RedHat Enterprise Linux

5Scientific Linux

6Oracle Linux,

2,Ruby版本要求

Gitlab要求Ruby版本必须为1.9.3或2.0以上

3,硬件需求

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个用户

4,浏览器支持

1Chrome (Latest stable version)

2Firefox (Latest released version)

3Safari 7+ (known problem: requiredfields in html5 do not work)

4Opera (Latest released version)

5IE 10+

 

三,安装与搭建

概述

Gitlab的安装包括以下部分:

1Packages / 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,编辑配置文件需要使用,所以需提前安装。

1,Packages /Dependencies

安装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

 

2,Ruby

下载与编译安装

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

 

3,System user

为Gitlab建立系统用户git

adduser --disabled-login --gecos 'GitLab' git

--disabled-login参数为直到为用户git设置了密码,该用户才可以登录系统

--gecos 'GitLab'参数为为git用户设置全名

 

4,Gitlab shell

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

 

5,Database(mysql)

#安装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

 

6,Gitlab

#我们将把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     admin@local.host

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

 

7,Nginx

#安装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     admin@local.host

Password  5iveL!ve

登陆

 

五,总结

重建安装工作可能因为重建时间的晚于此次文档编写时间,部分软件已经更新版本,所以相应的配置与本文档中配置有出入,请注意安装ruby的版本与gem安装步骤中需要修改相应的配置文件的部分,如果是Gitlab的安装配置发生变化那么可以参考官方的网址https://github.com/gitlabhq/gitlabhq/compare其中可以根据选择重建时使用的版本来查看安装文档。

Logo

更多推荐