スタンドアロンGitalyのセットアップ

ここでは、Ubuntu用のLinuxパッケージを使用します。このパッケージは、Chartのサービスとの互換性が保証されたバージョンのサービスを提供します。

LinuxパッケージでVMを作成

お好みのプロバイダー、またはローカルにVMを作成します。VirtualBox、KVM、Bhyveでテストしました。インスタンスがクラスターから到達可能であることを確認します。

作成したVMにUbuntu Serverをインストールします。openssh-server がインストールされ、すべてのパッケージが最新であることを確認します。ネットワークとホスト名を設定します。ホスト名/IPをメモしておき、Kubernetesクラスタから解決可能かつ到達可能であることを確認します。ファイアウォールポリシーがトラフィックを許可するように設定されていることを確認してください。

Linuxパッケージのインストール手順に従ってください。Linuxパッケージのインストールを実行するとき、 を指定しないでください。EXTERNAL_URL= 。次のステップで非常に具体的な設定を行うため、自動設定は行わないでください。

Linuxパッケージ・インストールの設定

/etc/gitlab/gitlab.rbに配置する最小限のgitlab.rb ファイルを作成します。Gitalyを独自のサーバーで動作させるためのドキュメントに基づいた以下の内容を使って、このノードで有効になっているものについて明確に記述してください。

注意: 以下の値は置き換えてください。

# Avoid running unnecessary services on the Gitaly server
postgresql['enable'] = false
redis['enable'] = false
nginx['enable'] = false
puma['enable'] = false
sidekiq['enable'] = false
gitlab_workhorse['enable'] = false
grafana['enable'] = false
gitlab_exporter['enable'] = false
gitlab_kas['enable'] = false

# If you run a seperate monitoring node you can disable these services
prometheus['enable'] = false
alertmanager['enable'] = false

# If you don't run a seperate monitoring node you can
# Enable Prometheus access & disable these extra services
# This makes Prometheus listen on all interfaces. You must use firewalls to restrict access to this address/port.
# prometheus['listen_address'] = '0.0.0.0:9090'
# prometheus['monitor_kubernetes'] = false

# If you don't want to run monitoring services uncomment the following (not recommended)
# node_exporter['enable'] = false

# Prevent database connections during 'gitlab-ctl reconfigure'
gitlab_rails['auto_migrate'] = false

# Configure the gitlab-shell API callback URL. Without this, `git push` will
# fail. This can be your 'front door' GitLab URL or an internal load
# balancer.
gitlab_rails['internal_api_url'] = 'GITLAB_URL'
gitlab_shell['secret_token'] = 'SHELL_TOKEN'

# Make Gitaly accept connections on all network interfaces. You must use
# firewalls to restrict access to this address/port.
# Comment out following line if you only want to support TLS connections
gitaly['listen_addr'] = "0.0.0.0:8075"

# Authentication token to ensure only authorized servers can communicate with
# Gitaly server
gitaly['auth_token'] = 'AUTH_TOKEN'

git_data_dirs({
 'default' => {
   'path' => '/var/opt/gitlab/git-data'
 },
 'storage1' => {
   'path' => '/mnt/gitlab/git-data'
 },
})

# To use TLS for Gitaly you need to add
gitaly['tls_listen_addr'] = "0.0.0.0:8076"
gitaly['certificate_path'] = "path/to/cert.pem"
gitaly['key_path'] = "path/to/key.pem"

gitlab.rb を作成した後、gitlab-ctl reconfigureでパッケージを再設定します。タスクが完了したら、gitlab-ctl status で実行中のプロセスをチェックします。このように出力されるはずです:

# gitlab-ctl status
run: gitaly: (pid 30562) 77637s; run: log: (pid 30561) 77637s
run: logrotate: (pid 4856) 1859s; run: log: (pid 31262) 77460s