続・GitHubクローンのGitLabを5分でインストールした
前回の記事(GitHubクローンのGitLabを5分でインストールした) が
思いのほかブクマされてしまったので補足記事を書くことにしました。
インストールした後に設定したほうが良い項目とミドルウェア競合検証、
その他Tipsなど書いてみました。
公式ドキュメント
以下、記事で書いていることはほぼすべてドキュメントにも書いてあります。
ご参照下さい。
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md#configuration
コンフィグファイル準備
事前に /etc/gitlab/gitlab.rb を用意しておきます。
このファイルはGitLabをインストールする前に手動で作ってしまって構いません。*1
sudo mkdir -p /etc/gitlab sudo touch /etc/gitlab/gitlab.rb sudo chmod 600 /etc/gitlab/gitlab.rb
そして、コンフィグ設定後に
sudo gitlab-ctl reconfigure
すると、GitLabに反映するようです。
設定すべきコンフィグ値
SMTP
メール通知などに使います。
gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.server" gitlab_rails['smtp_port'] = 456 gitlab_rails['smtp_user_name'] = "smtp user" gitlab_rails['smtp_password'] = "smtp password" gitlab_rails['smtp_domain'] = "example.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true
その他コンフィグ値
HTTPS設定
URLのHTTPS化/証明書パスなどを追記します。
external_url "https://gitlab.example.com" nginx['redirect_http_to_https'] = true nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.crt" nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.key"
Google, Twitter, GitHub login設定
Omniauth設定を行うことにより、外部認証することが可能です。
gitlab_rails['omniauth_enabled'] = true gitlab_rails['omniauth_providers'] = [ { "name" => "google_oauth2", "app_id" => "YOUR APP ID", "app_secret" => "YOUR APP SECRET", "args" => { "access_type" => "offline", "approval_prompt" => "" } } ]
ちなみに弊社では、Redmine Omniauthで
Redmineアカウントでログイン出来るようにしています。
ミドルウェア混在環境での検証結果
※ 2014/10/10追記分:既存のミドルウェアを利用する方法
そもそも、omnibus-installでミドルウェアをインストールせずに、
既存の環境を使いまわすことも出来るようです。
たとえば、Nginxが既にインストール済みであれば
omnibus-installではインストールせずに
既存のNginxコンフィグを追加するだけで動かすことが出来ます。
ex) 既にインストール済みのPostgresqlを利用する場合
1. /etc/gitlab/gitlab.rb に以下を追記します。
# postgresインストールを無効にする postgresql['enable'] = false # 他のミドルウェアをインストール回避する時はこんな感じ #nginx['enable'] = false #redis['enable'] = false #postgresql['enable'] = false # postgresの情報を入力 gitlab_rails['db_adapter'] = 'postgresql' gitlab_rails['db_encoding'] = 'unicode' gitlab_rails['db_database'] = 'gitlabhq_production' gitlab_rails['db_host'] = '127.0.0.1' gitlab_rails['db_port'] = '5432' gitlab_rails['db_username'] = 'git' # Database owner. gitlab_rails['db_password'] = 'git' # Database owner's password.
2. sudo gitlab-ctl reconfigure を実行してgitlabに反映
3. sudo gitlab-rake gitlab:setup を実行して、初期データを投入
これで、既存の環境にgitlabのDB環境の設定が完了です。*2
ボート競合を回避する方法
前回の記事でも触れましたが、GitLabをRPMインストールすると
NginxやらRedisやらも一緒に同梱されます。
ロケーションは別*3になるので問題ないのですがポートは競合してしまいます。
ただし、それを回避する設定をコンフィグに追記すれば大丈夫そうです。
以下にサンプルを用意しました。
nginx(88)/postgresql(15432)/redis(16379)/unicorn(18080) のポートを指定しています。
redis['port'] = 16379 postgresql['port'] = 15432 unicorn['port'] = 18080 external_url "http://gitlab.example.com:88/"
実際に検証してみましたが、
元からインストールされているミドルウェアに影響させずに
GitLabを起動することが出来ました。
まとめ
取り急ぎですが、前回の補足記事でした。
コンフィグに指定しているキーは
このattributesを変更しているようなので
このファイルを見てキーを確認すれば好きにカスタマイズできそうですね。
では良いGitLabライフを!
*1:というか reconfigure する前には作っておきましょう
*2:参考: http://stackoverflow.com/questions/23580268/gitlab-omnibus-configuration-for-postgres
*3:/opt/gitlab/配下