Centos搭建gitlab

安装常用库文件

#yum install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpnglibpng-devel freetype freetype-devel libxml2 libxml2-devel zlibzlib-devel glibc glibc-devel glib2 glib2-devel gd gd-devel bzip2bzip2-devel ncurses ncurses-devel curl curl-devel openssl openssl-devel libtool libtool-devel libtool-ltdl-devel httpd


安装git需要库文件

#yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel


#tar -zxf libiconv-1.14.tar.gz

#./configure --prefix=/usr/local/

#make && make install


安装git

#tar -zxf git-2.0.4.tar.gz

#./configure --prefix=/usr/local/git --with-iconv=/usr/local/

#make && make install


加入环境变量

#echo "export PATH=$PATH:/usr/local/git/bin" >>/etc/profile

#source /etc/profile

#ln -s /usr/local/git/bin/* /usr/bin/

显示版本,说明安装成功

#git --version



增加EPEL安装源

#wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 https://www.fedoraproject.org/static/0608B895.txt

#rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm


增加PUIAS安装源

#vim /etc/yum.repos.d/PUIAS_6_computational.repo

加入

[PUIAS_6_computational]

name=PUIAScomputational Base $releasever - $basearch

mirrorlist=http://puias.math.ias.edu/data/puias/computational/$releasever/$basearch/mirrorlist

#baseurl=http://puias.math.ias.edu/data/puias/computational/$releasever/$basearch

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puias


#wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-puias http://springdale.math.ias.edu/data/puias/6/x86_64/os/RPM-GPG-KEY-puias

#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-puias


增加RHEL6安装源

#yum-config-manager --enable rhel-6-server-optional-rpms


查看yum

yum repolist


安装GitLab的所需依赖包和工具

#yum -y install vim-enhanced 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 sudo wget crontabs logwatch logrotate perl-Time-HiRes


安装Ruby


#wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.1.tar.gz

# tar -zxf ruby-2.1.1.tar.gz

#./configure --prefix=/usr/local/

#make && make install


#which ruby

/usr/local/bin/ruby

#ruby -v

ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-linux]



安装bundle

#gem install bundler --no-ri --no-rdoc

Fetching: bundler-1.7.2.gem (100%)
Successfully installed bundler-1.7.2
1 gem installed


安装git-shell

添加git用户

#useraddgit

# chmod  775 /home/git/

#su - git

$git clone https://github.com/gitlabhq/gitlab-shell.git

$cd gitlab-shell/

$git checkout v1.8.0

$cp config.yml.example config.yml

$vim config.yml

修改域名,和代码仓库路径

gitlab_url: "http://git.os.com/"

#./bin/install



安装mysql

#tar -zxf cmake-2.8.4

#./configure--prefix=/usr/local/

#gmake && make install


#yum install bison -y

#tar-zxf mysql-5.5.25

#cmake ./

#make && make install


#useradd mysql -s /sbin/nologin

#mkdir -pv /data/mysql/data

#chown mysql.mysql /data/mysql/

#chown mysql.mysql /usr/local/mysql


#cd support-files/

#cp my-medium.cnf /etc/my.cnf

#vim /etc/my.cnf

加入到[mysqld]下

pid-file=/data/mysql/mysql.pid

datadir=/data/mysql/data

basedir=/usr/local/mysql


#cp mysql.server /etc/init.d/mysqld

#chmod +x /etc/init.d/mysqld


#echo "PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile


初始化mysql

#/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql/data/ --basedir=/usr/local/mysql/

启动mysql

#/etc/init.d/mysqld restart


#mysqladmin -uroot password 123456

#mysql -uroot -p

>create database gitlab;

>grant all privileges on gitlab.* to "gituser"@"localhost"identified by "gitpwd";

> exit


安装gitlab

#su - git

$git clone https://github.com/gitlabhq/gitlabhq.git gitlab

$cd /home/git/gitlab

$git checkout 6-3-stable

Branch6-3-stable set up to track remote branch 6-3-stable from origin.

Switchedto a new branch '6-3-stable'



配置项目

$cp config/gitlab.yml.example config/gitlab.yml

$vim config/gitlab.yml

加入域名

## GitLab settings
gitlab:
## Web server settings
  host: git.os.com
  port: 80
  https: false

$chown -R git log/

$chown -R git tmp/

$chmod -R u+rwX log/

$chmod -R u+rwX tmp/

$mkdir tmp/pids/

$mkdir tmp/sockets/

$chmod -R u+rwX tmp/pids/

$chmod -R u+rwX tmp/sockets/

$mkdir public/uploads

$chmod -R u+rwX public/uploads

$cp config/unicorn.rb.example config/unicorn.rb

$cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb

$git config --global user.name "GitLab"

$git config --global user.email "gitlab@localhost"

$git config --global core.autocrlf input




配置数据库访问文件

$cp config/database.yml.mysql config/database.yml

$vim config/database.yml

修改数据库用户密码


