外部Sidekiqインスタンスを設定
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
GitLabパッケージにバンドルされているSidekiqを使用して、外部Sidekiqインスタンスを設定できます。Sidekiqには、Redis、PostgreSQL、およびGitalyのインスタンスへの接続が必要です。
GitLabインスタンスでPostgreSQL、Gitaly、RedisのTCPアクセスを設定します
デフォルトでは、GitLabはUNIXソケットを使用しており、TCP経由で通信するように設定されていません。これを変更するには:
SidekiqサーバーのIPアドレスを
postgresql['md5_auth_cidr_addresses']に追加して、パッケージ化されたPostgreSQLサーバーがTCP/IPでリッスンするように設定GitLabインスタンスの
/etc/gitlab/gitlab.rbファイルを編集し、以下を追加します:## Gitaly gitaly['configuration'] = { # ... # # Make Gitaly accept connections on all network interfaces listen_addr: '0.0.0.0:8075', auth: { ## Set up the Gitaly token as a form of authentication because you are accessing Gitaly over the network ## https://docs.gitlab.com/ee/administration/gitaly/configure_gitaly.html#about-the-gitaly-token token: 'abc123secret', }, } gitlab_rails['gitaly_token'] = 'abc123secret' # Password to Authenticate Redis gitlab_rails['redis_password'] = 'redis-password-goes-here'reconfigureを実行します:sudo gitlab-ctl reconfigurePostgreSQLサーバーを再起動します:sudo gitlab-ctl restart postgresql
Sidekiqインスタンスをセットアップします
リファレンスアーキテクチャを検索し、Sidekiqインスタンスのセットアップの詳細に従ってください。
共有ストレージを持つ複数のSidekiqノードを設定する
NFSなどの共有ファイルシステムを使用する複数のSidekiqノードを実行する場合は、サーバー間で一致するようにUIDとGIDを指定する必要があります。UIDとGIDを指定すると、ファイルシステムでの権限の問題を防ぐことができます。このアドバイスは、Geoセットアップに関するアドバイスと同様です。
複数のSidekiqノードをセットアップするには:
/etc/gitlab/gitlab.rbを編集します:user['uid'] = 9000 user['gid'] = 9000 web_server['uid'] = 9001 web_server['gid'] = 9001 registry['uid'] = 9002 registry['gid'] = 9002GitLabを再設定します:
sudo gitlab-ctl reconfigure
外部Sidekiqを使用する場合のコンテナレジストリを設定する
コンテナレジストリを使用しており、Sidekiqとは異なるノードで実行されている場合は、以下の手順に従ってください。
/etc/gitlab/gitlab.rbを編集し、レジストリのURLを設定します:gitlab_rails['registry_api_url'] = "https://registry.example.com"GitLabを再設定します:
sudo gitlab-ctl reconfigureコンテナレジストリがホストされているインスタンスで、
registry.keyファイルをSidekiqノードにコピーします。
Sidekiqメトリクスサーバーを設定する
Sidekiqメトリクスを収集する場合は、Sidekiqメトリクスサーバーを有効にします。localhost:8082/metricsからメトリクスを利用できるようにするには:
メトリクスサーバーを設定するには:
/etc/gitlab/gitlab.rbを編集します:sidekiq['metrics_enabled'] = true sidekiq['listen_address'] = "localhost" sidekiq['listen_port'] = 8082 # Optionally log all the metrics server logs to log/sidekiq_exporter.log sidekiq['exporter_log_enabled'] = trueGitLabを再設定します:
sudo gitlab-ctl reconfigure
HTTPSを有効にする
HTTPの代わりにHTTPS経由でメトリクスを提供するには、exporterの設定でTLSを有効にします:
/etc/gitlab/gitlab.rbを編集し、次の行を追加するか、検索してコメント化を解除してください:sidekiq['exporter_tls_enabled'] = true sidekiq['exporter_tls_cert_path'] = "/path/to/certificate.pem" sidekiq['exporter_tls_key_path'] = "/path/to/private-key.pem"ファイルを保存して、GitLabを再設定し、変更を有効にします。
TLSが有効になっている場合、前に説明したように同じportとaddressが使用されます。メトリクスサーバーは、HTTPとHTTPSを同時に提供できません。
ヘルスチェックを設定する
ヘルスチェックプローブを使用してSidekiqを監視する場合は、Sidekiqヘルスチェックサーバーを有効にします。localhost:8092からヘルスチェックを利用できるようにするには:
/etc/gitlab/gitlab.rbを編集します:sidekiq['health_checks_enabled'] = true sidekiq['health_checks_listen_address'] = "localhost" sidekiq['health_checks_listen_port'] = 8092GitLabを再設定します:
sudo gitlab-ctl reconfigure
ヘルスチェックの詳細については、Sidekiqヘルスチェックページを参照してください。
LDAPとユーザーまたはグループの同期を設定する
ユーザーとグループの管理にLDAPを使用する場合は、LDAPの設定をSidekiqノードとLDAPの同期ワーカーにも追加する必要があります。LDAPの設定とLDAPの同期ワーカーがSidekiqノードに適用されていない場合、ユーザーとグループは自動的に同期されません。
GitLabのLDAPを設定する方法の詳細については、以下を参照してください:
Sidekiqの同期ワーカーでLDAPを有効にするには:
/etc/gitlab/gitlab.rbを編集します:gitlab_rails['ldap_enabled'] = true gitlab_rails['prevent_ldap_sign_in'] = false gitlab_rails['ldap_servers'] = { 'main' => { 'label' => 'LDAP', 'host' => 'ldap.mydomain.com', 'port' => 389, 'uid' => 'sAMAccountName', 'encryption' => 'simple_tls', 'verify_certificates' => true, 'bind_dn' => '_the_full_dn_of_the_user_you_will_bind_with', 'password' => '_the_password_of_the_bind_user', 'tls_options' => { 'ca_file' => '', 'ssl_version' => '', 'ciphers' => '', 'cert' => '', 'key' => '' }, 'timeout' => 10, 'active_directory' => true, 'allow_username_or_email_login' => false, 'block_auto_created_users' => false, 'base' => 'dc=example,dc=com', 'user_filter' => '', 'attributes' => { 'username' => ['uid', 'userid', 'sAMAccountName'], 'email' => ['mail', 'email', 'userPrincipalName'], 'name' => 'cn', 'first_name' => 'givenName', 'last_name' => 'sn' }, 'lowercase_usernames' => false, # Enterprise Edition only # https://docs.gitlab.com/ee/administration/auth/ldap/ldap_synchronization.html 'group_base' => '', 'admin_group' => '', 'external_groups' => [], 'sync_ssh_keys' => false } } gitlab_rails['ldap_sync_worker_cron'] = "0 */12 * * *"GitLabを再設定します:
sudo gitlab-ctl reconfigure
SAMLグループ同期のSAMLグループを設定する
SAMLグループ同期を使用する場合は、すべてのSidekiqノードでSAMLグループを設定する必要があります。
関連トピック
トラブルシューティング
Sidekiqのトラブルシューティングに関する管理者ガイドをご覧ください。