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

[经验分享] centos6 安装GitLab

[复制链接]

尚未签到

发表于 2018-1-10 18:36:28 | 显示全部楼层 |阅读模式
  环境
  Requirements
  软件 版本
  CentOS6.6
  Python2.6
  Ruby2.1.5
  Git1.7.10+
  Redis2.0+
  MySQL
  GitLab7-8-stable
  GitLab Shellv2.6.0
  yum源
  为了提高软件安装速度,将yum源设置为阿里云开源镜像
  $ cd /etc/yum.repos.d
  $ wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
  必要软件包
  $ yum -y install libicu-devel patch gcc-c++ readline-devel zlib-devel libffi-devel openssl-devel make 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
  安装Git
  // 查看当前git版本
  $ git --version
  // 如果小于1.7.10则先卸载
  $ yum remove git
  // 下载最新的git并安装
  $ wget -O git-src.zip https://github.com/git/git/archive/master.zip
  $ unzip git-src.zip
  $ cd git-src
  $ make prefix=/usr/local all
  $ make prefix=/usr/local install
  $ ln -fs /usr/local/bin/git* /usr/bin/
  安装Ruby环境
  $ mkdir /tmp/ruby && cd /tmp/ruby
  $ curl --progress ftp://ftp.ruby-lang.org/pub/ruby/ruby-2.1.5.tar.gz | tar xz
  $ 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 http://ruby.taobao.org/
  $ gem install bundler --no-ri --no-rdoc
  安装MySQL及初始化GitLab库
  $ yum install mysql mysql-devel mysql-server -y
  $ /etc/init.d/mysqld start
  $ chkconfig mysqld on
  // 登录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,>  //测试是否可以用git帐号登录数据库
  sudo -u git -H mysql -u gitlab -p -D gitlabhq_production
  安装Redis
  $ yum -y install redis
  $ /etc/init.d/redis start
  $ chkconfig redis on
  添加git帐号并允许sudo
  $ useradd --comment 'GitLab' git
  $ echo "git ALL=(ALL)       NOPASSWD: ALL" >>/etc/sudoers
  安装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
  // 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://localhost/"
  // /usr/bin/redis-cli
  // 安装git-shell
  $ sudo -u git -H ./bin/install
  安装需要ruby的gems
  $ cd /home/git/gitlab
  $ 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
  安装启动文件以及日志切割文件
  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
  设置git帐号信息
  $ sudo -u git -H git config --global user.name "Troy Zhang"
  $ sudo -u git -H git config --global user.email "troyz@synnex.com"
  $ sudo -u git -H git config --global core.autocrlf input
  安装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
  检测当前环境
  sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
  拉取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、欢迎大家加入本站运维交流群:群②: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-433654-1-1.html 上篇帖子: CentOS GitLab环境搭建 下篇帖子: git push上传代码到gitlab上,报错401/403(或需要输入用户名和密码)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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