InfoGrab DocsInfoGrab Docs

Omnibus 패키지에 대해 알아야 할 사항

요약

대부분의 사용자는 Omnibus 패키지를 사용하여 GitLab을 설치합니다. Omnibus 설치에서는 Rails 트리(app/, config/ 등)의 모든 파일이 root에 의해 소유됩니다. 예를 들어, git 사용자는 log/ 디렉터리와 public/uploads에 쓰기 권한이 허용되며, db/structure.sql 파일을 재작성할 수 있습니다.

대부분의 사용자는 Omnibus 패키지를 사용하여 GitLab을 설치합니다. 개발자라면 코딩 중에 사용하는 로컬 환경과 Omnibus 패키지가 어떻게 다른지 알아두면 유용합니다.

파일은 기본적으로 root 소유입니다#

Omnibus 설치에서는 Rails 트리(app/, config/ 등)의 모든 파일이 root에 의해 소유됩니다. 이는 설치를 단순화하고 추가적인 보안을 제공합니다. Omnibus reconfigure 스크립트에는 필요한 경우에만 git 사용자에게 쓰기 권한을 부여하는 명령이 포함되어 있습니다.

예를 들어, git 사용자는 log/ 디렉터리와 public/uploads에 쓰기 권한이 허용되며, db/structure.sql 파일을 재작성할 수 있습니다.

다른 경우에는 reconfigure 스크립트가 GitLab이 파일을 쓰려고 시도하지 않도록 처리합니다. 예를 들어, GitLab은 .secret 파일을 찾을 수 없을 때 이를 생성하여 Rails 루트에 씁니다. Omnibus 패키지에서는 reconfigure가 먼저 .secret 파일을 작성하여 GitLab이 이를 직접 쓰려고 시도하지 않도록 합니다.

코드, 데이터, 로그는 별도의 디렉터리에 위치합니다#

Omnibus 설계는 코드(읽기 전용, /opt/gitlab 하위)를 데이터(읽기/쓰기, /var/opt/gitlab 하위)와 로그(읽기/쓰기, /var/log/gitlab 하위)로 분리합니다. 이를 구현하기 위해 reconfigure 스크립트는 GitLab 설정 파일에서 가능한 경우 사용자 정의 경로를 설정하고, 경로 설정이 없는 경우 심볼릭 링크를 사용합니다.

예를 들어, config/gitlab.yml은 데이터로 처리되므로 해당 파일은 심볼릭 링크입니다. public/uploads도 마찬가지입니다. log/ 디렉터리는 Omnibus에 의해 /var/log/gitlab/gitlab-rails를 가리키는 심볼릭 링크로 대체됩니다.

Omnibus 패키지에 대해 알아야 할 사항

GitLab v19.1
원문 보기
요약

대부분의 사용자는 Omnibus 패키지를 사용하여 GitLab을 설치합니다. Omnibus 설치에서는 Rails 트리(app/, config/ 등)의 모든 파일이 root에 의해 소유됩니다. 예를 들어, git 사용자는 log/ 디렉터리와 public/uploads에 쓰기 권한이 허용되며, db/structure.sql 파일을 재작성할 수 있습니다.

대부분의 사용자는 Omnibus 패키지를 사용하여 GitLab을 설치합니다. 개발자라면 코딩 중에 사용하는 로컬 환경과 Omnibus 패키지가 어떻게 다른지 알아두면 유용합니다.

파일은 기본적으로 root 소유입니다#

Omnibus 설치에서는 Rails 트리(app/, config/ 등)의 모든 파일이 root에 의해 소유됩니다. 이는 설치를 단순화하고 추가적인 보안을 제공합니다. Omnibus reconfigure 스크립트에는 필요한 경우에만 git 사용자에게 쓰기 권한을 부여하는 명령이 포함되어 있습니다.

예를 들어, git 사용자는 log/ 디렉터리와 public/uploads에 쓰기 권한이 허용되며, db/structure.sql 파일을 재작성할 수 있습니다.

다른 경우에는 reconfigure 스크립트가 GitLab이 파일을 쓰려고 시도하지 않도록 처리합니다. 예를 들어, GitLab은 .secret 파일을 찾을 수 없을 때 이를 생성하여 Rails 루트에 씁니다. Omnibus 패키지에서는 reconfigure가 먼저 .secret 파일을 작성하여 GitLab이 이를 직접 쓰려고 시도하지 않도록 합니다.

코드, 데이터, 로그는 별도의 디렉터리에 위치합니다#

Omnibus 설계는 코드(읽기 전용, /opt/gitlab 하위)를 데이터(읽기/쓰기, /var/opt/gitlab 하위)와 로그(읽기/쓰기, /var/log/gitlab 하위)로 분리합니다. 이를 구현하기 위해 reconfigure 스크립트는 GitLab 설정 파일에서 가능한 경우 사용자 정의 경로를 설정하고, 경로 설정이 없는 경우 심볼릭 링크를 사용합니다.

예를 들어, config/gitlab.yml은 데이터로 처리되므로 해당 파일은 심볼릭 링크입니다. public/uploads도 마찬가지입니다. log/ 디렉터리는 Omnibus에 의해 /var/log/gitlab/gitlab-rails를 가리키는 심볼릭 링크로 대체됩니다.