gitlab环境搭建

由于该公司是使用的gitlab做版本控制与代码管理。所以领导让我这个实习生要搭建一遍gitlab。其实这个事情拖了好久只因为前期在做关于saltstack的实验。没有心思去搞git。昨晚将salt拿下。今天就静下心去搞。遇妖降妖,遇魔除魔!

建议:最好用纯净的系统去部署gitlab

一、环境介绍

(1) centos 6.5

(2)Ruby (版本: 2.0.0p353)

(3)创建项目运行用户(创建git账号,方便权限管理)

(4)GitLab Shell(版本:1.8.0)

(5)数据库(可以支持mysql和PostgreSQL,这里使用mysql,版本:5.1.17)

(6)GitLab(版本:6.3.1)

(7)Web服务器(可支持nginx和apache,这里使用nginx,版本:1.0.15)


二、安装准备

(1)下载并安装GPG key

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

2)检验是否成功安装:

rpm -qa gpg*

(3)安装epel-release-6-8.noarch包

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

(4)增加PUIAS安装源

创建/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
$ sudo 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
$ sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-puias

     (5)依赖关系

         su -

       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

      

配置redis使其在开机时启动:

$ sudo chkconfig redis on
$ sudo service redis start


四、安装ruby

     (1)、下载安装

$ su -
$ 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

(2)安装完成后,重新登录终端确保$PATH生效,检测ruby的安装成功与否:

 $ which ruby
 /usr/local/bin/ruby
 $ ruby -v
 ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux]
 
 
$ sudo gem install bundler --no-ri --no-rdoc

此时可能会出现错误:会出来一系列类似的。。

RROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
   Errno::ECONNRESET: Connection reset by peer - SSL_connect (https://api.rubygems.org/quick/Marshal.4.8/fir-cli-1.1.5.gemspec.rz)

只要在该命令后出现任何错误,解决办法就是:

sudo gem sources -r https://rubygems.org/

gem sources -a https://ruby.taobao.org/

五、系统用户

$ su -
$ adduser --system --shell /bin/bash --comment ‘GitLab‘ --create-home --home-dir /home/git/ git

因为git用户不需要登录,所以这里不需要设置git的密码。

转发所有邮件

笔者注:因为上面没有配置发送邮件,这里也省略。


六、安装git-shell

GitLab shell是专门为GitLab开发的提供ssh访问和版本管理的软件。

(1)先使用root登录,而后切换成git

$ su -
$ su - git

 (2)克隆gitlab shell

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

(3)切换成1.8.0版本,并编辑配置

$ git checkout v1.8.0
$ cp config.yml.example config.yml

(4)安装一些需要的目录和文件

$ ./bin/install

七、安装数据库

(1)安装mysql并设置开机启动:

$ su -
$ yum install -y mysql-server mysql-devel
$ chkconfig mysqld on
$ service mysqld start

(2)设置mysql root账号的密码:

$ /usr/bin/mysql_secure_installation

(3)创建新用户和数据库给gitlab使用

# 登录数据库
$ mysql -u root -p
# 输入root密码
# 为gitlab创建使用用户
CREATE USER ‘gitlab‘@‘localhost‘ IDENTIFIED BY ‘gitlab账号的密码‘;

# 创建gitlaba使用的数据库
CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;

# 给予gitlab用户权限
GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO ‘gitlab‘@‘localhost‘;

# 登出数据库
\q

八、安装gitlab

(1)将GitLab安装在git的家目录下:

$ su -
$ su - git

(2)克隆GitLab并切换分支到6-3-stable

# 克隆GitLab
$ git clone https://github.com/gitlabhq/gitlabhq.git gitlab
# 进入gitlab目录
$ cd /home/git/gitlab
# 切换到6-3-stable分支
$ git checkout 6-3-stable

(3)修改配置文件

# 复制配置文件
$ cp config/gitlab.yml.example config/gitlab.yml

# 修改配置文件中的访问域名
(your_domain_name为项目的访问域名)

vim gitlab.yml

将里面的localhost换成你的域名。我没有设置域名直接写的IP地址

# 设定log和tmp目录所有者和权限
$ chown -R git log/
$ chown -R git tmp/
$ chmod -R u+rwX log/
$ chmod -R u+rwX tmp/

# 创建gitlab-satellites目录
$ mkdir /home/git/gitlab-satellites

# 创建tmp/pids/和tmp/sockets/目录,确保gitlab有相应的权限
$ mkdir tmp/pids/
$ mkdir tmp/sockets/
$ chmod -R u+rwX tmp/pids/
$ chmod -R u+rwX tmp/sockets/

# 创建public/uploads目录
$ mkdir public/uploads
$ chmod -R u+rwX public/uploads

# 复制unicorn配置
$ cp config/unicorn.rb.example config/unicorn.rb

# 编辑unicorn配置
(笔者这里采用默认配置)
$ vim config/unicorn.rb

# 配置git的用户和邮件
$ git config --global user.name "GitLab"
$ git config --global user.email "[email protected]_domain_name"
$ git config --global core.autocrlf input

这边的配置比较复杂,细心些就行了。

(4)配置数据库访问文件

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

编辑config/database.yml,设置其中连接数据库的账号密码,笔者的配置部分如下:

#
# PRODUCTION
#
production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: gitlabhq_production
  pool: 10
 
 
  # host: localhost
  # socket: /tmp/mysql.sock

修改其中username和password就可以了,其中密码就是上面数据库步骤中创建gitlab用户的密码。

确保该文件只有git账号有权限读取。

$ chmod o-rwx config/database.yml
九、安装gem
$ su -
$ gem install charlock_holmes --version ‘0.6.9.4‘
$ exit
(1)安装mysql包
$ cd /home/git/gitlab/
$ bundle install --deployment --without development test postgres 
在此处应该会出现错误:
Fetching source index from http://rubygems.org/
Fetching https://github.com/gitlabhq/grit.git
Could not find modernizr-2.6.2 in any of the sources
#出现错误:Could not find modernizr-2.6.2 in any of the sources
解决办法:vim Gemfile
source "https://rubygems.org"改为source "http://mirror.aliyun.com/rubygens/"
 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

(2)

初始化数据和激活高级功能

$ cd /home/git/gitlab
$ bundle exec rake gitlab:setup RAILS_ENV=production

这步完成后,会生一个默认的管理员账号:

[email protected]
5iveL!fe

(3)置 GitLab 启动服务

cd /home/git/gitlab/

sudo update-rc.d gitlab defaults 21

设置 GitLab 使用 Logrotate 备份 Log

cd /home/git/gitlab/
sudo cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab

(4)检查GitLab及其环境的配置是否正确:

cd /home/git/gitlab/
sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production

[[email protected] gitlab]$ bundle exec rake gitlab:env:info RAILS_ENV=production

System information

System: CentOS release 6.5 (Final)

Current User: git

Using RVM: no

Ruby Version: 2.0.0p353

Gem Version: 2.0.14

Bundler Version:1.11.2

Rake Version: 10.1.0

GitLab information

Version: 6.3.1

Revision: ae862b5

Directory: /home/git/gitlab

DB Adapter: mysql2

URL: http://10.10.20.140

HTTP Clone URL: http://10.10.20.140/some-project.git

SSH Clone URL: [email protected]:some-project.git

Using LDAP: no

Using Omniauth: no

GitLab Shell

Version: 1.8.0

Repositories: /home/git/repositories/

Hooks: /home/git/gitlab-shell/hooks/

Git: /usr/bin/git

(5)启动 GitLab 服务

/etc/init.d/gitlab restart
Shutting down both Unicorn and Sidekiq.
GitLab is not running.
Starting both the GitLab Unicorn and Sidekiq..
The GitLab Unicorn web server with pid 17771 is running.
The GitLab Sidekiq job dispatcher with pid 17778 is running.
GitLab and all its components are up and running

最后编译一下。

 bundle exec rake assets:precompile RAILS_ENV=production

此时证明你的gitlab已经正常运行了。。。但是要是能够访问还需要配置个web服务。

九、配置nginx

(1)安装nginx

yum install nginx

(2)配置

配置 Nginx

 chkconfig nginx on
$ mkdir /etc/nginx/sites-available
$ mkdir /etc/nginx/sites-enabled
cd /home/git/gitlab
sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlab
sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitl
vim /etc/nginx/sites-available/gitlab

重点需要修该的是:server_name:

listen:

编辑/etc/nginx/nginx.conf,将 include /etc/nginx/conf.d/*.conf; 替换成 include /etc/nginx/sites-enabled/*;,就是修改额外加载的配置文件目录。

重新启动nginx: service nginx restart

http://server_name:port

gitlab 搭建完毕!!!!

参考文档:http://www.open-open.com/lib/view/open1399684894447.html

http://longgeek.com/2013/12/26/ci-system-structures-ii-gitlab-installation/

时间: 2024-08-11 18:05:53

gitlab环境搭建的相关文章

基于Bitnami gitlab OVA包的gitlab 环境搭建

前言 最近在折腾gitlab,本篇记录搭建的过程方便以后查找 环境 Windows server + VMware 安装 为方便本次我们直接采用Bitnami的VOA安装包(VOA格式可同时兼容VirtualBox和VMware),可以直接在虚拟机导入即可.安装包位于这里. 打开VMware Workstation, File -> Open, 选择刚刚下载好的VOA文件,根据界面内容进行虚拟机配置. 安装完后,即可进入虚拟机,显示如下: 显示gitlab的url地址,默认web登陆用户'roo

企业级gitlab仓库环境搭建

目录: 1.gitlab简介 2.安装配置gitlab 2.1.实验环境介绍 2.2.更改仓库存储位置 2.3.开启https访问 2.4.启用SMTP服务 3.GitLab的基本使用 4.备份及恢复 5.总结 1.gitlab简介 GitLab 是一个用于仓库管理系统的开源项目.使用Git作为代码管理工具,并在此基础上搭建起来的web服务.GitLab拥有强大的功能,可实现git仓库管理,代码审查,问题跟踪,WIkI等功能,而且配合GitLab CI能更简单的实现持续集成和自动部署.GitLa

gitlab+jenkins环境搭建.md

gitlab+jenkins自动化部署环境搭建 环境说明 系统 主机 IP 安装软件 CentOS 7 study-1 192.168.100.51 gitlab.git CentOS 7 study-2 192.168.100.52 jdk.maven.jenkins.git CentOS 7 study-3 192.168.100.53 tomcat.mysql.jenkins.git 所有系统的selinux和iptables都已经关闭,同时需要做好时间同步,机器的hosts文件如下: 1

Jenkins+Maven+Gitlab+Nexus持续集成环境搭建

1.软件及服务介绍 Jenkins:jenkins是实现代码自动化流程上线的工具,Jenkins是一个独立的开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能.前身是Hudson是一个可扩展的持续集成引擎.可用于自动化各种任务,如构建,测试和部署软件.Jenkins可以通过本机系统包Docker安装,甚至可以通过安装Java Runtime Environment的任何机器独立运行 Maven:Maven是一个项目

Centos7搭建gitlab环境

在学习Gitlab的环境搭建之前,首先需要了解Git,Gitlab,GitHub他们三者之间的关系 Git 它是一个源代码版本控制系统,可让您在本地跟踪更改并从远程资源推送或提取更改.GitHub 是一项公开可用的免费服务,它要求所有代码(除非您有付费帐户)公开. 任何人都可以看到您推送给GitHub的代码并提供改进建议.GitLab是一种类似github的服务,组织可以使用它来提供git存储库的内部管理. 它是一个自我托管的Git-repository管理系统,可以保持用户代码的私密性,并且可

Jenkins + Git + Maven + tomcat集成环境搭建

折腾了好几天,终于吧Jenkins + Git + Maven + tomcat集成环境搭建起来了,最终主要实现"自动构建.部署"web应用. 1.安装环境 操作系统:Centos 6.5 JDK:1.7.x Maven:3.1.x Git: 1.7.1,自建GitLab平台 tomcat:7.x 上述宿主机器2台:192.168.1.194,192,168.1.198,其中194位Jenkins Master,198位slave. 2.第三方安装安装和环境配置 JDK.Git.Mav

前端开发环境搭建以及如何跨域

前端本地开发环境搭建总结: 安装nodejs环境(推荐6.0以后的LTS版本),安装完之后打开终端(mac平台),windows平台可以 WIN+R 打开运行,输入cmd,打开命令窗口,输入npm --version,如果能看到版本,说明已经安装成功: 在本地电脑的工作目录下面,执行 "git clone" + gitlab仓库的地址,把项目克隆下来: 使用编辑器(推荐webstorm或者vs code,功能强大,当然如果有其他熟悉的IDE也可以,前提是熟悉)打开项目,找到node的s

当开发环境搭建成本越来越低

先瞎容许我瞎bb一会,然后给干货! 还记得大二那会学Android开发,google已经在墙外了,开发环境搭建是一个令人头疼的问题,eclipse.sdk.adt.avd一个一个的下载,安装,一连要花好几天的时间.而现在随着互联网的发展,很多复杂的事情都已经简单化.很多开发环境.框架.工具开箱即用:重复的代码可以由代码生成器自动生成:例如spring这类框架的复杂配置,现在有了微服务框架,也得到了一定的简化.这就使得我们可以花更多的时间来研究开发技术本身,而不必为了搭建和配置而焦头烂额. 最近在

持续集成-jenkins介绍与环境搭建

什么是持续集成? 转自:https://blog.csdn.net/tanshizhen119/article/details/80328523 持续集成,俗称CI, 大师Martin Fowler对持续集成是这样定义的:持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误.许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发