gitlab install centos 详细步骤!

GitLab
    GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

CentOS安装GitLab

一、环境

    软件          版本
    CentOS          6.5
    Python          2.6
    Ruby          2.1.5
    Git              1.7.10+
    Redis          2.0+
    MySQL
    GitLab          7-8-stable
    GitLab Shell  v2.6.0
1、配置yum源(为了提高速度,将设置为阿里开源镜像)

    # cd /etc/yum.repos.d
    # mv CentOS-Base.repo CentOS-Base.repobak
    # wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

2、安装必要的软件包
    # yum -y install libicu-devel patch gcc-c++ readline-devel zlib-devel libffi-devel openssl-devel cmake autoconf automake libtool bison libxml2-devel libxslt-devel libyaml-devel zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker

注:以上软件包因个人机器环境不同,所需要也不一样,以下有因为缺哪个包而在安装过程中产生的问题。所以最好都安装下,没有坏处...除了花点时间。

##############################################################################################################################
问题一:
    如果提示下面的错误:
--------------------------------------------------------------------------------------------
An error occurred while installing charlock_holmes (0.6.9.4), and Bundler cannot continue.
Make sure that `gem install charlock_holmes -v ‘0.6.9.4‘` succeeds before bundling.

# gem install charlock_holmes -v ‘0.6.9.4‘

ERROR:  Could not find a valid gem ‘charlock_holmes‘ (= 0.6.9.4), here is why:
          Unable to download data from https://rubygems.org/ - Errno::ECONNRESET: Connection reset by peer - SSL_connect (https://api.rubygems.org/quick/Marshal.4.8/charlock_holmes-0.6.9.4.gemspec.rz)
ERROR:  Possible alternatives: charlock_holmes

# yum install libicu-devel

--------------------------------------------------------------------------------------------
An error occurred while installing rugged (0.21.4), and Bundler cannot continue.
Make sure that `gem install rugged -v ‘0.21.4‘` succeeds before bundling.

# sudo yum -y install cmake
# sudo gem install rugged -v ‘0.21.4‘

###############################################################################################################################

二、安装git
// 查看当前git版本
    # git --version

// 如果小于1.7.10则先卸载
    # yum remove -y git

// 下载最新的git并安装
    # wget -O git-src.zip https://github.com/git/git/archive/master.zip
    # unzip git-src.zip
    # cd git-master
    # make prefix=/usr/local all
    # make prefix=/usr/local install
    # ln -fs /usr/local/bin/git* /usr/bin/
// 验证安装的版本
    # git --version
    git version 2.7.0.GIT

三、安装Ruby环境
    # mkdir /tmp/ruby && cd /tmp/ruby
    # curl --progress ftp://ftp.ruby-lang.org/pub/ruby/ruby-2.1.5.tar.gz | tar -xvz
    # cd ruby-2.1.5
    # ./configure --disable-install-rdoc
    # make && make install

    # 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

// 设置ruby gem源为淘宝
    # gem source -r https://rubygems.org/
    # gem source -a https://ruby.taobao.org/
    # gem install bundler --no-ri --no-rdoc

四、添加git帐号并允许sudo
//添加运行该项目程序的用户
    # adduser --system --shell /bin/bash --comment ‘GitLab‘ --create-home --home-dir /home/git/ git
或
    # adduser -r -C ‘GitLab’ -s /bin/bash git
    #echo "git ALL=(ALL)       NOPASSWD: ALL" >>/etc/sudoers

五、安装MySQL及初始化GitLab库

//这里安装MySQL数据库略过
... ...
// 登录mysql创建gitab的帐号和数据库
    mysql> CREATE USER ‘gitlab‘@‘localhost‘ IDENTIFIED BY ‘gitlab‘;
    mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
    mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO ‘gitlab‘@‘localhost‘;
//以上三条命令可以用以下替换
    mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
    mysql> GRANT ALL ON gitlabhq_production.* TO ‘gitlab‘@‘localhost‘ IDENTIFIED BY ‘gitlab‘;

