gitlab安装(基于centos6.5)


安装wget和cmake

sudo yum -y install wget

sudo yum -y install cmake


增加EPEL安装源

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

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6


安装epel-release-6-8.noarch包

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


增加PUIAS安装源

vi /etc/yum.repos.d/PUIAS_6_computational.repo


[PUIAS_6_computational]

name=PUIAS computational 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


下载并安装GPG key

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


yum repolist


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

yum -y groupinstall 'Development Tools'


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 git


配置redis

chkconfig redis on

service redis start


安装Ruby


mkdir /tmp/ruby && cd /tmp/ruby

curl --progress ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p353.tar.gz | tar xz

cd ruby-2.0.0-p353

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

make && make install


查看ruby版本

ruby -v


安装bundle


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


创建用户git

adduser --system --shell /bin/bash --comment 'git' --create-home --home-dir /home/git/ git


切换到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


vi config/config.yml


将gitlab_url修改成gitlab的访问域名。形如:http://test.gitlab.com/


./bin/install


安装数据库


切换到root用户

su -

yum install -y mysql-server mysql-devel

chkconfig mysqld on

service mysqld start


/usr/bin/mysql_secure_installation

重新设定数据库密码并清除空用户跟test数据库


mysql -u root -p


创建git用户

CREATE USER 'git'@'localhost' IDENTIFIED BY '123456';


创建数据库

CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;


设定git权限

GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO 'gitlab'@'localhost';


切换到git用户


su - git


克隆分支:

git clone https://gitlab.com/larryli/gitlab.git .gitlab

cd gitlab

git checkout 7-7-zh


配置项目


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


vi config/gitlab.yml


把localhost修改成你需要的域名


chown -R git log/

chown -R git tmp/

chmod -R u+rwX log/

chmod -R u+rwX tmp/

mkdir /home/git/gitlab-satellites

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

git config --global user.name "GitLab"

git config --global user.email "683099@qq.com"

git config --global core.autocrlf input


配置数据库访问文件

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


vi config/database.yml


修改数据库连接密码(把password里面的密码修改成我们刚才设置的密码123456)


chmod o-rwx config/database.yml




安装Gems


切换到git用户


修改源

vi Gemfile


#source "https://rubygems.org"

source "https://ruby.taobao.org"


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



完成后会生成默认管理员账户密码


root

5iveL!fe


安装启动脚本


切换到root用户


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


chmod +x /etc/init.d/gitlab

chkconfig --add gitlab

chkconfig gitlab on


service gitlab start


切换到git用户


su - git


cd gitlab/


bundle exec rake gitlab:check RAILS_ENV=production


bundle exec rake assets:precompile RAILS_ENV=production


切换到root用户

service gitlab restart


安装web服务器


yum -y install nginx

chkconfig nginx on

mkdir /etc/nginx/sites-available

mkdir /etc/nginx/sites-enabled


cp /home/git/gitlab/lib/support/nginx/gitlab /etc/nginx/sites-available


ln -sf /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab


编辑/etc/nginx/nginx.conf,将 include /etc/nginx/conf.d/*.conf; 替换成 include /etc/nginx/sites-enabled/*;


编辑/etc/nginx/sites-available/gitlab,将配置中server_name替换成实际访问的域名。


将nginx加入git用户组


usermod -a -G git nginx

chmod g+rx /home/git/


service nginx start


配置防火墙

lokkit -s http -s https -s ssh


service iptables restart


访问:

http://localhost