GitLabインストールしたよ!って記事です。
もくじ
きっかけ
社内で、「git使って、Pull Request文化取り入れようぜ!」
という機運が上がってきたので、入れる担当になったのですが・・・(´・ω・`)
これが、思わぬ所でハマったので簡単に手順メモです。
GitLabとは
そもそも、「GitLab」とは?
一言で言うと
githubのオープンソースクーロンです。
簡単に自分が調べた限りの特徴を
- 社内などプライベートなサーバーに構築
- github に似たUIを持っている
- issue, wiki, Merge Requests(pull request)
- Ruby on Rails で作られている
- ソースが公開されていて自由にインストールできる
要は、github使いたいけど、ソースが「公開」になるのはまずいよな~ と、いうのに答えるプロダクトです。
前提条件
- Ubuntu 12.04 LTS
- Ruby はdeb
- DBはMySQL
- とりあえず、Productionのみ
- バージョン 5.1 ← ここ大事w
流れ
すくなくとも公式では、パッケージが提供されていないので、「公式」の手順(5.1)通り進めていきます。
- ビルド?に必要なパッケージのインストール
- git ユーザーの追加
- 「GitLab shell」のインストール
- MySQL で、Productionのユーザー、DB作成
- 「GitLab」のインストール
- nginx のインストール
- gitlab の自動起動設定
インストール手順
主に本家の通りですが、Rubyのインストールだけaptでdebパッケージから入れています。
- https://github.com/gitlabhq/gitlabhq/blob/5-1-stable/doc/install/installation.md
必要なパッケージのインストール
sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl git-core openssh-server redis-server checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev sudo apt-get install postfix sudo apt-get install mysql-server libmysqlclient-dev
- Rubyのインストール
sudo apt-get install rubygems1.9.1 ruby1.9.1-dev
- Bundler(Ruby)のインストール
sudo gem install bundler
分けて「インストール」しているのは、特に理由はありませんので、一緒にしたい方は一緒にインストールしちゃってください!
git ユーザーの追加
sudo adduser --disabled-login --gecos 'GitLab' git
「GitLab shell」のインストール
- 公式手順のほぼ、まんまコピペです。(^^;)
# Login as git sudo su git # Go to home directory cd /home/git # Clone gitlab shell git clone https://github.com/gitlabhq/gitlab-shell.git cd gitlab-shell # switch to right version git checkout v1.2.0 cp -v config.yml.example config.yml # Edit config and replace gitlab_url # gitlab_url: "http://localhost/" ⇒ "[利用FQDN]" # vim config.yml # OR # sed -i 's/localhost/[利用FQDN]/' config.yml sed -i "s/localhost/`hostname -f`/" config.yml # Do setup ./bin/install
MySQL で、Productionのユーザー、DB作成
# MySQL の最低限の調整 sudo mysql_secure_installation # MySQLにログイン $ mysql -u root -p # gitlabユーザーを作成($passwordにパスワード) mysql> CREATE USER 'gitlab'@'localhost' IDENTIFIED BY '$password'; # プロダクション用のデータベースを作成 mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`; # gitlabユーザーに権限を付与 mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO 'gitlab'@'localhost'; mysql> flush privileges; mysql> quit
「GitLab」のインストール
- いよいよ本体のインストールです!
cd /home/git # Clone GitLab repository sudo -u git -H git clone https://github.com/gitlabhq/gitlabhq.git gitlab # Go to gitlab dir cd /home/git/gitlab # Checkout to stable release sudo -u git -H git checkout 5-1-stable cd /home/git/gitlab # Copy the example GitLab config sudo -u git -H cp -v config/gitlab.yml.example config/gitlab.yml # "localhost" を "利用のFQDN" に # ちなみにここで設定する "ホスト名" が画面で出てくる、「gitのURL」になります。 # sudo -u git -H vim config/gitlab.yml # OR # sudo -u git -H sed -i 's/localhost/[利用FQDN]/' config/gitlab.yml sudo -u git -H sed -i "s/localhost/`hostname -f`/" config/gitlab.yml # 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 log/ sudo chmod -R u+rwX tmp/ # Create directory for satellites sudo -u git -H mkdir /home/git/gitlab-satellites # Create directories for sockets/pids and make sure GitLab can write to them 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/ # Copy the example of Puma config sudo -u git -H cp -v config/puma.rb.example config/puma.rb
- DBの設定(MySQL)
sudo -u git cp -v config/database.yml.mysql config/database.yml # DB 情報設定 sudo -u git vim config/database.yml
- インストール
cd /home/git/gitlab sudo gem install charlock_holmes --version '0.6.9' # gitlab のインストール sudo -u git -H bundle install --deployment --without development test postgres
- DB にデータ入力
sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production
- gitlab の起動
# gitlab の起動 sudo /etc/init.d/gitlab restart
nginx のインストール
GitLabはpumaのsocketで立ち上がるので、 フロントでサーバーが必要となるので、推奨の「nginx」を導入します。
sudo apt-get install nginx
- nginx の設定
# サイトの設定ファイル設置 sudo curl --output /etc/nginx/sites-available/gitlab https://raw.github.com/gitlabhq/gitlab-recipes/5-1-stable/nginx/gitlab sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab # 設定ファイルの編集 # Change **YOUR_SERVER_IP** and **YOUR_SERVER_FQDN** # sudo vim /etc/nginx/sites-available/gitlab # OR sudo sed -i 's/YOUR_SERVER_IP://' /etc/nginx/sites-available/gitlab # sudo sed -i 's/YOUR_SERVER_FQDN/[利用FQDN]/' /etc/nginx/sites-available/gitlab sudo sed -i "s/YOUR_SERVER_FQDN/`hostname -f`/" /etc/nginx/sites-available/gitlab
gitlab の自動起動設定
# スクリプトの設置 sudo curl --output /etc/init.d/gitlab https://raw.github.com/gitlabhq/gitlab-recipes/5-1-stable/init.d/gitlab sudo chmod +x /etc/init.d/gitlab # 自動起動設定 sudo update-rc.d gitlab defaults 21 # gitlab の起動 sudo /etc/init.d/gitlab restart
- 出来上がり!(/・ω・)/
まとめ
- 4.x系と、5.0、5.1 と3種類くらいインストール方法があって、違うので注意!
Webに転がっている、記事見ると後で苦労するので、
面倒でも、本家の英語手順 を使うべき!
- クラウドだとAMIや、VM Depot あるよ!(それでいいのか!?w)
- やっぱり、github使った方がいいんじゃね??(/・ω・)/