InfoGrab Docs

외부 Sidekiq 인스턴스 설정

요약

GitLab 패키지에 번들된 Sidekiq를 사용하여 외부 Sidekiq 인스턴스를 설정할 수 있습니다. 기본적으로 GitLab는 UNIX 소켓을 사용하며 TCP를 통해 통신하도록 설정되어 있지 않습니다. Sidekiq 서버 IP 주소를 postgresql['md5_auth_cidr_addresses']에 추가하여 패키지된 PostgreSQL 서버가 TCP/IP를 수신하도록 설정합니다.

GitLab 패키지에 번들된 Sidekiq를 사용하여 외부 Sidekiq 인스턴스를 설정할 수 있습니다. Sidekiq는 Redis, PostgreSQL, Gitaly 인스턴스에 연결해야 합니다.

GitLab 인스턴스에서 PostgreSQL, Gitaly 및 Redis에 대한 TCP 액세스 설정#

기본적으로 GitLab는 UNIX 소켓을 사용하며 TCP를 통해 통신하도록 설정되어 있지 않습니다. 이를 변경하려면:

  1. Sidekiq 서버 IP 주소를 postgresql['md5_auth_cidr_addresses']에 추가하여 패키지된 PostgreSQL 서버가 TCP/IP를 수신하도록 설정합니다.

  2. 번들된 Redis를 TCP를 통해 접근 가능하게 만들기

  3. GitLab 인스턴스의 /etc/gitlab/gitlab.rb 파일을 편집하고 다음을 추가합니다:

    ## Gitaly
    gitaly['configuration'] = {
       # ...
       #
       # 모든 네트워크 인터페이스에서 Gitaly 연결 허용
       listen_addr: '0.0.0.0:8075',
       auth: {
          ## 네트워크를 통해 Gitaly에 액세스하므로 인증 형태로 Gitaly 토큰 설정
          ## https://docs.gitlab.com/administration/gitaly/configure_gitaly/#about-the-gitaly-token
          token: 'abc123secret',
       },
    }
    
    gitlab_rails['gitaly_token'] = 'abc123secret'
    
    # Redis 인증 비밀번호
    gitlab_rails['redis_password'] = 'redis-password-goes-here'
    
  4. reconfigure 실행:

    sudo gitlab-ctl reconfigure
    
  5. PostgreSQL 서버 재시작:

    sudo gitlab-ctl restart postgresql
    

Sidekiq 인스턴스 설정#

참조 아키텍처를 찾아 Sidekiq 인스턴스 설정 세부 정보를 따르세요.

공유 저장소를 사용하는 여러 Sidekiq 노드 설정#

NFS와 같은 공유 파일 저장소를 사용하는 여러 Sidekiq 노드를 실행하는 경우 서버 간에 일치하도록 UID와 GID를 지정해야 합니다. UID와 GID를 지정하면 파일 시스템의 권한 문제를 방지할 수 있습니다. 이 권장 사항은 Geo 설정에 대한 권장 사항과 유사합니다.

여러 Sidekiq 노드를 설정하려면:

  1. /etc/gitlab/gitlab.rb 편집:

    user['uid'] = 9000
    user['gid'] = 9000
    web_server['uid'] = 9001
    web_server['gid'] = 9001
    registry['uid'] = 9002
    registry['gid'] = 9002
    
  2. GitLab 재설정:

    sudo gitlab-ctl reconfigure
    

외부 Sidekiq 사용 시 컨테이너 레지스트리 설정#

컨테이너 레지스트리를 사용하고 Sidekiq와 다른 노드에서 실행 중인 경우 다음 단계를 따르세요.

  1. /etc/gitlab/gitlab.rb를 편집하고 레지스트리 URL을 설정합니다:

    gitlab_rails['registry_api_url'] = "https://registry.example.com"
    
  2. GitLab 재설정:

    sudo gitlab-ctl reconfigure
    
  3. 컨테이너 레지스트리가 호스팅되는 인스턴스에서 registry.key 파일을 Sidekiq 노드에 복사합니다.

Sidekiq 메트릭 서버 설정#

Sidekiq 메트릭을 수집하려면 Sidekiq 메트릭 서버를 활성화합니다. localhost:8082/metrics에서 메트릭을 사용할 수 있도록 하려면:

메트릭 서버를 설정하려면:

  1. /etc/gitlab/gitlab.rb 편집:

    sidekiq['metrics_enabled'] = true
    sidekiq['listen_address'] = "localhost"
    sidekiq['listen_port'] = 8082
    
    # 선택 사항으로 모든 메트릭 서버 로그를 log/sidekiq_exporter.log에 기록
    sidekiq['exporter_log_enabled'] = true
    
  2. GitLab 재설정:

    sudo gitlab-ctl reconfigure
    

HTTPS 활성화#

히스토리

