CentOS 6.5环境安装GitLab私有代码托管项目管理程序记录

Gitlab,是一款开源的利用Ruby on Rails开发的项目管理程序,我们可以类似GITHUB一样用来存储代码、协同管理,且可以通过WEB界面进行访问公开的或者私人项目仓库。如果是我们个人项目,还是托管在GITHUB或者国内的GITCAFE或者CODING等服务商都是不错的。

Gitlab安装环境要求也是比较高的,如果希望能体现运转效率,官方的建议是需要2GB内存以上,SSD固态硬盘,CPU2核心以上配置。在这篇文章中,国外主机优惠仅仅是记录下自己本地的安装过程,对于自己的有些脚本项目还是放在第三方托管。

第一、安装系统必备包

yum -y install wget curl gcc libxml2-devel libxslt-devel make openssh-server libyaml-devel postfix libicu-devel libcurl-devel libcurl readline-devel readline glibc glibc-devel openssl-devel openssl mysql++-devel postgresql-devel zlib-devel git

第二、安装开发工具

yum -y groupinstall \’Development Tools\’

第三、安装Redis和Nginx

yum -y install redis

yum -y install nginx

如果有遇到No package redis available问题,通过\”解决CentOS出现”No package redis available”提示问题\”给予解决的方法解决问题。

第四、检查和启动Nginx和Redis

chkconfig nginx on
chkconfig redis on
service redis start

第五、创建ruby存储和设置

mkdir /tmp/ruby && cd /tmp/ruby
curl –progress ftp://ftp.ruby-lang.org/pub/ruby/2.1/ruby-2.1.0.tar.gz | tar xz
cd ruby-2.1.0
./configure –prefix=/usr/local/
make && make install

第六、安装 bundler和rails

gem install bundler
gem install rails

第七、创建GitLab用户

useradd –comment \’GitLab CI\’ -m gitlab_ci

第八、抓取gitlab-ci

cd /home/gitlab_ci/
git clone https://github.com/gitlabhq/gitlab-ci.git
cd gitlab-ci

第九、检查branch最新版本和设置权限目录

git checkout 5-0-stable
mkdir -p tmp/pids
mkdir -p tmp/sockets
chmod -R 755 tmp/

第十、添加数据库

第十一、安装ruby开发工具

bundle –without development test

第十二、配置数据库文件

cp config/database.yml.mysql config/database.yml
vim config/database.yml
Set Database Host

以及看到下面

production:
adapter: mysql2
encoding: utf8
reconnect: false
database: gitlab_ci_production
pool: 5
username: gitlab_ci
password: \”g1tlabc1\”
host: 10.79.0.85
# socket: /tmp/mysql.sock

第十三、继续设置主体环境

cp config/application.yml.example config/application.yml
cp config/unicorn.rb.example config/unicorn.rb

更改服务器URL以及设置HTTPS为FALSE

第十四、修改gitlab_ci用户目录权限

cd /home
chown -R gitlab_ci:gitlab_ci gitlab_ci

第十五、返回到Gitlab-CI目录和填充MySQL表

cd gitlab_ci   // User Directory
cd gitlab_ci   // Application Directory

第十六、安装Ruby

sudo -u gitlab_ci -H /usr/local/bin/bundle install –without development test postgres –deployment

第十七、运行和设置

su gitlab_ci
/usr/local/bin/bundle exec /usr/local/bin/rake setup RAILS_ENV=production

第十八、设置cronjob

yum install -y crontabs
su gitlab_ci
bundle exec whenever -w RAILS_ENV=productionsu

第十九、安装init脚本

cp /home/gitlab_ci/gitlab-ci/lib/support/init.d/gitlab_ci /etc/init.d/gitlab_ci
chmod +x /etc/init.d/gitlab_ci
chkconfig gitlab_ci on

第二十、修改init脚本

%s/bundle/\\/usr\\/local\\/bin\\/bundle/g
%s/rake/\\/usr\\/local\\/bin\\/rake/g

第二十一、修改/etc/sudoers目录允许gitlab_ci运行

找到:
Defaults    requiretty
修改成:
Defaults:gitlab_ci    !requiretty

第二十二、设置Nginx

cd /etc/nginx
mkdir sites-available sites-enabled
wget https://raw.github.com/gitlabhq/gitlab-ci/2-2-stable/lib/support/nginx/gitlab_ci -P /etc/nginx/sites-available/
ln -s /etc/nginx/sites-available/gitlab_ci /etc/nginx/sites-enabled/gitlab_ci

vim /etc/nginx/sites-available/gitlab_ci

修改项目如下:

# GITLAB CI
# Maintainer: @randx
# App Version: 2.0

upstream gitlab_ci {
server unix:/home/gitlab_ci/gitlab-ci/tmp/sockets/gitlab-ci.socket;
}

server {
#listen 10.79.0.88:80 default_server;         # e.g., listen 192.168.1.1:80;
#server_name gitlabci.laozuo.org;     # e.g., server_name source.example.com;
listen       80 default_server;
server_name  _;
root /home/gitlab_ci/gitlab-ci/public;

access_log  /var/log/nginx/gitlab_ci_access.log;
error_log   /var/log/nginx/gitlab_ci_error.log;

location / {
try_files $uri $uri/index.html $uri.html @gitlab_ci;
}

location @gitlab_ci {
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_redirect     off;

proxy_set_header   X-Forwarded-Proto $scheme;
proxy_set_header   Host              $http_host;
proxy_set_header   X-Real-IP         $remote_addr;

#proxy_pass http://gitlab_ci;
proxy_pass http://127.0.0.1:8080;
}

# adjust this to match the largest build log your runners might submit,
# set to 0 to disable limit
client_max_body_size 10m;
}

第二十三、设置conf.d目录

cp /etc/nginx/sites-available/gitlab_ci /etc/nginx/conf.d/gitlab_ci.conf

第二十四、移动default.conf文件

mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.notused

第二十五、检查配置

nginx -t

第二十六、启动gitlab以及nginx

sudo gitlab_ci
/etc/init.d/gitlab_ci start
exit
service nginx start

第二十七、设置当前用户

useradd –comment \’GitLab CI Runner\’ -m gitlab_ci_runner

第二十八、获取代码

su gitlab_ci_runner
cd ~/
git clone https://gitlab.com/gitlab-org/gitlab-ci-runner.git
cd gitlab_ci_runner

第二十九、安装gems

bundle install –deployment

第三十、设置用户

bundle exec ./bin/setup

第三十一、输入我们的安装路径

http://localhost:8080

第三十二、输入后台管理

http://gitlabci.laozuo.org/admin/runners

第三十三、设置init脚本

exit // get back to root
cd /home/gitlab_ci_runner/gitlab-ci-runner/
cp ./lib/support/init.d/gitlab_ci_runner /etc/init.d/gitlab-ci-runner
chmod +x /etc/init.d/gitlab-ci-runner
chkconfig gitlab-ci-runner on

第三十四、启动

service gitlab-ci-runner start

到目前为止,勉强的将整个GitLab安装完毕,过程真的长,花费了我半天多时间,写教程真的是浪费时间的,有些步骤还省略掉了。后面看情况再补充。看看这样复杂,还是用GITHUB的好。