AnsibleでGitlab構築(nginx MariaDB CentOS7)

かなり久しぶりの記事投稿です。最近はWindowsよりLinuxを使うことが多くその中でインフラ周りも自分で構築することも多くなりました。今回は社内開発サーバーにGitサーバーを構築するため GitLabを入れることとなりそのための手順のまとめです。 最近のGitLabではOmnibus PackageというAllInOneパッケージがありインストールはかなり楽なのですが他のサーバーと共存させるような場合には(今回はRedmine,usvn)もう少し細かいインストールができると良いなと思いました。

また今回はサーバーの構築手順を再利用するためAnsibleを使って手順を書いてみました。 以前のエントリーではChefを構築に使う記事も書いたのですが、Ansibleの場合は対象サーバーに特別に入れるソフトはいらずSSHで接続できれば良いため汎用性が高いのではないかと思います。

Ansible ソースコード

https://github.com/euledge/ansible-role-gitlab_centos7

変数でサブディレクトリでの運用やリバースプロキシに対応できるようにしています。 詳細は上記のサイトをご覧ください。

対象サーバー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で対象サーバーに事前に入れておくもの

実行後にインストールされるもの

構築時にハマったこと

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