業務でGitを使うときになかなか GitHub Enterpriseまでは手が出せません。
そこで、GitLabを使ってみるのですが既に用意されているOmnibus GitLabは一発インストールである反面既にnginxがインストールされている環境ですと重複してインストールされてしまいます。
GitLabだけなんとか入れたいと思い構築をしたものの、本番環境以外にバックアップ環境やテスト環境も作成したいので手順を再利用したくAnsibleで手順を書いてみました。
サブディレクトリでの運用やリバースプロキシに対応できるようにしています。
対象サーバーGitLab動作環境
CentOS7 (vagrant + virtualbox, VMWare ESXiで確認)
対象サーバーOSに事前に設定しておくもの
SELINUX
別のAnsibleのロールで以下のようにしています。
# SELINUX
- name: Install libselinux-python
yum: name=libselinux-python state=present
- name: disabled selinux
selinux: state=disabled
- name: Disable selinux
selinux: policy=targeted state=disabled
rootユーザー SSH公開鍵認証の準備
対象サーバにSSH公開鍵認証方式でrootユーザーがログイン出来るように準備してください。
yumで対象サーバーに事前に入れておくもの
- Postfix
- Ruby
- Git
- MariaDB
- nginx
実行後にインストールされるもの
- rails
- unicorn
- redis
Ansible ソースコード
構築時にハマったこと
cloneしたGitLabにGemfileがあり bundle install する手順があるのですが、依存するgemが不足していましたので
Gemfile.localに
gem 'charlock_holmes', '0.6.9.4'
gem 'execjs'
を追加してbundleするようにしました。
併せてexecjsが必要とする nodejs と npm をyumで事前にインストールしています。
参考にしたサイト
GitLabをCentOS7にインストールしてみた by @supertaihei02 on @Qiita http://qiita.com/supertaihei02/items/8c7b12b406cb6a1517a2
Ansibleで作るGitlab+Redmine by @volanja on @Qiita http://qiita.com/volanja/items/8362beb5a929a07afee4
GitLab Community Edition Installation from source https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.md