Vagrant + GitLabの環境構築
1. はじめに
4月になって新しいプロジェクトが始まります。
正確には、4月から始まる予定だったのですが、残念なことに実質開始できるのは5月からという状況に。。。
ただ、VCSやITSなどの開発環境の構築などやれることはあるので、ちまちまとやっていこうかと考えています。
そこで、
- 残念ながら今の部署にあるのはsvnの環境だけということ
- 新しいプロジェクトは、ぼく+1名のミニマムな体制になりそうなこと
ということから、お手軽にGitLabを仮想環境上に構築してしまおうと思い立ちました。
ここでは、はじめてのVagrant、はじめてのGitLab、加えて少しおまぬけなぼくということで少しハマったところをまとめておきます。
3. 手順
2. GitLab on Ubuntu
以下のサイトから、GitLab on Ubuntuな box を探し出して使用することにしました。
A list of base boxes for Vagrant - Vagrantbox.es
> mkdir -p vagrant\gitlab > cd vagrant\gitlab > vagrant box add gitlab https://atlas.hashicorp.com/webysther/boxes/gitlab-ce-ubuntu-x64-14.04/versions/1.0/providers/virtualbox.box > vagrant init gitlab
上記で作成した vagrant\gitlab フォルダにあるVagrantファイルを以下のように修正する
config.vm.network "public_network", ip: "192.168.33.10" # ネットワークの設定はそれぞれの環境に適切なもので
最後に、
$ vagrant up
これで仮想環境を起動して、ブラウザで
にアクセスすればよいはずなのですが。。。
502エラー
すんなり行くと思ったのに(´Д⊂グスン
何が起こっているのか調べるために、MSYSなどのsshを使用できる環境から
$ ssh vagrant@192.168.33.10
...
$ sudo gitlab-ctll status
してみると、
down: postgresql: 1s, normally up, want up; run: log: (pid 986) 486s
PostgreSQLが起動していない。
そこで、
$ sudo tail -n 4 /var/log/gitlab/postgresql/current
ログを確認してみると、
2017-04-04_09:14:28.61833 FATAL: could not create shared memory segment: Cannot allocate memory 2017-04-04_09:14:28.61833 DETAIL: Failed system call was shmget(key=5432001, size=1086947328, 03600). 2017-04-04_09:14:28.61833 HINT: This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory or swap space, or exceeded your kernel's SHMALL parameter. You can either reduce the request size or reconfigure the kernel with larger SHMALL. To reduce the request size (currently 1086947328 bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections. 2017-04-04_09:14:28.61833 The PostgreSQL documentation contains more information about shared memory configuration.
だって。
なので、もう一度 vagrant\gitlab フォルダにあるVagrantファイルを以下のように修正する
config.vm.provider "virtualbox" do |vb| # Display the VirtualBox GUI when booting the machine vb.gui = false # Customize the amount of memory on the VM: vb.memory = "2048" vb.cpus = 2 end
仮想環境を再起動します。
$ vagrant halt $ vagrant up
ブラウザで
にアクセスすると、GitLabのスタートアップ画面が表示されました。
実は、仮想マシンのメモリ容量は事前に確認はしていたんです。
ネットには、
GitLabを動かすには1Gのメモリが必要ですよ~
てな情報があふれていたので、
vagrant init
で吐き出されたVagrantファイルの「vb.memory = "1024"」という記述を見て、メモリ容量は大丈夫という思い込みが失敗でした。
ところが。。。
ログインできない問題
rootアカウントでログインしようとすると、500エラーでログインできません。
GitLab公式見ても、rootアカウントの初期パスワードは「5iveL!fe」とあるのに(ノД`)シクシク
仕方ないので、rootパスワードをリセットすることにします。
$ ssh vagrant@192.168.33.10 ... $ sudo gitlab-rails console production > user = User.where(id: 1).first # root アカウント設定モードへ > user.password = 'secret_pass' # 新パスワード設定 > user.password_confirmation = 'secret_pass' # 新パスワード(確認用) > user.save! # 設定を保存 > exit # コンソール終了
これでログインできました。