Omnibus 패키지에 대해 알아야 할 내용

대부분의 사용자는 Omnibus 패키지를 사용하여 GitLab을 설치합니다. 개발자로서는 코딩하는 동안 노트북에 있는 것과 Omnibus 패키지와의 차이를 알아두는 것이 좋을 수 있습니다.

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

Omnibus 설치에서는 Rails 트리(app/, config/ 등)의 모든 파일이 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로의 심볼릭 링크로 대체됩니다.