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