스탠드얼론 PostgreSQL 데이터베이스 설정

우분투를 위한 Linux 패키지를 사용하겠습니다. 이 패키지는 차트의 서비스와 호환되는 것을 보장하는 버전의 서비스를 제공합니다.

Linux 패키지를 사용하여 가상 머신(VM) 생성

원하는 공급업체나 로컬에 VM을 생성하세요. 이 작업은 VirtualBox, KVM, 및 Bhyve에서 테스트되었습니다. 클러스터에서 인스턴스에 접근할 수 있는지 확인하세요.

생성한 VM에 우분투 서버를 설치하세요. openssh-server가 설치되어 있는지 확인하고, 모든 패키지가 최신 버전인지 확인하세요. 네트워킹과 호스트명을 구성하세요. 호스트명/IP를 메모하고, 클러스터에서 해결되고 접근 가능한지 확인하세요. 트래픽을 허용하기 위해 방화벽 정책이 적용되어 있는지 확인하세요.

Linux package의 설치 지침을 따르세요. 패키지 설치 시, EXTERNAL_URL= 값을 제공하지 않도록 해주세요. 자동 구성이 발생하지 않도록 하고, 다음 단계에서 매우 구체적인 구성을 제공할 것입니다.

Linux 패키지 설치 구성

/etc/gitlab/gitlab.rb에 배치될 최소한의 gitlab.rb 파일을 생성하세요. 이 노드에서 활성화된 것에 대해 매우 명시적으로 사용하세요. 아래 내용을 사용하세요.

참고: 이 예제는 스케일링을 위한 PostgreSQL을 제공하는 것이 목적이 아닙니다.

참고: 아래의 값은 대체되어야 합니다

  • DB_USERNAME 기본 사용자 이름은 gitlab입니다.
  • DB_PASSWORD 인코딩되지 않은 값
  • DB_ENCODED_PASSWORD DB_PASSWORD를 실제 값으로 대체하여 생성할 수 있습니다. echo -n 'DB_PASSSWORDDB_USERNAME' | md5sum - | cut -d' ' -f1로 생성됩니다.
  • AUTH_CIDR_ADDRESS MD5 인증을 위한 CIDR을 구성하세요. 가능한 작은 서브넷이어야 합니다. Minikube의 경우, 이 값은 192.168.100.0/12입니다.
# 아래의 주소를 변경하여 PG가 사용 가능한 모든 주소에서 수신 대기하지 않도록 설정하세요
postgresql['listen_address'] = '0.0.0.0'
# 사용 가능한 RAM의 약 1/4로 설정하세요.
postgresql['shared_buffers'] = "512MB"
# 이 비밀번호는 다음과 같습니다: `echo -n '${password}${username}' | md5sum - | cut -d' ' -f1`
# 기본 사용자 이름은 `gitlab`입니다.
postgresql['sql_user_password'] = "DB_ENCODED_PASSWORD"
# MD5 인증을 위한 CIDR을 구성하세요
postgresql['md5_auth_cidr_addresses'] = ['AUTH_CIDR_ADDRESSES']
# 신뢰할 수 있는 인증을 위한 CIDR을 구성하세요 (무암호)
postgresql['trust_auth_cidr_addresses'] = ['127.0.0.1/24']

## gitlab_rails 구성
gitlab_rails['auto_migrate'] = false
gitlab_rails['db_username'] = "gitlab"
gitlab_rails['db_password'] = "DB_PASSSWORD"


## 나머지 모든 것을 비활성화하세요
sidekiq['enable'] = false
puma['enable'] = false
registry['enable'] = false
gitaly['enable'] = false
gitlab_workhorse['enable'] = false
nginx['enable'] = false
prometheus_monitoring['enable'] = false
redis['enable'] = false

gitlab.rb를 생성한 후, gitlab-ctl reconfigure로 패키지를 다시 구성하세요. 작업이 완료되면 gitlab-ctl status로 실행 중인 프로세스를 확인하세요. 출력은 다음과 같아야 합니다:

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