December 24, 2012

Ubuntu 12.04にGitLab 4.0をインストールしてMySQLとApacheで動かす

基本的には https://github.com/gitlabhq/gitlabhq/blob/4-0-stable/doc/install/installation.md の通りですが、NginxではなくApacheで動かしてみます。

尚、vimのインストール等、省略している箇所があります。

1. パッケージのインストール
$ sudo apt-get update
$ 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  wget curl git-core openssh-server redis-server postfix checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev
* Postfix関係で、 "General type of mail configuration:"は"Internet Site"を選択しました。
* Postfix関係で、ドメイン(FQDN)の入力をしました。/etc/postfix/main.cfのmydestinationの値に設定されていました。

2. pythonのバージョンを確認
$ python --version
Python 2.7.3
* 2.5以上が必要とのことです。また、3.xは非サポートとのことです。

3. Ruby(ruby-1.9.3-p327)とBundlerのインストール
http://madroom-project.blogspot.jp/2012/12/ubuntu-1204ruby_23.html

4. ユーザの追加、グループの編集、鍵の作成
$ sudo adduser \
  --system \
  --shell /bin/sh \
  --gecos 'Git Version Control' \
  --group \
  --disabled-password \
  --home /home/git \
  git

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

$ sudo usermod -a -G git gitlab

$ sudo -u gitlab -H ssh-keygen -q -N '' -t rsa -f /home/gitlab/.ssh/id_rsa
5. Gitoliteのインストールと設定
$ cd /home/git
$ sudo -u git -H git clone -b gl-v320 https://github.com/gitlabhq/gitolite.git /home/git/gitolite

$ sudo -u git -H mkdir /home/git/bin
$ sudo -u git -H sh -c 'printf "%b\n%b\n" "PATH=\$PATH:/home/git/bin" "export PATH" >> /home/git/.profile'
$ sudo -u git -H sh -c 'gitolite/install -ln /home/git/bin'

$ sudo cp /home/gitlab/.ssh/id_rsa.pub /home/git/gitlab.pub
$ sudo chmod 0444 /home/git/gitlab.pub

$ sudo -u git -H sh -c "PATH=/home/git/bin:$PATH; gitolite setup -pk /home/git/gitlab.pub"

$ sudo chmod 750 /home/git/.gitolite/
$ sudo chown -R git:git /home/git/.gitolite/

$ sudo chmod -R ug+rwXs,o-rwx /home/git/repositories/
$ sudo chown -R git:git /home/git/repositories/
* 以下の"example.com"は適切な値に置換して下さい。
$ echo "Host localhost
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null" | sudo tee -a /etc/ssh/ssh_config

$ echo "Host example.com
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null" | sudo tee -a /etc/ssh/ssh_config
* 以下、sshのポートを変更していると、"ssh: connect to host localhost port 22: Connection refused"のエラーが出ます。その場合、"ssh://git@localhost:[ポート番号]/gitolite-admin.git"の形式にして下さい。( https://github.com/gitlabhq/gitlabhq/issues/1063#issuecomment-9956749 より。)
$ sudo -u gitlab -H git clone git@localhost:gitolite-admin.git /tmp/gitolite-admin

$ sudo rm -rf /tmp/gitolite-admin
6. MySQLのインストール(phpMyAdminは不要)
http://madroom-project.blogspot.jp/2012/12/ubuntumysql.html

7. MySQLの設定
* パスワード等は、適宜置換して下さい。
$ mysql -u root -p

mysql> CREATE USER 'gitlab'@'localhost' IDENTIFIED BY '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 ON `gitlabhq_production`.* TO 'gitlab'@'localhost';
mysql> \q

$ sudo -u gitlab -H mysql -u gitlab -p -D gitlabhq_production
mysql> \q
8. GitLabのインストールと設定
$ cd /home/gitlab
$ sudo -u gitlab -H git clone https://github.com/gitlabhq/gitlabhq.git gitlab
$ cd /home/gitlab/gitlab
$ sudo -u gitlab -H git checkout 4-0-stable

$ cd /home/gitlab/gitlab
$ sudo -u gitlab -H cp config/gitlab.yml.example config/gitlab.yml

$ sudo chown -R gitlab log/
$ sudo chown -R gitlab tmp/
$ sudo chmod -R u+rwX  log/
$ sudo chmod -R u+rwX  tmp/

$ sudo -u gitlab -H cp config/unicorn.rb.example config/unicorn.rb
* 以下、"localhost"を実際のドメイン名に書き換えます。
$ sudo -u gitlab -H vim config/gitlab.yml
9. GitLab用のDB(Mysql)設定
* 以下、コピーした後、productionのusernameとpasswordを書き換えます。
$ sudo -u gitlab cp config/database.yml.mysql config/database.yml
10. Gemパッケージのインストール(MySQLの場合)
$ cd /home/gitlab/gitlab
$ sudo gem install charlock_holmes --version '0.6.9'
$ sudo -u gitlab -H bundle install --deployment --without development test postgres
11. Gitの設定
$ sudo -u gitlab -H git config --global user.name "GitLab"
$ sudo -u gitlab -H git config --global user.email "gitlab@localhost"
12. GitLabのHook設定
$ sudo cp ./lib/hooks/post-receive /home/git/.gitolite/hooks/common/post-receive
$ sudo chown git:git /home/git/.gitolite/hooks/common/post-receive
13. DBの初期化
$ sudo -u gitlab -H bundle exec rake gitlab:app:setup RAILS_ENV=production
* sshのポートを変更していると、"ssh: connect to host localhost port 22: Connection refused"のエラーが出ます。その場合、/home/gitlab/.ssh/configを編集します。
$ sudo -u gitlab vim /home/gitlab/.ssh/config
-- /home/gitlab/.ssh/config --
Host localhost
Port [ポート番号]
14. 初期化スクリプトのインストールとGitLabの起動
$ sudo wget https://raw.github.com/gitlabhq/gitlab-recipes/master/init.d/gitlab -P /etc/init.d/
$ sudo chmod +x /etc/init.d/gitlab

$ sudo update-rc.d gitlab defaults 21
$ sudo service gitlab start
15. ステータスの確認
$ sudo -u gitlab -H bundle exec rake gitlab:env:info RAILS_ENV=production
$ sudo -u gitlab -H bundle exec rake gitlab:check RAILS_ENV=production
16. ApacheとPassengerのインストール(RubyとBundlerはインストール済)
http://madroom-project.blogspot.jp/2012/12/ubuntu-1204apachepassenger.html

17. Apacheの設定
$ sudo vim /etc/apache2/sites-available/gitlab
-- /etc/apache2/sites-available/gitlab --
* 以下、"sudo passenger-install-apache2-module"した際の内容に、"RailsBaseURI /gitlab"を付け加えています。とりあえずGitLab専用の設定という意味で、/etc/apache2/sites-available/gitlabに隔離しています。
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.18/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.18
#PassengerRuby /usr/local/bin/ruby
 
RailsBaseURI /gitlab
18. Apacheの設定反映
$ sudo ln -s /home/gitlab/gitlab/public /var/www/gitlab
$ sudo a2ensite gitlab
$ sudo service apache2 reload

19. [ベースURL]/gitlab にアクセス
* 初期のアカウントは admin@local.host / 5iveL!fe です。

No comments:

Post a Comment