HTTP 대신 HTTPS로 메트릭을 제공하려면 내보내기 설정에서 TLS를 활성화합니다:

  1. /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"
    
  2. 파일을 저장하고 변경 사항이 적용되도록 GitLab을 재설정합니다.

TLS가 활성화되면 이전에 설명한 것과 동일한 portaddress가 사용됩니다. 메트릭 서버는 HTTP와 HTTPS를 동시에 제공할 수 없습니다.

헬스 체크 설정#

Sidekiq를 관찰하기 위해 헬스 체크 프로브를 사용하는 경우 Sidekiq 헬스 체크 서버를 활성화합니다. localhost:8092에서 헬스 체크를 사용할 수 있도록 하려면:

  1. /etc/gitlab/gitlab.rb 편집:

    sidekiq['health_checks_enabled'] = true
    sidekiq['health_checks_listen_address'] = "localhost"
    sidekiq['health_checks_listen_port'] = 8092
    
  2. GitLab 재설정:

    sudo gitlab-ctl reconfigure
    

헬스 체크에 대한 자세한 내용은 Sidekiq 헬스 체크 페이지를 참조하세요.

LDAP 및 사용자 또는 그룹 동기화 설정#

사용자 및 그룹 관리에 LDAP를 사용하는 경우 LDAP 동기화 워커와 함께 LDAP 설정을 Sidekiq 노드에 추가해야 합니다. LDAP 설정과 LDAP 동기화 워커가 Sidekiq 노드에 적용되지 않으면 사용자와 그룹이 자동으로 동기화되지 않습니다.

GitLab용 LDAP 설정에 대한 자세한 내용은 다음을 참조하세요:

Sidekiq에 대해 동기화 워커와 함께 LDAP를 활성화하려면:

  1. /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 전용
    # https://docs.gitlab.com/administration/auth/ldap/ldap_synchronization/
    'group_base' => '',
    'admin_group' => '',
    'external_groups' => [],
    'sync_ssh_keys' => false
    }
    }
    gitlab_rails['ldap_sync_worker_cron'] = "0 */12 * * *"
    
  2. GitLab 재설정:

    sudo gitlab-ctl reconfigure
    

SAML 그룹 동기화를 위한 SAML 그룹 설정#

SAML 그룹 동기화를 사용하는 경우 모든 Sidekiq 노드에서 SAML 그룹 멤버십을 기반으로 사용자 설정을 구성해야 합니다.

관련 주제#

트러블슈팅#

Sidekiq 트러블슈팅을 위한 관리자 가이드를 참조하세요.

외부 Sidekiq 인스턴스 설정

Tier: Free, Premium, Ultimate
Offering: GitLab Self-Managed
원문 보기
요약

GitLab 패키지에 번들된 Sidekiq를 사용하여 외부 Sidekiq 인스턴스를 설정할 수 있습니다. 기본적으로 GitLab는 UNIX 소켓을 사용하며 TCP를 통해 통신하도록 설정되어 있지 않습니다. Sidekiq 서버 IP 주소를 postgresql['md5_auth_cidr_addresses']에 추가하여 패키지된 PostgreSQL 서버가 TCP/IP를 수신하도록 설정합니다.

GitLab 패키지에 번들된 Sidekiq를 사용하여 외부 Sidekiq 인스턴스를 설정할 수 있습니다. Sidekiq는 Redis, PostgreSQL, Gitaly 인스턴스에 연결해야 합니다.

GitLab 인스턴스에서 PostgreSQL, Gitaly 및 Redis에 대한 TCP 액세스 설정#

기본적으로 GitLab는 UNIX 소켓을 사용하며 TCP를 통해 통신하도록 설정되어 있지 않습니다. 이를 변경하려면:

  1. Sidekiq 서버 IP 주소를 postgresql['md5_auth_cidr_addresses']에 추가하여 패키지된 PostgreSQL 서버가 TCP/IP를 수신하도록 설정합니다.

  2. 번들된 Redis를 TCP를 통해 접근 가능하게 만들기

  3. GitLab 인스턴스의 /etc/gitlab/gitlab.rb 파일을 편집하고 다음을 추가합니다:

    ## Gitaly
    gitaly['configuration'] = {
       # ...
       #
       # 모든 네트워크 인터페이스에서 Gitaly 연결 허용
       listen_addr: '0.0.0.0:8075',
       auth: {
          ## 네트워크를 통해 Gitaly에 액세스하므로 인증 형태로 Gitaly 토큰 설정
          ## https://docs.gitlab.com/administration/gitaly/configure_gitaly/#about-the-gitaly-token
          token: 'abc123secret',
       },
    }
    
    gitlab_rails['gitaly_token'] = 'abc123secret'
    
    # Redis 인증 비밀번호
    gitlab_rails['redis_password'] = 'redis-password-goes-here'
    
  4. reconfigure 실행:

    sudo gitlab-ctl reconfigure
    
  5. PostgreSQL 서버 재시작:

    sudo gitlab-ctl restart postgresql
    

Sidekiq 인스턴스 설정#

