最近换了公司,在交接公司,所以很忙也没有时间写博客,同时随着能力的逐渐提升,很多知识感觉很简单,也没有必要专门写博客,只是把遇到的情况与解决方法写入到了笔记里,正好现在没什么事,就把我最近研究的gitlab如何在centos里安装的笔记分享给大家。
先给大家介绍一下gitlab
GitLab 是一个用于仓库管理系统的开源项目。使用
Git作为代码管理工具,并在此基础上搭建起来的web服务。
应用特点:
1. Web框架使用
Ruby on Rails。
2. 基于
MIT代码发布协议。
3. 需要gitolite协同工作。
安装GitLab的需求:
Ubuntu/Debian(推荐这2个系统,也可以安装到CentOS系统中,并且在GitHub上有CentOS的GitLab一键安装脚本)
官方推荐的是那2个系统,但我这里需要安装在centos里,所以没办法自己多研究与测试,总结的安装经验如下:
前置要求
一定要先关闭iptable与selinux
本文安装的系统为centos 6.2 64位系统,安装在dell r410机器
1、安装epel与基础依赖库及软件
1
2
3
4
|
cd /tmp
wget http:
//download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh epel-release-
6
-
8
.noarch.rpm
yum install -y readline-devel libyaml-devel gdbm-devel ncurses-devel redis openssl-devel zlib-devel gcc gcc-c++ make autoconf readline-devel curl-devel expat-devel gettext-devel tk-devel libxml2-devel libffi-devel libxslt-devel libicu-devel httpd httpd-devel gitolite git-all python-devel python-pip sqlite-devel sendmail vim mysql-devel mysql-server patch libyaml* pcre-devel
|
2、安装ruby(一般默认安装都是1.8的,官方要求1.9以上)
1
2
3
4
5
6
7
8
9
10
|
mkdir /tmp/ruby && cd /tmp/ruby
curl --progress http:
//ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p392.tar.gz | tar xz
cd ruby-
1.9
.
3
-p392/
./configure
make
make install
gem install bundler
ln -s /usr/local/bin/ruby /usr/bin/ruby
ln -s /usr/local/bin/gem /usr/bin/gem
ln -s /usr/local/bin/bundle /usr/bin/bundle
|
3、创建一个git
用户供GitLab使用
1
2
|
adduser --comment
'GitLab'
git
chmod –R
755
/home/git
|
4、安装gitlab 的shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
# Login
as
git
sudo su git
# Go to home directory
cd /home/git
# Clone gitlab shell
git clone https:
//github.com/gitlabhq/gitlab-shell.git
cd gitlab-shell
#
switch
to right version
git checkout v1.
3.0
cp config.yml.example config.yml
# Edit config and replace gitlab_url
#
with
something like
'http://domain.com/'
vim config.yml
# Do setup
./bin/install
|
5、建立gitlab数据库并授权
1
2
3
4
5
6
7
8
9
10
|
# Login to MySQL
mysql -u root -p
# Create a user
for
GitLab. (change $password to a real password)
mysql> CREATE USER
'gitlab'
@
'localhost'
IDENTIFIED BY
'gitlab'
;
# Create the GitLab production database
mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
# Grant the GitLab user necessary permissopns on the table.
mysql> GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO
'gitlab'
@
'localhost'
;
# Quit the database session
mysql> \q
|
6、克隆gitlab源
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# Clone GitLab repository
cd /home/git
sudo -u git -H git clone https:
//github.com/gitlabhq/gitlabhq.git gitlab
# Go to gitlab dir
cd /home/git/gitlab
# Checkout to stable release
sudo -u git -H git checkout
5
-
1
-stable
Configure it
cd /home/git/gitlab
# Copy the example GitLab config
sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml
# Make sure to change
"localhost"
to the fully-qualified domain name of your
# host serving GitLab where necessary
sudo -u git -H vim config/gitlab.yml
# Make sure GitLab can write to the log/ and tmp/ directories
sudo chown -R git log/
sudo chown -R git tmp/
sudo chmod -R u+rwX log/
sudo chmod -R u+rwX tmp/
# Create directory
for
satellites
sudo -u git -H mkdir /home/git/gitlab-satellites
# Create directories
for
sockets/pids and make sure GitLab can write to them
sudo -u git -H mkdir tmp/pids/
sudo -u git -H mkdir tmp/sockets/
sudo chmod -R u+rwX tmp/pids/
sudo chmod -R u+rwX tmp/sockets/
# Create
public
/uploads directory otherwise backup will fail
sudo -u git -H mkdir
public
/uploads
sudo chmod -R u+rwX
public
/uploads
# Copy the example Puma config
sudo -u git -H cp config/puma.rb.example config/puma.rb
# Configure Git global settings
for
git user, useful when editing via web
# Edit user.email according to what
is
set
in
gitlab.yml
sudo -u git -H git config --global user.name
"GitLab"
sudo -u git -H git config --global user.email
"gitlab@localhost"
|
7、配置gitlab数据库
1
2
3
|
sudo -u git cp config/database.yml.mysql config/database.yml
sudo -u git vim config/database.yml
Make sure to update username/password
in
config/database.yml.
|
这个数据库的账户与密码是在第5步那里创建的。
8、安装gem
1
2
3
|
cd /home/git/gitlab
sudo gem install charlock_holmes --version
'0.6.9.4'
sudo -u git -H bundle install --deployment --without development test postgres
|
9、启动redis
1
|
/etc/init.d/redis start
|
10、对数据库进行初始化
1
|
sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production
|
11、下载启动脚本
1
2
3
4
5
|
Download the init script (will be /etc/init.d/gitlab):
sudo curl --output /etc/init.d/gitlab https:
//raw.github.com/gitlabhq/gitlabhq/master/lib/support/init.d/gitlab
sudo chmod +x /etc/init.d/gitlab
Make GitLab start on boot:
chkconfig --add gitlab
|
12、检测应用状态
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
Check
if
GitLab and its environment are configured correctly:
sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
To make sure you didn't miss anything run a more thorough check
with
:
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
If all items are green, then congratulations on successfully installing GitLab! However there are still a few steps left.
出现了Running? ... no
Try fixing it:
sudo -u git -H bundle exec rake sidekiq:start RAILS_ENV=production
For more information see:
doc/install/installation.md
in
section
"Install Init Script"
see log/sidekiq.log
for
possible errors
Please fix the error above and rerun the checks.
运行sudo -u git -H bundle exec rake sidekiq:start RAILS_ENV=production
然后在运行sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
|
13、启动gitlab
1
|
sudo service gitlab start
|
14、下载nginx(我选nging作为web服务器)
1
|
yum install nginx
|
15、下载官方提供gitlab的虚拟配置文件,并修改配置
1
2
3
4
5
6
7
8
9
10
11
12
13
|
Download an example site config:
sudo curl --output /etc/nginx/conf.d/gitlab https:
//raw.github.com/gitlabhq/gitlabhq/master/lib/support/nginx/gitlab
Make sure to edit the config file to match your setup:
# **YOUR_SERVER_FQDN** to the fully-qualified
# domain name of your host serving GitLab. Also, replace
# the
'listen'
line
with
the following:
# listen
80
default_server; # e.g., listen
192.168
.
1.1
:
80
;
sudo vim /etc/nginx/conf.d/gitlab
cd /etc/nginx/conf.d
mv
default
.conf
default
.conf.bak
mv gitlab
default
.conf
Restart
sudo service nginx restart
|
16、登陆你在nginx里添加的ip,然后输入账户与密码,默认为
1
2
|
admin@local.host
5iveL!fe
|
现在就完成了gitlab在centos系统里的安装,希望本文对大家有益。
本文转自 reinxu 51CTO博客,原文链接:http://blog.51cto.com/dl528888/1213286,如需转载请自行联系原作者