//测试是否可以用git帐号登录数据库
    # sudo -u git -H mysql -ugitlab -pgitlab

#################################################################################################
问题二:
    centos 遇到 sudo *(命令) command not found
    如提示sudo mysql command not found

    解决方法 修改/etc/sudoers 文件,找到 Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin 这一行将其注释掉删掉也行 这样在 sudo 的时候就不会reset path了

#################################################################################################

六、安装Redis
    # yum -y install redis
    # /etc/init.d/redis start
    # chkconfig redis on

七、安装GitLab
    # /home/git
    # sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 7-8-stable gitlab //根据网络环境不同,需要时间长短不等
    # cd /home/git/gitlab
    # sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml

// 编辑git路径, gitlab的host:port
    # vim config/gitlab.yml
// bin_path: /usr/local/bin/git
// host: localhost  ip 地址或者域名
// port: 80 

// 给文件夹添加相应的权限
    # chown -R git log/
    # chown -R git tmp/
    # chmod -R u+rwX  log/
    # chmod -R u+rwX  tmp/

// 创建必要的文件夹,以及复制配置文件
    # sudo -u git -H mkdir /home/git/gitlab-satellites
    # 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/
    # sudo -u git -H mkdir public/uploads
    # sudo chmod -R u+rwX  public/uploads
    # sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb
    # sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb

// 配置数据库连接信息
    # sudo -u git cp config/database.yml.mysql config/database.yml
    # sudo -u git -H vim  config/database.yml
    # vim config/database.yml
// production:
//     username: gitlab
//     password: "gitlab"

八、安装GitLab-Shell

    # cd /home/git
    # sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-shell.git -b v2.6.0
    # cd gitlab-shell/
    # sudo -u git -H cp config.yml.example config.yml

// 编辑配置文件, 设置gitlab_url, redis-cli, log-level...
    # vim config.yml
// gitlab_url: "http://git.happy.local/" //your FQDN 可以是IP地址
// /usr/bin/redis-cli

// 安装git-shell
    # sudo -u git -H ./bin/install

九、安装需要ruby的gems

    # cd /home/git/gitlab
// 这步因为在https://rubygems.org/上下载并包装会很慢,并且容易报错,所以... ...
    # vim Gemfile
    把https://rubygems.org/改成https://ruby.taobao.org/  // 然后... ...
    # sudo -u git -H bundle install --deployment --without development test postgres aws

// 中途如果不出意外的话,就安装完成

// 初始化数据库(创建GitLab相关表)

    # sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production
    提示中输入yes

// 完成后会建立管理员帐户和密码(记住):
    Administrator account created:

    login.........root
    password......5iveL!fe

// 安装启动文件以及日志切割文件

    # cp lib/support/init.d/gitlab /etc/init.d/gitlab
    # cp lib/support/init.d/gitlab.default.example /etc/default/gitlab
    # cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab
    # chmod +x /etc/init.d/gitlab
    # chkconfig --add gitlab
    # chkconfig gitlab on

十、设置git帐号信息

    # sudo -u git -H git config --global user.name "Gitlab"
    # sudo -u git -H git config --global user.email "[email protected]"
    # sudo -u git -H git config --global core.autocrlf input

十一、安装nginx (这里就直接用rpm包直接安装了)
// 配置nginx yum 源
    # cat  /etc/yum.repos.d/nginx.repo
    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
    gpgcheck=0
    enabled=1

