CentOSにGitLabをInstallして設定
前回と前々回でRedmineのインストールまで出来たので、今回はGitLabをインストール。
環境: CentOS 6.6 x86_64, Ruby 2.2.2, Git 2.4.1, GitLab 7.10.4
目次
- GitLabのインストール
- 設定:接続URLを変更
- 設定:Google Appsアカウントでログイン出来るようにする(omniauth)
- 設定:
MariaDBを使う。GitLab付属のPostgreSQLを使う - 設定:メール送信はGoogle Appsアカウント経由にする
- 設定:GitLab付属のUnicornを使う
- 設定:GitLab付属のRedisを使う
- 既存のNginxからプロキシする
- GitLab再設定、起動
1.GitLabのインストール
公式ページを参考に。
必要なパッケージのインストール
# yum install openssh-server postfix cronie
全てインストール済み。postfixも起動している状態。
GitLabのレポジトリを追加
# curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash
YUM経由でインストール
# yum install gitlab-ce
設定
# gitlab-ctl reconfigure
エラー
[2015-05-14T18:40:00+09:00] ERROR: Running exception handlers
Running handlers complete
[2015-05-14T18:40:00+09:00] ERROR: Exception handlers complete
[2015-05-14T18:40:00+09:00] FATAL: Stacktrace dumped to /opt/gitlab/embedded/cookbooks/cache/chef-stacktrace.out
Chef Client failed. 81 resources updated in 23.560077797 seconds
[2015-05-14T18:40:00+09:00] ERROR: Chef::Exceptions::MultipleFailures
[2015-05-14T18:40:00+09:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
どうやら設定が必要らしい。
/etc/gitlab/gitlab.rbを読みながら編集していく。
2.設定:接続URLを変更
external_url 'http://gitlab.hoge.jp'
3.設定:Google Appsアカウントでログイン出来るようにする(omniauth)
ドキュメントを参考にapp_idとapp_secretを取得する
gitlab_rails['omniauth_enabled'] = true
gitlab_rails['omniauth_allow_single_sign_on'] = true
gitlab_rails['omniauth_block_auto_created_users'] = true
gitlab_rails['omniauth_providers'] = [
{
"name" => "google_oauth2",
"app_id" => "123-abc.apps.googleusercontent.com",
"app_secret" => "****",
"args" => { "access_type" => "offline", "approval_prompt" => "", "hd" => "hoge.jp" }
}
]
「hd」はログインを制限するGoogle Appsドメインを指定する。
「omniauth_block_auto_created_users」は、登録後Block状態となるので、rootで「Unblock」する必要がある。
4.設定:MariaDBを使う。GitLab付属のPostgreSQLを使う
インストール済みのMariaDBを使うように設定する。
と思ったけど、MySQLを使えるのはEnterprise EditionだけでCommunity EditionはPostgreSQLだけだった。
postgresql['enable'] = true
postgresql['listen_address'] = nil
postgresql['port'] = 5432
postgresql['data_dir'] = "/var/opt/gitlab/postgresql/data"
postgresql['shared_buffers'] = "512MB"
5.設定:メール送信はGoogle Appsアカウント経由にする
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.gmail.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "info@hoge.jp"
gitlab_rails['smtp_password'] = "pass"
gitlab_rails['smtp_domain'] = "smtp.gmail.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
# gitlab_rails['smtp_tls'] = false
# gitlab_rails['smtp_openssl_verify_mode'] = 'none'
6.設定:GitLab付属のUnicornを使う
RedmineのUnicornを使いまわそうか迷ったけど、とりあえずGitLab付属のUnicornを使うようにする。
unicorn['worker_timeout'] = 60
unicorn['worker_processes'] = 2## Advanced settings
unicorn['listen'] = '127.0.0.1'
unicorn['port'] = 8080
unicorn['socket'] = '/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket'
unicorn['pidfile'] = '/opt/gitlab/var/unicorn/unicorn.pid'
unicorn['tcp_nopush'] = true
unicorn['backlog_socket'] = 1024
# We do not recommend changing this setting
# unicorn['log_directory'] = "/var/log/gitlab/unicorn"
7.設定:GitLab付属のRedisを使う
redis['enable'] = true
redis['username'] = "gitlab-redis"
redis['uid'] = nil
redis['gid'] = nil
8.既存のNginxからプロキシする
GitLab付属のnginxは起動しないように設定。
nginx['enable'] = false
既存のNginx設定ファイルを編集
# vi /etc/nginx/conf.d/04_gitlab.conf
server {
listen 80;
server_name gitlab.firstsec.jp;access_log /var/log/nginx/gitlab.access.log;
error_log /var/log/nginx/gitlab.error.log;location = /robots.txt { access_log off; log_not_found off; }
location = /favicon.ico { access_log off; log_not_found off; }### Reverse Proxy for Redmine on Unicorn
location / {
rewrite ^/(.*)$ /$1 break;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:8080;
}
}
再読み込み
# /etc/rc.d/init.d/nginx configtest
# /etc/rc.d/init.d/nginx reload
Basic認証で制限をかける
9.GitLab再設定、起動
今までの設定を反映させる。
# gitlab-ctl reconfigure
状態を確認
# gitlab-ctl status
再起動するとき
# gitlab-ctl restart
ブラウザでアクセスして確認。
まずはrootでログイン。パスワードは「5iveL!fe」。
パスワードを設定して再ログイン。Emailアドレスを変えておく。
なぜかOverviewに表示されているRubyのバージョンが違う。
次は既存のSubversionをGitに移行
< Related Posts >