设为首页 收藏本站
查看: 955|回复: 0

[经验分享] gitlab install centos 详细步骤!

[复制链接]
发表于 2018-1-10 16:32:18 | 显示全部楼层 |阅读模式
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>  

  
# 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'>  
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,>  
//以上三条命令可以用以下替换
  
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'>  

  
//测试是否可以用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 "840595308@qq.com"
  
# 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>  
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:    git@git.happy.local: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 from=abc@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
  

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-433617-1-1.html 上篇帖子: 记一次gitlab添加用户收不到邮件的解决办法 下篇帖子: gitlab 的使用策略和简单介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表