// 安装配置nginx

    # yum -y install nginx
    # vim /etc/nginx/nginx.conf

        user              root git;
        worker_processes  2;
        pid        /var/run/nginx.pid;

        events {
            worker_connections  1024;
        }

        http {
            include       /etc/nginx/mime.types;
            default_type  application/octet-stream;

            log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                              ‘$status $body_bytes_sent "$http_referer" ‘
                              ‘"$http_user_agent" "$http_x_forwarded_for"‘;
        # GITLAB
        # Maintainer: @randx
        # App Version: 5.0

        upstream gitlab {
          server unix:/home/git/gitlab/tmp/sockets/gitlab.socket;
        }

        server {
          listen *:80 default_server;         # e.g., listen 192.168.1.1:80; In most cases *:80 is a good idea
          server_name YOUR_SERVER_FQDN;     # e.g., server_name source.example.com;
          server_tokens off;     # don‘t show the version number, a security best practice
          root /home/git/gitlab/public;

          # Set value of client_max_body_size to at least the value of git.max_size in gitlab.yml
          client_max_body_size 5m;

          # individual nginx logs for this gitlab vhost
          access_log  /var/log/nginx/gitlab_access.log;
          error_log   /var/log/nginx/gitlab_error.log;

          location / {
            # serve static files from defined root folder;.
            # @gitlab is a named location for the upstream fallback, see below
            try_files $uri $uri/index.html $uri.html @gitlab;
          }

          # if a file, which is not found in the root folder is requested,
          # then the proxy pass the request to the upsteam (gitlab unicorn)
          location @gitlab {
            proxy_read_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694
            proxy_connect_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694
            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_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;

            proxy_pass http://gitlab;
          }
        }
        }
// 启动nginx
    # nginx -t
    # chown -R git:git /var/lib/nginx/
    # /etc/init.d/nginx start

十二、检测当前环境

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

    System information
    System:
    Current User:    git
    Using RVM:    no
    Ruby Version:    2.1.5p273
    Gem Version:    2.2.2
    Bundler Version:1.11.2
    Rake Version:    10.3.2
    Sidekiq Version:3.3.0

    GitLab information
    Version:    7.8.4
    Revision:    019ffd9
    Directory:    /home/git/gitlab
    DB Adapter:    mysql2
    URL:        http://git.happy.local
    HTTP Clone URL:    http://git.happy.local/some-project.git
    SSH Clone URL:    [email protected]:some-project.git
    Using LDAP:    no
    Using Omniauth:    no

    GitLab Shell
    Version:    2.6.0
    Repositories:    /home/git/repositories/
    Hooks:        /home/git/gitlab-shell/hooks/
    Git:        /usr/bin/git

十三、拉取gitlab静态资源文件

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

十四、启动gitlab

    # /etc/init.d/gitlab start

十五、检测各个组件是否正常工作

    # sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production

// 检查出有问题,会提示如何修改

十六、邮件验证

1)

// 修配置文件
    # sudo -u git -H cp /home/git/gitlab/config/initializers/smtp_settings.rb.sample /home/git/gitlab/config/initializers/smtp_settings.rb
    # cd /home/git/gitlab/config/initializers
    # vi smtp_settings.rb

    # To enable smtp email delivery for your GitLab instance do the following:
    # To enable smtp email delivery for your GitLab instance do the following:
    # 1. Rename this file to smtp_settings.rb
    # 2. Edit settings inside this file
    # 3. Restart GitLab instance
    #
    if Rails.env.production?
      Gitlab::Application.config.action_mailer.delivery_method = :smtp

      ActionMailer::Base.smtp_settings = {
        address: "smtp.163.com",
        port: 25,
        user_name: "User_Name",
        password: "Password",
        domain: "163.com",
        authentication:login,
        enable_starttls_auto: true, // 如果SMTP不需要验证,请改为false
    #  openssl_verify_mode: ‘none‘    // 注释掉这行
      }
    end
2)
    # yum install mailx
    # vim /etc/mail.rc
// 在最后添加如下内容:
    set [email protected]163.com  //邮箱地址
    set smtp=smtp.163.com  //SMTP服务器
    set smtp-auth-user=abc  //帐号
    set smtp-auth-password=abc.com //密码
    set smtp-auth=login //登陆方式

3) 重启gitlab
    # /etc/init.d/gitlab restart

http://git.happy.local 或 http://192.168.0.80

同事帮忙写的。好强大的admin。 来自 Caxa 数码大方 guwendong
时间: 2024-10-14 13:09:24

