독립형 Gitaly 설정

여기서의 지침은 Ubuntu를 위한 Linux 패키지를 사용합니다. 이 패키지는 차트 서비스와 호환되는 것이 보장된 서비스 버전을 제공합니다.

Linux 패키지로 VM 만들기

원하는 공급업체나 로컬에 VM을 만듭니다. 이는 VirtualBox, KVM 및 Bhyve에서 테스트되었습니다. 클러스터에서 해당 인스턴스에 액세스할 수 있는지 확인합니다.

만들어둔 VM에 Ubuntu Server를 설치합니다. openssh-server가 설치되어 있는지, 모든 패키지가 최신 상태인지 확인합니다. 네트워킹 및 호스트 이름을 구성합니다. 호스트 이름/IP를 메모하고, Kubernetes 클러스터에서 해결되고 액세스 가능한지 확인합니다. 트래픽을 허용하기 위해 방화벽 정책이 있는지 확인합니다.

Linux 패키지에 대한 설치 지침을 따릅니다. Linux 패키지 설치 시, EXTERNAL_URL= 값을 제공하지 않습니다. 자동 구성이 발생하지 않도록 하고, 다음 단계에서 매우 구체적인 구성을 제공할 것이기 때문입니다.

Linux 패키지 설치 구성하기

최소한의 gitlab.rb 파일을 생성하여 /etc/gitlab/gitlab.rb에 배치합니다. 다음 내용을 사용하여 이 노드에서 사용할 내용을 매우 명시적으로 지정하십시오. 독립형 서버에서 Gitaly 실행에 대한 설명서를 기반으로합니다.

참고: 아래 값은 대체되어야 함

# Gitaly 서버에서 불필요한 서비스 실행하지 않도록 합니다.
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

# 별도의 모니터링 노드를 실행하는 경우 이러한 서비스를 비활성화할 수 있습니다.
prometheus['enable'] = false
alertmanager['enable'] = false

# 별도의 모니터링 노드를 실행하지 않는다면
# Prometheus 액세스를 활성화하고 이러한 추가 서비스 비활성화
# 이렇게 하면 Prometheus가 모든 인터페이스에서 수신하도록됩니다. 방화벽을 사용하여이 주소/포트에 대한 액세스를 제한해야합니다.
# prometheus['listen_address'] = '0.0.0.0:9090'
# prometheus['monitor_kubernetes'] = false

# 모니터링 서비스를 실행하지 않으려면 다음을 주석 해제하여 (권장되지 않음)
# node_exporter['enable'] = false

# 'gitlab-ctl reconfigure' 중에 데이터베이스 연결을 방지합니다.
gitlab_rails['auto_migrate'] = false

# gitlab-shell API 콜백 URL 구성합니다. 이것이 없으면 'git push'가 실패합니다. 'front door' GitLab URL이나 내부 로드 밸런서가 될 수 있습니다.
gitlab_rails['internal_api_url'] = 'GITLAB_URL'
gitlab_shell['secret_token'] = 'SHELL_TOKEN'

gitaly['configuration'] = {
    # Gitaly가 모든 네트워크 인터페이스에서 연결 수락하도록합니다.이 주소/포트에 대한 액세스 제한을위한 방화벽을 사용해야합니다.
    # TLS 연결 만 지원 할 경우 다음 라인을 주석 처리하십시오.
    listen_addr: '0.0.0.0:8075',
    # 권한 부여 된 서버 만 Gitaly 서버와 통신 할 수 있도록 인증 토큰
    auth: {
        token: 'AUTH_TOKEN',
    },
}

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

# Gitaly에 TLS를 사용하려면
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