`

[转]CI 系统搭建:二. GitLab 的安装配置

 
阅读更多

 

CI 系统搭建:二. GitLab 的安装配置

 An error occurred while installing github-linguist (4.7.6), and Bundler cannot
continue.
Make sure that `gem install github-linguist -v '4.7.6'` succeeds before
bundling.

 

Edit PDF    Send article as PDF   

上一篇文章 CI 系统搭建:一. 基础环境设置、规划 大概规划了下环境,本文主要用来记录安装 Gitlab 的过程,主要参考官方文档 并没有做太多的修改。

 

 

 

 

设置源

 

设置国内 163 apt 源

 

# vim /etc/apt/sources.list
deb http://mirrors.163.com/ubuntu/ precise main universe restricted multiverse
deb http://mirrors.163.com/ubuntu/ precise-security universe main multiverse restricted
deb http://mirrors.163.com/ubuntu/ precise-updates universe main multiverse restricted
deb http://mirrors.163.com/ubuntu/ precise-proposed universe main multiverse restricted
deb http://mirrors.163.com/ubuntu/ precise-backports universe main multiverse restricted

deb-src http://mirrors.163.com/ubuntu/ precise main universe restricted multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-security universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ precise-proposed universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ precise-backports universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ precise-updates universe main multiverse restricted
# apt-get update

 


 

安装依赖包

 

Gitlab 依赖包、库

 

sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev \
   libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl openssh-server \
   redis-server checkinstall libxml2-dev libxslt1-dev libcurl4-openssl-dev \ 
   libicu-dev logrotate

 

安装 markdown 文档风格依赖包

 

sudo apt-get install -y python-docutils 

 

安装 git,Gerrit 依赖 gitweb,同时 GitLab 依赖 git 版本 >= 1.7.10,Ubuntu apt-get 默认安装的是 1.7.9.5,当然不升级也是没有问题的

 

sudo apt-get install -y git git-core gitweb git-review gitk

 

升级 Git 版本(可选)

 

sudo apt-get install -y git gitweb
sudo apt-get remove git-core
sudo apt-get install -y libexpat1-dev gettext libz-dev (zlib1g-dev)
cd /tmp
curl --progress https://git-core.googlecode.com/files/git-1.8.4.1.tar.gz | tar xz
cd git-1.8.4.1/
下载 2.0.0版

curl --progress https://www.kernel.org/pub/software/scm/git/git-2.0.0.tar.gz | tar xz
cd git-2.0.0/

make prefix=/usr/local all
sudo make prefix=/usr/local install
# * 如果升级了 git 的版本,相应修改 Gitlab.yml 中的 git 脚本位置,这一步在 clone gitlab 后在操作*
sudo -u git -H vim /home/git/gitlab/config/gitlab.yml
bin_path: /usr/local/bin/git

 

Gitlab 需要收发邮件,安装邮件服务器

 

sudo apt-get install -y postfix

 

如果安装了 ruby1.8,卸载掉,Gitlab 依赖 2.0 以上

 

sudo apt-get remove ruby1.8

 

下载编译 ruby2.0

 

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
下载 2.1.2 版的 ruby 
curl --progress ftp://ftp.ruby-lang.org/pub/ruby/2.1/ruby-2.1.2.tar.gz | tar xz
cd ruby-2.1.2
./configure --disable-install-rdoc
make
sudo make install

 

修改 gem 源指向 taobao

 

gem source -r https://rubygems.org/
gem source -a http://ruby.taobao.org/

 

安装 Bundel 命令

 

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

 


 

系统用户

 

给 Gitlab 创建一个 git 用户

 

sudo adduser --disabled-login --gecos 'GitLab' git

 


 

GitLab Shell

 

下载 Gitlab Shell,用来 ssh 访问仓库的管理软件

 

cd /home/git
sudo -u git -H git clone https://github.com/gitlabhq/gitlab-shell.git
cd gitlab-shell
sudo -u git -H cp config.yml.example config.yml

 

修改 gitlab-shell/config.yml

 

sudo -u git -H vim /home/git/gitlab-shell/config.yml
gitlab_url: "http://gitlab.thstack.com/"

 

安装 GitLab Shell

 

cd /home/git/gitlab-shell
sudo -u git -H ./bin/install

 执行结果:

mkdir -p /home/git/repositories: OK
mkdir -p /home/git/.ssh: OK
chmod 700 /home/git/.ssh: OK
touch /home/git/.ssh/authorized_keys: OK
chmod 600 /home/git/.ssh/authorized_keys: OK
chmod ug+rwX,o-rwx /home/git/repositories: OK

 


 

Mysql

 

安装 Mysql 包

 

sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev

 

给 Gitlab 创建 Mysql 数据库并授权用户访问

    登录 mysql 创建 gitlab 用户

 

# sudo mysql -uroot -p

> CREATE USER 'gitlab'@'localhost' IDENTIFIED BY '$password'; # 把这里的 $password 换成你自己的密码

    设置存储引擎为 Innode

SET storage_engine=INNODB;

 

   创建gitlab的数据库


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

   给数据库用户授权

  

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

   

     退出

    

> \q

    测试刚刚创建的 gitlab 用户名和密码是否可以正常登录

 

sudo -u git -H mysql -u gitlab -p -D gitlabhq_production

  

   可以正常登录后,即可退出,继续下面的安装

> \q

 


 

GitLab

 

下载 GitLab 源代码,并切换到最新的分支上

 

cd /home/git
sudo -u git -H git clone https://github.com/gitlabhq/gitlabhq.git gitlab
cd gitlab
sudo -u git -H git checkout 6-4-stable

最新版是 7-2-stable
sudo -u git -H git checkout 7-2-stable

 

配置 GitLab,修改 gitlab.yml,其中 host: 项和 gitlab-shell 中 gitlab_url 的主机一致

 

cd /home/git/gitlab
sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml
sudo -u git -H vim config/gitlab.yml
host: gitlab.thstack.com
email_from: gitlab@thstack.com
support_mail: gitlab@thstack.com
signup_enabled: true             #开启用户注册

 

创建相关目录

 

cd /home/git/gitlab
sudo -u git -H mkdir tmp/pids/
sudo -u git -H mkdir tmp/sockets/
sudo -u git -H mkdir public/uploads 
sudo -u git -H mkdir /home/git/repositories
sudo -u git -H mkdir /home/git/gitlab-satellites

 

修改相关目录权限

 

sudo chown -R git:git log/ tmp/
sudo chmod -R u+rwX  log/ tmp/ public/uploads

 

修改 unicorn.rb 监听端口为:8081

 

cd /home/git/gitlab/
sudo -u git -H cp config/initializers/rack_attack.rb.example \
config/initializers/rack_attack.rb
sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb
sudo -u git -H vim config/unicorn.rb
将原来的:
listen "127.0.0.1:8080", :tcp_nopush => true
改为下面的:
listen "gitlab.thstack.com:8081", :tcp_nopush => true

 

配置 GitLab 访问 mysql 数据库设置

 

cd /home/git/gitlab/
sudo -u git -H cp config/database.yml.mysql config/database.yml
sudo -u git -H vim config/database.yml  
*修改 Production 部分:*
production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: gitlabdb
  pool: 10
  username: gitlabuser
  password: "gitlabpass"
  host: localhost
  socket: /var/run/mysqld/mysqld.sock

 

设置 GitLab 使用指定邮箱发送邮件,注意 production.rb 的文件格式,开头空两格

 

cd /home/git/gitlab/
sudo -u git -H vim config/environments/production.rb
  #修改 :sendmail 为 :smtp
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    :address              => "smtp.googlemail.com",
    :port                 => 587,
    :domain               => 'thstack.com',
    :user_name            => 'gitlab@thstack.com',
    :password             => 'password',
    :authentication       =>  :plain,
    :enable_starttls_auto => true
  }
end          # 上面内容加入到 end 里面

 

安装 gem

 

修改 Gemfile 文件中源指向为 taobao

 

cd /home/git/gitlab/
sudo -u git -H vim Gemfile
source "http://ruby.taobao.org/"

 Gem::RemoteFetcher::FetchError: Errno::ETIMEDOUT: Connection timed out - connect(2) for "rubygems.org" port 443 (https://rubygems.org/gems/rake-10.4.2.gem)
An error occurred while installing rake (10.4.2), and Bundler cannot continue.
Make sure that `gem install rake -v '10.4.2'` succeeds before bundling.

虽然在文件中指向了国内 taobao 源,但是依然会卡一会,耐心等待…

 

cd /home/git/gitlab/
sudo -u git -H bundle install --deployment --without development test postgres aws

 

初始化数据库并激活高级功能

 

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

 

输入 yes 来初始化数据库、创建相关表,最后会输出 GitLab Web 管理员用来登录的账号和密码

 

Do you want to continue (yes/no)? yes
...
Administrator account created:
login.........admin@local.host
password......5iveL!fe

 

设置 GitLab 启动服务

 

cd /home/git/gitlab/
sudo cp lib/support/init.d/gitlab /etc/init.d/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

 

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

 

cd /home/git/gitlab/
sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
System information
System:         Ubuntu 12.04
Current User:   git
Using RVM:      no
Ruby Version:   2.0.0p353
Gem Version:    2.0.14
Bundler Version:1.3.5
Rake Version:   10.1.0

GitLab information
Version:        6.4.2
Revision:       214a013
Directory:      /home/git/gitlab
DB Adapter:     mysql2
URL:            http://gitlab.thstack.com
HTTP Clone URL: http://gitlab.thstack.com/some-project.git
SSH Clone URL:  git@gitlab.thstack.com: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

 

启动 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

 

最后编译一下

 

sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production

 


 

Nginx

 

安装 Nginx 包

 

sudo apt-get install -y nginx

 

配置 Nginx

 

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/gitlab
sudo vim /etc/nginx/sites-available/gitlab
listen *:80 default_server;
server_name gitlab.thstack.com;
proxy_pass http://gitlab.thstack.com:8081;

 

启动 Nginx

 

/etc/init.d/apache2 stop
/etc/init.d/nginx restart

 

访问

 

用浏览器访问: http://gitlab.thstack.com
用户名:admin@local.host
密码:5iveL!fe

 

2: https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/insta llation.md

 

界面简单使用

 

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

分享到:
评论

相关推荐

    gitlab-cicd(devops)搭建测试案例.docx

    《GitLab CI/CD (DevOps) 搭建与测试案例详解》 GitLab CI/CD 是一种持续集成和持续部署(CI/CD)工具,它与GitLab仓库紧密集成,可自动化软件开发流程,包括编译、测试、部署等步骤。本文将详细介绍如何在GitLab...

    spring-cloud-ci-template:使用GitLab和Docker的Spring Cloud模板项目和CI

    Spring Cloud GitLab Docker CI搭建Spring Cloud template projects and CI with GitLab and Docker目标搭建Spring Cloud + GitLab + Docker的持续集成开发环境。内容Spring Cloud Hello World工程: 含Eureka,Feign...

    阿里云服务器CentOS7.2安装配置gitlab

    GitLab是一款开源的Git仓库管理工具,它提供了非常丰富的特性,如版本控制、项目管理、CI/CD等,适合团队协作开发。本文档假设读者已经具备基本的Linux操作技能。 #### 二、准备工作 1. **环境准备**: - 操作...

    gitlab服务线上环境实战搭建

    - **配置CI/CD**: 在项目的根目录创建`.gitlab-ci.yml`文件,定义构建、测试和部署流程。 - **触发构建**: 当代码发生变化时,自动触发CI/CD流程。 - **环境部署**: 通过CI/CD流程自动化部署至测试或生产环境。 ...

    gitlab安装包及依赖,配合https://editor.csdn.net/md/?articleId=123552886本文

    本压缩包文件包含了GitLab的安装包及其运行所必需的依赖,适用于CentOS操作系统,这使得在CentOS系统上搭建GitLab变得更加便捷。 首先,让我们深入了解一下GitLab的安装过程。在CentOS系统中,GitLab的安装通常分为...

    gitlab安装_gitlab安装_

    - 持续集成/持续部署(CI/CD):通过`.gitlab-ci.yml`配置文件,定义自动化测试和部署流程。 - 自定义Runner:配置自定义的执行环境,满足特定项目需求。 - API访问:利用GitLab RESTful API进行自动化管理或集成...

    Gitlab+server.pdf

    总结,搭建GitLab服务器涉及安装依赖、下载安装包、配置和启动服务,以及用户创建和SSH密钥的设置。在集群开发环境中,GitLab可以作为一个强大的工具,帮助团队管理代码版本、追踪项目进度,并提供CI/CD能力。通过...

    20分钟在自己的linux主机上搭建一个属于自己的gitlab服务器.docx

    GitLab是一款开源的Git仓库管理工具,它提供了与GitHub类似的功能,包括代码托管、项目管理、持续集成/持续部署(CI/CD)等。 **步骤1:购买云服务器** 首先,你需要购买一台云服务器,如华为云、阿里云或百度云等。...

    GitLab 入门教程:环境搭建与使用

    GitLab 是一个开源的代码托管和协作平台,功能类似于 GitHub。它可以帮助团队管理代码库、跟踪...这个文档详细描述了如何从头搭建并配置一个GitLab环境,包括安装、配置、用户和群组管理的具体步骤​(Gitlab环境搭建)。

    gitlab配置

    **GitLab**是一种流行的源代码管理系统,能够支持版本控制、代码审查、持续集成/持续部署(CI/CD)等功能,广泛应用于软件开发流程中。对于想要在生产环境中设置GitLab服务器的用户来说,了解其安装过程及注意事项至...

    Gitlab搭建所需软件

    GitLab 是一个开源的版本控制系统,它提供了代码托管、代码审查、持续集成/持续部署(CI/CD)、问题跟踪和项目管理等功能,是许多开发者和团队进行协作开发的重要工具。要搭建自己的 GitLab 服务器,首先需要确保...

    基于SonarQube7.4实现代码规范自动化检测解决方案.docx

    1. 后端开发人员 push/merge 代码到 dev 分支时,触发 gitlab-ci,启动 gitlab-runner 执行 gitlab-ci.yml 脚本,执行 sonar-scanner 代码规范扫描命令。 2. 扫描结果推送至 SonarQube,检测结束之后触发 SonarQube-...

    gitlab+jenkins+sonar自动化部署部署学习视频

    - 在GitLab中创建项目,并配置.gitlab-ci.yml文件定义CI/CD流程。 - 在Jenkins中创建构建任务,配置源码管理、构建触发器等。 - 使用Jenkins插件或命令行工具将构建结果发送到SonarQube进行质量分析。 - 根据...

    GitLab安装Guide.docx

    GitLab是一款开源的版本控制系统,它提供了代码仓库管理、代码审查、持续集成(CI/CD)、问题跟踪等功能,是很多企业或个人进行软件开发协作的重要工具。本指南将详细介绍如何在本地环境中搭建一个私有的GitLab...

    vagrant-gitlab-ci-runner:Vagrant中的Gitlab CI Runner。 由VirtualBox设置

    【标题】:Vagrant与GitLab CI Runner的整合——基于VirtualBox的配置实践 在现代软件开发流程中,持续集成(Continuous Integration, CI)扮演着至关重要的角色,它确保了代码质量并加速了项目的交付。GitLab CI/...

    gitlab安装包.zip

    GitLab是一款开源的版本控制系统,它提供了代码管理、持续集成/持续部署(CI/CD)、问题跟踪、代码审查等功能,是许多开发团队进行协作开发的重要工具。本安装包是针对GitLab的镜像源安装,这意味着它包含了预配置的...

    Linux(centos7)安装Gitlab

    GitLab 是一款非常流行的 Web 应用程序,它提供了一个全面的 DevOps 平台,允许团队进行版本控制、代码审查、持续集成/持续部署(CI/CD)以及监控等操作。GitLab 基于 Git,后者是一种分布式版本控制系统,广泛应用...

    gitlab实现持续集成

    1. 安装GitLab服务器:首先需要搭建GitLab环境,这可以通过多种方式完成,例如安装一个预编译的包、使用Docker、或者从源代码编译安装。安装完成后,可以在指定的地址(如***)进行访问。 2. 安装GitLab Runner:...

    gitlab服务端搭建

    在实际使用中,GitLab 还支持与其他工具集成,比如 Mattermost(用于团队沟通)、Jenkins(增强 CI/CD 功能),以及自定义的 Webhooks。此外,GitLab 提供了强大的权限控制,可以根据不同的角色分配不同的访问级别,...

    centos7平台集成Jenkins+gitlab

    本文主要介绍了基于 CentOS 7.0 平台搭建 GitLab+Jenkins 可持续集成环境的过程,包括 JDK 安装、Jenkins 安装、GitLab 安装和配置、访问 GitLab 等步骤。 一、JDK 安装 在开始安装 Jenkins 和 GitLab 之前,需要...

Global site tag (gtag.js) - Google Analytics