Ubuntu之Gitlab、Gerrit、Jenkins協調工做配置之部分二:gitlab預配置

前提

  • 建立郵箱 gitlab@vzjc.comnoreply@vzjc.comnode

  • 添加 gitlab.zjc.com IP映射到系統的hosts文件或者DNS 
    python

    • $ sudo vim /etc/hostsmysql

    • 10.1.6.49 zjc.com zjc vzjc.com mail.vzjc.com gitlab.zjc.comnginx

安裝

安裝依賴包

Needed to compile Ruby and native extensions to Ruby gemsgit

$ sudo apt-get install vim # editor$ 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 libxslt-dev libcurl4-openssl-dev libicu-dev logrotate python-docutils pkg-config cmake nodejs12

安裝Git


$ sudo apt-get install -y git git-core gitweb git-review# Make sure Git is version 1.7.10 or higher, for example 1.7.12 or 2.0.0$ git --version12345

安裝配置Ruby

Ruby的版本能夠經過瀏覽http://cache.ruby-lang.org/pub/ruby/來查到github

下載安裝Ruby

# Remove the old Ruby 1.8 if present$ sudo apt-get remove ruby1.8$ mkdir /tmp/ruby && cd /tmp/ruby
$ curl -L --progress http://cache.ruby-lang.org/pub/ruby/ruby-2.2.2.tar.gz | tar xz
$ cd ruby-2.2.2$ ./configure --disable-install-rdoc
$ make
$ sudo make install12345678910

配置Ruby

*修改Gem源指向taobao 
https://rubygems.org/在國內被牆着
*web


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

安裝 Bundel 命令

$ sudo gem install bundler --no-ri --no-rdoc1

爲 Gitlab 建立一個 git 用戶

接下來Gitlab安裝都用這個帳戶redis

$ sudo adduser --disabled-login --gecos 'GitLab' git1

Gitlab Shell

用來 ssh 訪問倉庫的管理軟件sql

下載 Gitlab Shell

$ 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.yml12345

修改 gitlab-shell/config.yml

/etc/hosts裏修改gitlab.zjc.com指向本機IP或者配置DNS 
$ sudo vim /etc/hosts 
10.1.6.49 zjc.com zjc vzjc.com mail.vzjc.com gitlab.zjc.comshell

$ sudo -u git -H vim /home/git/gitlab-shell/config.ymlgitlab_url: "http://gitlab.zjc.com/"

安裝 GitLab Shell

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

Mysql

安裝 Mysql 包

$ sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev1

給 Gitlab 建立 Mysql 數據庫並受權用戶訪問

下面代碼中gitlabusergitlabpassgitlabdb分配給的用戶的用戶名和密碼,用戶能夠自行設置,可是在下面用到的地方要記得修改

$ sudo mysql -uroot -p
$ > create database gitlabdb;
$ > grant all on gitlabdb.* to 'gitlabuser'@'localhost' identified by 'gitlabpass';123

GitLab

下載 GitLab 源代碼,並切換到最新的分支上

$ cd /home/git
$ sudo -u git -H git clone https://github.com/gitlabhq/gitlabhq.git gitlab
$ cd gitlab# 切換到的最新穩定版號能夠經過瀏覽器瀏覽`https://github.com/gitlabhq/gitlabhq`,點擊branch得到$ sudo -u git -H git checkout 7-13-stable12345

配置 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.zjc.com 
email_from: gitlab@vzjc.com 
email_reply_to: noreply@vzjc.com

相關目錄-權限

# Make sure GitLab can write to the log/ and tmp/ directories$ sudo chown -R git log/
$ sudo chown -R git tmp/
$ sudo chmod -R u+rwX,go-w log/
$ sudo chmod -R u+rwX tmp/# Create directory for satellites$ sudo -u git -H mkdir /home/git/gitlab-satellites
$ sudo chmod u+rwx,g=rx,o-rwx /home/git/gitlab-satellites# Make sure GitLab can write to the tmp/pids/ and tmp/sockets/ directories$ sudo chmod -R u+rwX tmp/pids/
$ sudo chmod -R u+rwX tmp/sockets/# Make sure GitLab can write to the public/uploads/ directory$ sudo chmod -R u+rwX  public/uploads12345678910111213141516

修改 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 "gitlab.zjc.com:8081", :tcp_nopush => true12345