gitlab install centos 详细步骤!的相关文章

CentOS系统安装详细步骤

CentOS系统安装详细步骤 --作为一个运维鸟,这种事情早晚要做的 一.实验环境 Linux:CentOS release 6.7 (Final) VMware: VMware 10.0 宿主机: Win10 x64,8G内存.双核4线程 二.CentOS介绍 CentOS(CommunityEnterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译

CentOS 6.5下Redis安装详细步骤

CentOS 6.5下Redis安装详细步骤 Redis简介: Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMware主持. redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set –有序集合)和hash(哈希类

linux/centos下安装nginx(rpm安装和源码安装)详细步骤

Centos下安装nginx rpm包                                                                                                                            www.169it.com 1 在nginx官方网站下载一个rpm包,下载地址是:http://nginx.org/en/download.html wget http://nginx.org/packages/c

使用virtualBox安装CentOS 6.3的详细步骤

由于前几天把系统升级到win7了,原先安装的Linux虚拟机都不存在了.基于学习,这次安装选择的是CentOS 6.3版本. 下面就看看具体的安装步骤: 名称可以随便填写,类型选择Linux,版本选择Linux 2.6,我之前试选择过其他的版本来安装,比如Ubuntu,结果未安装成功,不知道哪里出了错误.走了好多弯路后,终于另选择为Linux 2.6就意外地成功了.然后点击下一步. 一直下一步走到“存储在物理硬盘上”时,您可以选择固定大小,也可选择动态分配.如图: 我这里选择的是动态分配,继续下

Nginx+php-fpm环境配置详细步骤

   Nginx+php-fpm环境配置详细步骤 最全的Nginx各种版本下载地址:http://nginx.org/download/ 一.编译安装php-fpm 什么是PHP-FPM PHP-FPM是一个PHP FastCGI管理器,是只用于PHP的,可以在 http://php-fpm.org/download下载得到. PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中.必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用. 新版PH

使用Nginx和Logstash以及kafka来实现网站日志采集的详细步骤和过程

使用Nginx和Logstash以及kafka来实现网站日志采集的详细步骤和过程 环境介绍: linux虚拟机3台,主机名分别为hadoop01.hadoop02和hadoop03; 在这3台虚拟机上分别部署了3个Zookeeper,这里Zookeeper的具体安装步骤不做介绍; 在这3台虚拟机上分别部署了3个kafka,这里kafka的具体安装步骤也不做介绍; 我们在hadoop02这台机器上安装一个Logstash,其安装过程非常简单,解压既可使用; ====================

制作Windows Server 2003/08 image详细步骤与OpenStack介绍

原文标题:OpenStack制作Windows Server 2003/2008/2008R2 image正确步骤详解与OpenStack介绍,为适合阅读已将此标题长度缩减. 适用于以下搜索关键词: Windows Server 2003/2008 image for openstack Windows Server 2003/2008 qcow download Windows Server 2003/2008 qcow2 download Windows Server 2003/2008 g

Zabbix3.4安装详细步骤

Zabbix3.4安装的详细步骤 一.zabbix介绍 现在大多数公司都会用到监控软件,主流的监控软件就是Zabbix了,当然还会有Nagios等其他的软件: Zabbix简介: zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员快速定位/解决存在的各种问题. zabbix 由2部分构成,zabbix server 与可选组件zabbix agent. zabb

在CentOS6.4中安装配置LAMP环境的详细步骤

原文:在CentOS6.4中安装配置LAMP环境的详细步骤 本文详细介绍了CentOS6.4系统中安装LAMP服务并对其进行配置的过程,即安装Apache+PHP+Mysql,参照了网上大神的设置,其他Linux发行系统可以参考~ 在本文中部分命令操作需要root权限,输入‘su -’命令后输入密码即可切换root身份. 一.修改设置对安装做准备 1. 防火墙设置 设置/etc/sysconfig/iptables文件允许80端口和3306端口.因为80端口是http协议所使用的端口,如果防火墙