Gitlab源碼手動安裝

                                                                        Gitlab安裝和配置
系統環境:ubuntu 14.04.1_64bit
參考網址:
https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.md

一、    設置apt源及DNS:
//配置apt源
# vim /etc/apt/sources.list
deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse

deb http://mirrors.sohu.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.sohu.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.sohu.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.sohu.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.sohu.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ trusty-backports main restricted universe multiverse

deb http://mirrors.oschina.net/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.oschina.net/ubuntu/ trusty-backports main restricted universe multiverse
deb http://mirrors.oschina.net/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.oschina.net/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.oschina.net/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.oschina.net/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.oschina.net/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.oschina.net/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.oschina.net/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.oschina.net/ubuntu/ trusty-updates main restricted universe multiverse
//修改dns
#sudo vim /etc/resolv.conf
nameserver 202.106.0.20
nameserver 8.8.8.8
nameserver 202.96.134.133
nameserver 202.96.128.68
#sudo vim /etc/hosts
115.28.122.210  mirrors.aliyun.com
112.124.140.210 mirrors.aliyun.com
#sudo apt-get update -y
#sudo apt-get upgrade -y

二、安裝依賴包:
#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 libkrb5-dev

三、    安裝git:
//若原來的git版本太低,可以卸載重新安裝:
#sudo apt-get remove git-core
//安裝依賴包:
#sudo apt-get install -y libcurl4-openssl-dev libexpat1-dev gettext libz-dev libssl-dev build-essential
//下載安裝git:
#sudo mkdir /opt/gitlab
#cd /opt/gitlab
#wget https://www.kernel.org/pub/software/scm/git/git-2.1.2.tar.gz
#tar –zxvf git-2.1.2.tar.gz
#cd git-2.1.2
#sudo ./configure
#sudo make prefix=/usr/local all
#sudo make prefix=/usr/local install #安裝git到/usr/local/下
//給gitlab創建git用戶:
# sudo adduser --disabled-login --gecos 'GitLab' git

//安裝postfix郵件服務器
# sudo apt-get install -y postfix
 

四、    安裝ruby:
//移除舊版本,安裝新版本:
# sudo apt-get remove ruby1.8
#cd /opt
#wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.5.tar.gz
#tar –zxvf ruby-2.1.5.tar.gz
#cd ruby-2.1.5
#sudo ./configure --disable-install-rdoc
#sudo make
# sudo make install
//安裝Bundler Gem:
# sudo gem install bundler --no-ri --no-rdoc

五、安裝mysql數據庫
#sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev
# mysql –version
//安裝設置mysql的root密碼:
# sudo mysql_secure_installation
# mysql -u root –p
//創建一個gitlab數據庫用戶:
mysql> CREATE USER 'git'@'localhost' IDENTIFIED BY 'git';
//設定存儲引擎爲innodb,若報錯,檢查/etc/mysql/*.cnf、/etc/mysql/conf.d/*中"innodb = off"的設置:
mysql> SET storage_engine=INNODB;
//創建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, LOCK TABLES ON `gitlabhq_production`.* TO 'git'@'localhost';
mysql> \q;
//使用新用戶登錄新數據庫:
# sudo -u git -H mysql -u git -p -D gitlabhq_production
//登錄成功,證明設置生效,退出:
mysql> \q

六、    安裝redis
# sudo apt-get install redis-server
# sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.orig
//redis端口默認6379,官網設置爲0,我設置爲6379
# sed 's/^port .*/port 6379/' /etc/redis/redis.conf.orig | sudo tee /etc/redis/redis.conf
#echo 'unixsocket /var/run/redis/redis.sock' | sudo tee -a /etc/redis/redis.conf
# echo 'unixsocketperm 770' | sudo tee -a /etc/redis/redis.conf
# mkdir /var/run/redis
# chown redis:redis /var/run/redis
# chmod 755 /var/run/redis
if [ -d /etc/tmpfiles.d ]; then   
echo 'd  /var/run/redis  0755  redis  redis  10d  -' | sudo tee -a /etc/tmpfiles.d/redis.conf
fi
# sudo service redis-server restart
# sudo usermod -aG redis git
 

七、    安裝gitlab
1、克隆倉庫:
安裝gitlab到/home/git:
#cd /home/git
//克隆7.6版本的gitlab倉庫到服務器上:
# sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 7-6-stable gitlab
#cd /home/git/gitlab
#sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml
2、修改配置:
//修改gitlab配置文件gitlab.yml:
#sudo -u git -H vim config/gitlab.yml
(1) 在gitlab一欄下:
host改爲gitlab服務器ip,port改爲自定義端口
 
(2)找到email_from字段,改爲公司郵箱
 
(3)找到default_projects_features字段,issues、merge_requests、wiki爲true,snippets爲false,visibility_level爲private
 
(4)找到issues_tracker一欄,添加jira選項,如下圖:
    jira:
       title: "Atlassian Jira"
       project_url: "http://10.0.1.2:8080/issues/?jql=project=:issues_tracker_id"
       issues_url: "http://10.0.1.2:8080/browse/:id"
       new_issue_url: "http://10.0.1.2:8080/secure/CreateIssue.jspa"
 
//gravatar一欄默認:
 
//ldap一欄默認:
 
//amniauth一欄默認:
 
(5) GitLab Satellites一欄,修改爲安裝目錄路徑:
  satellites:
    path: /home/git/gitlab-satellites/
  backup:
    path: "tmp/backups"
 
