Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

*이 문서는 https://docs.gitlab.com/를 참조하여 작성되었습니다.

  • 패키지 기능을 통해 GitLab은 다음과 같은 리포지토리로 작동할 수 있습니다.

...

  • /etc/gitlab/gitlab.rb 다음 행을 편집 하고 추가

Code Block
gitlab_rails['packages_enabled'] = true

파일을 저장하고 GitLab 을 재구성 하여 변경 사항을 적용

...

  • config/gitlab.yml 다음 행을 편집 하고 추가

Code Block
packages: enabled: true

파일을 저장하고 GitLab 을 재구성 하여 변경 사항을 적용

...

  • /etc/gitlab/gitlab.rb 다음 행을 편집 하고 추가

Code Block
gitlab_rails['packages_storage_path'] = "/mnt/packages"   

파일을 저장하고 GitLab 을 재구성 하여 변경 사항을 적용

...

Code Block
packages:
    enabled: true
    ##
    ## The location where build packages are stored (default: shared/packages).
    ##
    #storage_path: shared/packages
    object_store:
      enabled: false
      remote_directory: packages # The bucket name.
      #direct_upload: false      # Use Object Storage directly for uploads instead of background uploads if enabled (Default: false).
      #background_upload: true   # Temporary option to limit automatic upload (Default: true).
      #proxy_download: false     # Passthrough all downloads via GitLab instead of using Redirects to Object Storage.
      connection:
        ##
        ## If the provider is AWS S3, uncomment the following
        ##
        #provider: AWS
        #region: us-east-1
        #aws_access_key_id: AWS_ACCESS_KEY_ID
        #aws_secret_access_key: AWS_SECRET_ACCESS_KEY
        ##
        ## If the provider is other than AWS (an S3-compatible one), uncomment the following
        ##
        #host: 's3.amazonaws.com'             # default: s3.amazonaws.com.
        #aws_signature_version: 4             # For creation of signed URLs. Set to 2 if provider does not support v4.
        #endpoint: 'https://s3.amazonaws.com' # Useful for S3-compliant services such as DigitalOcean Spaces.
        #path_style: false                    # If true, use 'host/bucket_name/object' instead of 'bucket_name.host/object'.

파일을 저장하고 GitLab 을 재구성 하여 변경 사항을 적용

컨테이너 레지스트리 활성화

  1. 옴니버스 깃랩 설치

  • GitLab 12.5부터 Let 's Encrypt 통합에 내장 된 Omnibus GitLab을 사용하는 경우 컨테이너 레지스트리는 기본 도메인의 포트 5050에서 자동으로 활성화됩니다.

  • 별도의 도메인을 사용하려면 컨테이너 레지스트리가 수신 할 도메인 이름을 구성하기만 하면 됩니다.

2. 소스에서 설치

1) 직접 레지스트리 를 설치해야합니다 .

2) 설치가 완료된 후 gitlab.yml 활성화하려면 레지스트리 설정을 구성해야 합니다.

3) 아래에있는 샘플 NGINX 구성 파일을 사용하고 , 및 TLS 인증서 경로와 일치하도록 편집하십시오.
lib/support/nginx/registry-ssl

gitlab.yml 내용은 다음과 같습니다.

Code Block
registry:
  enabled: true
  host: registry.gitlab.example.com
  port: 5005
  api_url: http://localhost:5000/
  key: config/registry.key
  path: shared/registry
  issuer: gitlab-issuer

Parameter

Description

enabled

true / false  GitLab에서 레지스트리를 활성화합니다.  (Default False)

host

레지스트리가 실행되고 사용자가 사용할수 있는 호스트 URL입니다.

port

외부 레지스트리 도메인이 사용할 포트입니다.

api_url

레지스트리가 노출되는 내부 API URL입니다. 기본값은 http://localhost:5000입니다.

key

Registry의 개인 키 위치입니다.

path

이것은 Registry에 지정된 것과 동일한 디렉토리 이여야 합니다 이 경로는 GitLab 사용자, 웹 서버 사용자 및 레지스트리 사용자가 읽을 수 있어야합니다.