配置 GitLab 訪問 mysql 數據庫設置

$ cd /home/git/gitlab/
$ sudo -u git cp config/database.yml.mysql config/database.yml
$ sudo -u git -H vim config/database.yml  
修改 Production 部分,注意這裏用到的gitlabdb表的用戶名和密碼production:
  adapter: mysql2
  encoding: utf8
  collation: utf8_general_ci
  reconnect: false
  database: gitlabdb
  pool: 10
  username: gitlabuser
  password: "gitlabpass"
  host: localhost
  socket: /var/run/mysqld/mysqld.sock

設置 GitLab 使用指定郵箱發送郵件

$ cd /home/git/gitlab/
$ sudo -u git -H vim config/environments/production.rb修改 :sendmail 爲 :smtpconfig.action_mailer.delivery_method = :smtp$ sudo -u git -H cp config/initializers/smtp_settings.rb.sample config/initializers/smtp_settings.rb
$ sudo -u git -H vim config/initializers/smtp_settings.rb地址、端口、密碼等請根據實際狀況配置Gitlab::Application.config.action_mailer.delivery_method = :smtp

  ActionMailer::Base.smtp_settings = {
    address: "mail.vzjc.com",
    port: 587,
    user_name: "gitlab@vzjc.com",
    password: "111111",
    domain: "vzjc.com",
    authentication: :plain,
    enable_starttls_auto: true,
    openssl_verify_mode: 'none' # See ActionMailer documentation for other possible options
  }

安裝 gem

修改 Gemfile 文件中源指向爲 taobao

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

安裝必須的依賴項

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

初始化數據庫並激活高級功能

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

輸入 yes 來初始化數據庫、建立相關表,最後會輸出 GitLab Web 管理員用來登陸的帳號和密碼

這裏寫圖片描述

設置 GitLab 啓動服務

$ cd /home/git/gitlab/
$ sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
$ sudo update-rc.d gitlab defaults 21123

設置 GitLab 使用 Logrotate 備份 Log

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

檢查GitLab及其環境的配置是否正確:

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

System information
System:     Ubuntu 14.04
Current User:   git
Using RVM:  no
Ruby Version:   2.2.3p173
Gem Version:    2.4.5.1
Bundler Version:1.10.6
Rake Version:   10.4.2
Sidekiq Version:3.3.0

GitLab information
Version:    7.14.0
Revision:   6efd0bc
Directory:  /home/git/gitlab
DB Adapter: mysql2
URL:        http://gitlab.zjc.com
HTTP Clone URL: http://gitlab.zjc.com/some-group/some-project.git
SSH Clone URL:  git@gitlab.zjc.com:some-group/some-project.git
Using LDAP: no
Using Omniauth: no

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

啓動 GitLab 服務

$ sudo /etc/init.d/gitlab restart

最後編譯一下

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

安裝配置Nginx

若是未安裝Nginx,則安裝它

安裝方法查看本博客 Ubuntu下安裝Nginx、PHP

配置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/gitlabserver {
  listen 0.0.0.0:80;
  listen [::]:80;
  server_name gitlab.zjc.com;[...]
 location /uploads/ {   [...]
   proxy_pass http://gitlab.zjc.com:8081;
 }[...]
 location @gitlab {   [...]
   proxy_pass http://gitlab.zjc.com:8081;
 }

重啓Nginx

$ sudo /etc/init.d/nginx restart# or$ sudo service nginx restart123

訪問

用瀏覽器訪問: `http://gitlab.zjc.com`
用戶名:root
密碼:5iveL!fe

Gitlab帳戶配置

接下來作幾件事兒



  • Gitlab用root登陸

  • root用戶配置,修改郵箱爲admin@vzjc.com 


 admin爲主機上的帳戶,修改郵箱後會向此帳戶發送郵件,點擊郵件裏的驗證,郵箱就算是完全修改過來了

提示

若是在配置完後又修改了Gitlab的配置文件,那麼還須要執行Gitlab初始化數據庫和編譯操做,否則重啓後無效 (測試是這樣,待考證)

參考:

http://longgeek.com/2013/12/26/ci-system-structures-ii-gitlab-installation/ 
https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/installation.md 
http://my.oschina.net/u/1158620/blog/289191

相關文章
相關標籤/搜索