$chmod o-rwx config/database.yml



安装Gems

#gem install charlock_holmes --version '0.6.9.4'

#su - git

$cd /home/git/gitlab/

$bundle install --deployment --without development test postgres puma aws

#出现错误:Couldnot find modernizr-2.6.2 in any of the sources

#解决办法:

1.

#wget http://rubygems.org/downloads/modernizr-2.6.2.gem

#gem install modernizr


2.

$gem sources --remove https://rubygems.org/

$gem source -a http://ruby.taobao.org/

$gem sources -l


3.

将Gemfile和Gemfile.lock配置文件的modernizr版本更改成2.7.1:

$vim Gemfile

gem "modernizr"    "2.6.2"   ===> gem "modernizr-rails",        "2.7.1"


$vim Gemfile.lock

modernizr  (2.6.2)   ===>     modernizr-rails (2.7.1)

modernizr  (2.6.2)   ===>     modernizr-rails (= 2.7.1)


重新执行

$bundle install --deployment --without development test postgres puma aws


对数据库进行初始化

先启动redis

#/etc/init.d/redis restart

$bundle exec rake gitlab:setup RAILS_ENV=production --verbose

记住这个,是登录的帐号密码

login.........root

password......5iveL!fe





下载启动脚本

#wget https://raw.github.com/gitlabhq/gitlab-recipes/master/init/sysvinit/centos/gitlab-unicorn -P /etc/init.d/

#mv /etc/init.d/gitlab-unicorn /etc/init.d/gitlab

#chmod +x /etc/init.d/gitlab

#/etc/init.d/gitlab restart


如果提示:

Starting unicorn: bash: bin/web: No such file or directory
                                                                                                                             [FAILED]
Starting sidekiq: bash: bin/background_jobs: No such file or directory
                                                                                                                              [FAILED]

$cd gitlab

$ cp -r  script/ bin

再启动



检测应用程序状态

$bundle exec rake gitlab:env:info RAILS_ENV=production

详细信息

$bundle exec rake gitlab:check RAILS_ENV=production






安装配置nginx

#useradd www -s /sbin/nologin

#usermod -G git www

#tar -zxf pcre-8.12.tar.gz

#./configure

#make && make install



#tar-zxf nginx-1.7.1.tar.gz

#./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module

#make && make install



#mkdir /usr/local/nginx/conf/conf.d

#cp /home/git/gitlab/lib/support/nginx/gitlab /usr/local/nginx/conf/conf.d/gitlab.conf

#chown git.git /usr/local/nginx/conf/conf.d/gitlab.conf

#vim gitlab.conf

修改日志路径,域名

vim /usr/local/nginx/conf/ngxin.conf

加入

includ conf.d/gitlab.conf;

启动nginx

/usr/local/nginx/sbin/nginx          //有报错根据错误提示处理


nginx静态文件

$cd /home/git/gitlab

$bundle exec rake assets:precompile RAILS_ENV=production


启动

#/etc/init.d/redis restart

#/etc/init.d/gitlab restart

/usr/local/nginx/sbin/nginx


访问

ip,域名都行





#PS:遇到如下报错

$ bundle exec rake gitlab:check RAILS_ENV=production

Check GitLab API access: /usr/local/lib/ruby/2.1.0/net/http.rb:879:in `initialize': getaddrinfo: No address associated with hostname (SocketError)
    from /usr/local/lib/ruby/2.1.0/net/http.rb:879:in `open'
    from /usr/local/lib/ruby/2.1.0/net/http.rb:879:in `block in connect'
    from /usr/local/lib/ruby/2.1.0/timeout.rb:76:in `timeout'
    from /usr/local/lib/ruby/2.1.0/net/http.rb:878:in `connect'
    from /usr/local/lib/ruby/2.1.0/net/http.rb:863:in `do_start'
    from /usr/local/lib/ruby/2.1.0/net/http.rb:852:in `start'
    from /home/git/gitlab-shell/lib/gitlab_net.rb:62:in `get'
    from /home/git/gitlab-shell/lib/gitlab_net.rb:29:in `check'
    from /home/git/gitlab-shell/bin/check:11:in `<main>'
gitlab-shell self-check failed
  Try fixing it:
  Make sure GitLab is running;
  Check the gitlab-shell configuration file:
  sudo -u git -H editor /home/git/gitlab-shell/config.yml
  Please fix the error above and rerun the checks.


编辑如下三个文件,域名端口要对应

$vim config/gitlab.yml

  gitlab:
    ## Web server settings
    host: git.os.com
    port: 8099
    https: false

$vim ../gitlab-shell/config.yml

gitlab_url: "http://git.os.com:8099"

$ vim config/unicorn.rb

listen "127.0.0.1:8099", :tcp_nopush => true

另外,hosts最好也加上要解析的域名

$ vim /etc/hosts

127.0.0.1       git.os.com    git









posted @ 2014-08-25 18:05  消磨_时间  阅读(180)  评论(0)    收藏  举报