issuer

이것은 Registry에 구성된 값과 같아야합니다.

기존 GitLab 도메인에서 컨테이너 레지스트리 구성

  • 레지스트리가 기존 GitLab 도메인을 사용하도록 구성된 경우 기존 GitLab TLS 인증서를 재사용 할 수 있도록 포트에 레지스트리를 표시 할 수 있습니다.

  • Registry 포트 (Default 5000)와 다른 포트를 선택해야 충돌이 발생하지 않습니다.

  1. 옴니버스 깃랩 설치

1) GitLab에 의해 사용되는 기존 TLS 인증서와 키의 경로뿐만 아니라 레지스트리 URL을 포함해야 합니다
/etc/gitlab/gitlab.rb

Code Block
registry_external_url 'https://gitlab.example.com:4567'

TLS 인증서가없고 /etc/gitlab/ssl/gitlab.example.com.crt 키를 /etc/gitlab/ssl/gitlab.example.com.key 주석 처리 하지 않은 경우 아래 행을 주석 해제.

Code Block
registry_nginx['ssl_certificate'] = "/path/to/certificate.pem"
registry_nginx['ssl_certificate_key'] = "/path/to/certificate.key"

2) 파일을 저장하고 GitLab 을 재구성 하여 변경 사항을 적용.

3) 다음을 사용하여 확인.

Code Block
openssl s_client -showcerts -servername gitlab.example.com -connect gitlab.example.com:443 > 
cacert.pem

2. 소스에서 설치

1) registry 설정을 아래와 같이 구성
/home/git/gitlab/config/gitlab.yml

Code Block
registry:
  enabled: true
  host: gitlab.example.com
  port: 4567

2) 변경 사항을 적용 하려면 파일을 저장하고 GitLab 을 재시작
3) NGINX (도메인, 포트, TLS 인증서 경로)에서도 관련 사항을 변경

  • 사용자는 다음을 사용하여 GitLab Credentials 컨테이너 레지스트리에 로그인 할 수 있어야 합니다.

Code Block
docker login gitlab.example.com:4567

자체 도메인에서 컨테이너 레지스트리 구성

  • 레지스트리가 자체 도메인을 사용하도록 구성된 경우 해당 특정 도메인에 대한 TLS 인증서 또는 기존GitLab 도메인의 하위 도메인에서 호스팅되는 경우 와일드 카드 인증서가 필요합니다

  • 수동으로 생성 된 SSL 인증서 (여기 설명)뿐만 아니라 Let 's Encrypt에 의해 자동으로 생성 된 인증서도 Omnibus 설치에서 지원됩니다.

  1. 옴니버스 깃랩 설치

1) TLS 인증서와 키를 입력하고 올바른 권한이 있는지 확인

Code Block
/etc/gitlab/ssl/registry.gitlab.example.com.key
/etc/gitlab/ssl/registry.gitlab.example.com.crt 

2) TLS 인증서가 작성되면 다음을 사용하여 편집 
/etc/gitlab/gitlab.rb

Code Block
registry_external_url 'https://registry.gitlab.example.com'

3) 파일을 저장하고 GitLab 을 재구성 하여 변경 사항을 적용
와일드 카드 인증서가 있는 경우 URL 외에 인증서 경로를 지정
/etc/gitlab/gitlab.rb

Code Block
registry_nginx['ssl_certificate'] = "/etc/gitlab/ssl/certificate.pem" 
registry_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/certificate.key"

2. 소스에서 설치

 registry 다음 설정으로 구성
/home/git/gitlab/config/gitlab.yml

Code Block
registry:
  enabled: true
  host: registry.gitlab.example.com

1) 변경 사항을 적용 하려면 파일을 저장하고 GitLab 을 재시작
2) NGINX (도메인, 포트, TLS 인증서 경로)에서도 관련 사항을 변경

  • 사용자는 이제 GitLab Credentials을 사용하여 컨테이너 레지스트리에 로그인 할 수 있어야 합니다.

Code Block
docker login registry.gitlab.example.com