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的好。