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

대부분의 사용자는 GitLab을 Omnibus 패키지를 사용하여 설치합니다. 개발자로서 코딩할 때 여러분의 노트북과 Omnibus 패키지 간의 차이를 아는 것이 좋습니다.

기본적으로 파일은 root가 소유

Rails 트리(app/, config/, 등)의 모든 파일은 Omnibus 설치에서 root가 소유합니다. 이는 설치를 간소화하고 추가적인 보안을 제공합니다. Omnibus 재구성 스크립트는 필요할 때만 git 사용자에게 쓰기 권한을 부여하는 명령을 포함합니다.

예를 들어, git 사용자는 log/ 디렉토리, public/uploads에 쓰기 허용 권한이 있으며, db/structure.sql 파일을 다시 쓸 수 있습니다.

다른 경우에는 재구성 스크립트가 GitLab이 파일에 쓰지 않도록 속입니다. 예를 들어, GitLab은 .secret 파일을 찾을 수 없으면 생성하고 Rails 루트에 기록합니다. Omnibus 패키지에서는 재구성이 .secret 파일을 먼저 작성하므로 GitLab이 이를 쓰려고 시도하지 않습니다.

코드, 데이터 및 로그는 별도의 디렉토리에 있음

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

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