(6) GitLab Shell一欄,修改爲安裝目錄路徑:
  gitlab_shell:
    path: /home/git/gitlab-shell/
    repos_path: /home/git/repositories/
    hooks_path: /home/git/gitlab-shell/hooks/
    upload_pack: true
    receive_pack: true
 
(7)git一欄設置爲git環境變量,max_size根據業務修改:
#which git
 
git:
     bin_path: /usr/bin/git
     max_size: 20971520
     timeout: 10
 
//其他默認不變:
 

3、設置gitab對log、tmp目錄有寫權限:
#sudo chown -R git log/
#sudo chown -R git tmp/
#sudo chmod -R u+rwX,go-w log/
#sudo chmod -R u+rwX tmp/

4、創建gitlab-satellites目錄:
#sudo -u git -H mkdir /home/git/gitlab-satellites
#sudo chmod u+rwx,g=rx,o-rwx /home/git/gitlab-satellites
//修改對tmp目錄、public目錄權限:
#sudo chmod -R u+rwX tmp/pids/
#sudo chmod -R u+rwX tmp/sockets/
#sudo chmod -R u+rwX  public/uploads

5、修改unicorn.rb文件:
#sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb
//查看核心數,根據內核數來設定worker_processes值:
#nproc
//將默認路徑改爲安裝目錄:
#sudo -u git –H vim config/unicorn.rb
worker_processes 2
working_directory "/home/git/gitlab"
listen "/home/git/gitlab/tmp/sockets/gitlab.socket", :backlog => 64
listen "127.0.0.1:8080", :tcp_nopush => true
timeout 30
pid "/home/git/gitlab/tmp/pids/unicorn.pid"
stderr_path "/home/git/gitlab/log/unicorn.stderr.log"
stdout_path "/home/git/gitlab/log/unicorn.stdout.log"
 
//其他默認不變:
 

6、設置git的全局配置:
# sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb
//配置全局用戶爲git:
# sudo -u git -H git config --global user.name "git"
//配置全局郵箱爲gitlab.yml中設置的郵箱:
# sudo -u git -H git config --global user.email 公司郵箱名
# sudo -u git -H git config --global core.autocrlf input

7、修改redis連接設置:
# sudo -u git -H cp config/resque.yml.example config/resque.yml
# sudo -u git -H vim config/resque.yml
//此處若不使用系統默認的resque.yml,需要自己修改redis socket路徑。
備註:確保gitlab.yml 和unicorn.rb的修改匹配你的設置

8、修改Gitlab DB 設置:
#sudo -u git cp config/database.yml.mysql config/database.yml
//只修改生產環境中設置,更新用戶和密碼,密碼使用雙引號:
# sudo –u git –H vim config/database.yml
production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: gitlabhq_production
  pool: 10
  username: git
  password: "git"
 
//設置git用戶對database.yml有讀的權限:
# sudo -u git -H chmod o-rwx config/database.yml

9、安裝Gems:
//先確保bundler 版本>=1.5.2(執行bundle -v)
#sudo -u git -H bundle install --deployment --without development test postgres aws

10、安裝GitLab Shell:
//GitLab Shell是一個用於ssh訪問權限認證和倉庫管理的軟件:
#sudo -u git -H bundle exec rake gitlab:shell:install[v2.4.0] REDIS_URL=unix:/var/run/redis/redis.sock RAILS_ENV=production

//修改GitLab Shell的配置文件config.yml,修改gitlab的用戶爲git、web登錄地址gitlab_url、倉庫放置路徑字段repos_path、認證密鑰路徑字段auth_file、redis主機和端口:
#sudo -u git -H vim /home/git/gitlab-shell/config.yml
 
11、初始化數據庫:
//初始化數據庫,產生一個默認用戶和密碼:
#sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production
 
//設置gitlab的web登錄新賬號和密碼後,一定記住!
#sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production GITLAB_ROOT_PASSWORD=”12345678”
 
account: root, 12345678

12、安裝gitlab初始啓動腳本init:
#sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
#sudo cp lib/support/init.d/gitlab.default.example /etc/default/gitlab
備註:若安裝gitlab不是默認目錄,必須修改/etc/default/gitlab中相關路徑
//設置gitlab自啓動
#sudo update-rc.d gitlab defaults 21

13、設置日誌輪詢:
#sudo cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab

14、檢查gitlab服務和環境變量配置是否正確:
#sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
 
15、編譯assets:
#sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production
//啓動gitlab實例
#sudo service gitlab start
 
#ps auxww
 
 

八、    安裝Nginx:
1、安裝nginx:
#sudo apt-get install -y nginx
2、站點配置:
//複製模版:
#sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlab #sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab
//修改站點監聽端口、ip、日誌目錄、socket路徑、站點public目錄:
#sudo vim /etc/nginx/sites-available/gitlab
upstream gitlab {
  server unix:/home/git/gitlab/tmp/sockets/gitlab.socket;
}
server {
  listen *:8088 default_server;
  server_name 10.0.1.1;
  server_tokens off;
  root /home/git/gitlab/public;
  client_max_body_size 5m;
  access_log  /var/log/nginx/gitlab_access.log;
  error_log   /var/log/nginx/gitlab_error.log;
 
//其他默認不變:
 
3、測試配置:
#sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
//重啓nginx
#sudo service nginx restart
到此,gitlab搭建完成!!!
//檢測所有應用是否正常:
#sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
都是綠色ok,表示正常。
 
 
打開瀏覽器,輸入:10.0.1.1:8088,輸入賬號、密碼登錄測試
 
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章