참조 아키텍처를 찾아 Sidekiq 인스턴스 설정 세부 정보를 따르세요.

공유 저장소를 사용하는 여러 Sidekiq 노드 설정#

NFS와 같은 공유 파일 저장소를 사용하는 여러 Sidekiq 노드를 실행하는 경우 서버 간에 일치하도록 UID와 GID를 지정해야 합니다. UID와 GID를 지정하면 파일 시스템의 권한 문제를 방지할 수 있습니다. 이 권장 사항은 Geo 설정에 대한 권장 사항과 유사합니다.

여러 Sidekiq 노드를 설정하려면:

  1. /etc/gitlab/gitlab.rb 편집:

    user['uid'] = 9000
    user['gid'] = 9000
    web_server['uid'] = 9001
    web_server['gid'] = 9001
    registry['uid'] = 9002
    registry['gid'] = 9002
    
  2. GitLab 재설정:

    sudo gitlab-ctl reconfigure
    

외부 Sidekiq 사용 시 컨테이너 레지스트리 설정#

컨테이너 레지스트리를 사용하고 Sidekiq와 다른 노드에서 실행 중인 경우 다음 단계를 따르세요.

  1. /etc/gitlab/gitlab.rb를 편집하고 레지스트리 URL을 설정합니다:

    gitlab_rails['registry_api_url'] = "https://registry.example.com"
    
  2. GitLab 재설정:

    sudo gitlab-ctl reconfigure
    
  3. 컨테이너 레지스트리가 호스팅되는 인스턴스에서 registry.key 파일을 Sidekiq 노드에 복사합니다.

Sidekiq 메트릭 서버 설정#

Sidekiq 메트릭을 수집하려면 Sidekiq 메트릭 서버를 활성화합니다. localhost:8082/metrics에서 메트릭을 사용할 수 있도록 하려면:

메트릭 서버를 설정하려면:

  1. /etc/gitlab/gitlab.rb 편집:

    sidekiq['metrics_enabled'] = true
    sidekiq['listen_address'] = "localhost"
    sidekiq['listen_port'] = 8082
    
    # 선택 사항으로 모든 메트릭 서버 로그를 log/sidekiq_exporter.log에 기록
    sidekiq['exporter_log_enabled'] = true
    
  2. GitLab 재설정:

    sudo gitlab-ctl reconfigure
    

HTTPS 활성화#

히스토리

HTTP 대신 HTTPS로 메트릭을 제공하려면 내보내기 설정에서 TLS를 활성화합니다:

  1. /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"
    
  2. 파일을 저장하고 변경 사항이 적용되도록 GitLab을 재설정합니다.

TLS가 활성화되면 이전에 설명한 것과 동일한 portaddress가 사용됩니다. 메트릭 서버는 HTTP와 HTTPS를 동시에 제공할 수 없습니다.

헬스 체크 설정#

Sidekiq를 관찰하기 위해 헬스 체크 프로브를 사용하는 경우 Sidekiq 헬스 체크 서버를 활성화합니다. localhost:8092에서 헬스 체크를 사용할 수 있도록 하려면:

  1. /etc/gitlab/gitlab.rb 편집:

    sidekiq['health_checks_enabled'] = true
    sidekiq['health_checks_listen_address'] = "localhost"
    sidekiq['health_checks_listen_port'] = 8092
    
  2. GitLab 재설정:

    sudo gitlab-ctl reconfigure
    

헬스 체크에 대한 자세한 내용은 Sidekiq 헬스 체크 페이지를 참조하세요.

LDAP 및 사용자 또는 그룹 동기화 설정#

사용자 및 그룹 관리에 LDAP를 사용하는 경우 LDAP 동기화 워커와 함께 LDAP 설정을 Sidekiq 노드에 추가해야 합니다. LDAP 설정과 LDAP 동기화 워커가 Sidekiq 노드에 적용되지 않으면 사용자와 그룹이 자동으로 동기화되지 않습니다.

GitLab용 LDAP 설정에 대한 자세한 내용은 다음을 참조하세요:

Sidekiq에 대해 동기화 워커와 함께 LDAP를 활성화하려면:

  1. /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 전용
    # https://docs.gitlab.com/administration/auth/ldap/ldap_synchronization/
    'group_base' => '',
    'admin_group' => '',
    'external_groups' => [],
    'sync_ssh_keys' => false
    }
    }
    gitlab_rails['ldap_sync_worker_cron'] = "0 */12 * * *"
    
  2. GitLab 재설정:

    sudo gitlab-ctl reconfigure
    

SAML 그룹 동기화를 위한 SAML 그룹 설정#

SAML 그룹 동기화를 사용하는 경우 모든 Sidekiq 노드에서 SAML 그룹 멤버십을 기반으로 사용자 설정을 구성해야 합니다.

관련 주제#

트러블슈팅#

Sidekiq 트러블슈팅을 위한 관리자 가이드를 참조하세요.