Vagrant + CentOS6.6 + GitLab Omnibus 7.8.4（アップグレード方法もあるよ）

# 20分でセットアップできる簡単手順
ほんまいい時代だわや。今回は、20分でできるわやー。（10分ではできませんでした）

## Gitlabって
GitHubを使用したいがセキュリティの関係とか大人の諸事情（￥）で使えなかったりする場合、GitHubクローンっていうのがあります。その中でも一押しなのが「GitLab」。Omnibus版 を使えばセットアップも簡単だしVagrantだったら…そのまま初期運用でも問題なし。

## 前提条件
Vagrant の環境を構築済みは必須であること。vm は、CentOS6.6 で構築。あと基本的なとこは下記を読むよろし。

> https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md#configuration

### Vagantfile 
Gitlab 用にvmを用意します。private なネットワークを使ってるのでそこらへんは適宜修正すること。
メモリーは、384MBだときついので、余裕があれば最低1024MBをとることをお勧めします（SSD環境ならswap発生しても気にならないけどね）


```lang:Vagantfile
config.vm.define :gitlab do |gitlab|
  gitlab.vm.hostname = "gitlab"
  gitlab.vm.network :private_network, ip: "192.168.11.108" 
  gitlab.vm.provider "virtualbox" do |v| 
    v.customize ["modifyvm", :id, "--memory", 1024] 
    v.name = "gitlab" 
  end

  gitlab.vm.provision "shell", inline: <<-EOT
    echo "ZONE=\"Asia/Tokyo\"" > /etc/sysconfig/clock
    echo "UTC=\"false\"" >> /etc/sysconfig/clock
    cp -p /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
  EOT
end
```

### Gitlab 設定の前に
```gitlab-ctl reconfigure``` 実行時に必要なファイル ```/etc/gitlab/gitlab.rb``` を事前に作成しておくこと。

```lang:command
$ sudo mkdir -p /etc/gitlab
$ sudo touch /etc/gitlab/gitlab.rb
$ sudo chmod 600 /etc/gitlab/gitlab.rb
```

### RPM のダウンロードと設定
最新版の Omnibus を使う設定（2015/3/19）。下記のコマンドで全部入ります。特に Geilab は、chefで必要な情報を設定まで行うので見ていて気持ちがいいですわ。

> [GitLab CE Downloads](https://about.gitlab.com/downloads/)

上記のページに書いてあるとおりに実行すればok。

```lang:command
$ sudo yum install openssh-serve
$ sudo yum install postfix
$ sudo yum install cronie
$ sudo service postfix start
$ sudo chkconfig postfix on
$ sudo lokkit -s http -s ssh
```

```lang:command
$ curl -O https://downloads-packages.s3.amazonaws.com/centos-6.6/gitlab-7.8.4_omnibus-1.el6.x86_64.rpm
$ sudo rpm -i gitlab-7.8.4_omnibus-1.el6.x86_64.rpm
$ sudo gitlab-ctl reconfigure
```

### MTA の設定
作成した vm は新規ユーザ作成時などメール通知することだけとし、メールを受け取ることはないことを前提のポリシーとします。そんなわけで最低限の設定(SMTP)だけ設定を行います（長期的な運用だったら色々と考慮しないとだめよ）。example.jp は自ドメインを設定すること。

```lang:command
$ grep -v -e "^[ \t]*#" -e "^$" /etc/postfix/main.cf
myhostname = mx.example.jp
mydomain = example.jp
myorigin = $mydomain
$ sudo /etc/init.d/postfix restart
```

自分の携帯とかアカウントに ```mail``` コマンドを使用しテスト送信してみる。あと気合い入れて postfix を設定するなら下記のサイトさんが最高にわかりやすい。
> http://kajuhome.com/postfix.shtml 

### /etc/gitlab/gitlab.rb の設定
gitlab_email_from 部分は、FQDN が正しく設定されていればいいですが「細かいことは面倒」というのであれば強引に書き換えてしまうのも吉。ちなみに Omnibus版 を使用しているのであれば特に書き直す必要はあまりないと思われる（proxy使ってるとか色々あると思うけどね）。

> https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/files/gitlab-cookbooks/gitlab/attributes/default.rb

```/etc/gitlab/gitlab.rb
external_url "http://192.168.11.108"
unicorn["worker_processes"] = 1
postgresql["shared_buffers"] = "128MB"
postgresql["effective_cache_size"] = "32MB"
gitlab_rails['gitlab_email_from'] = "gitlab@example.jp"
```

### 再設定と起動
```gitlab-ctl restart``` 実行しても unicorn の起動が遅いので、1,2分経過してから、```http://192.168.11.108``` にアクセスすること。「意外と遅い」それは認識しておくｗ

```
% sudo gitlab-ctl reconfigure
% sudo gitlab-ctl restart
```

### 初期ユーザでログイン
GitLab の初期アクセスを行いユーザを作成する。ユーザの作成終了後に、ユーザ作成時に設定したメールアドレスにメールが通知されていればok。

```
Username: root 
Password: 5iveL!fe
```

### Gitlab の使用方法
BIGLOBE クラウドホスティング 無料 で公開している Gitlab の資料がとてもわかりやすい。

> [BIGLOBE クラウドホスティング 開発お役立ちパック  GitLab 利用マニュアル](http://cloudapplistore.biglobe.ne.jp/ca/help/devops_2_manual_GitLab.pdf)

# Omnibus版のアップグレード方法
rpm でパッケージをインストールし設定ファイルを再定義するだけ。

```
$ curl -O https://downloads-packages.s3.amazonaws.com/centos-6.6/gitlab-7.8.4_omnibus-1.el6.x86_64.rpm
$ sudo rpm -Uvh gitlab-7.8.4_omnibus-1.el6.x86_64.rpm
$ sudo gitlab-ctl reconfigure
$ sudo gitlab-ctl restart
```

## その他

> [GitLab CE Omnibus のインストール - ダメ出し Blog](https://fumiyas.github.io/gitlab/install-omnibus.html)