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
에 대한 심볼릭 링크로 대체됩니다.