GitLab_가이드

개별 소프트웨어 정의

구일칠구 2022. 7. 31. 23:00

개별 소프트웨어 정의

Omnibus GitLab은 배터리 포함 배포 방식을 따릅니다. GitLab 인스턴스의 적절한 기능에 필요한 모든 소프트웨어, 라이브러리 및 바이너리는 패키지의 일부로 포함된 형식으로 제공됩니다.

따라서 옴니버스 아키텍처의 또 다른 주요 구성 요소 중 하나는 소프트웨어 정의 및 구성 입니다. 일반적인 소프트웨어 구성은 다음 부분으로 구성됩니다.

  • 필요한 소프트웨어 버전입니다.
  • 소프트웨어 라이선스.
  • 빌드/실행할 소프트웨어에 대한 종속성.
  • 소프트웨어를 빌드하고 패키지 내부에 포함하는 데 필요한 명령입니다.

때로는 소프트웨어의 소스 코드를 GitLab과 함께 사용하기 위해 패치해야 할 수도 있습니다. 이는 보안 취약점을 수정하거나 GitLab에 필요한 일부 기능을 추가하거나 GitLab의 다른 구성 요소와 함께 작동하도록 하기 위한 것일 수 있습니다. 이를 위해 Omnibus GitLab은 다양한 소프트웨어에 대한 패치가 저장되는 패치 디렉토리 로 구성됩니다.

보다 광범위한 변경 사항의 경우 미러의 분기에서 필요한 변경 사항을 추적하는 것이 더 편리할 수 있습니다. 이를 위해 따라야 할 패턴은 업스트림 태그 또는 sha에서 분기를 생성하여 분기 이름으로 해당 분기점을 참조하는 것입니다. 예를 들어 옴니버스 코드베이스에서 업스트림 프로젝트의 태그를 gitlab-omnibus-v5.6.10 기반으로 합니다 . 이를 통해 로컬 변경 사항이 무엇인지 식별하는 것과 v5.6.10같은 비교 링크를 생성할 수 있습니다 .https://gitlab.com/gitlab-org/omnibus/compare/v5.6.10...gitlab-omnibus-v5.6.10

글로벌 GitLab 구성 템플릿

Omnibus GitLab은 사용자의 컴퓨터에 설치될 GitLab 인스턴스의 모든 부분을 구성하는 데 사용할 수 있는 단일 구성 파일과 함께 제공됩니다. 이 구성 파일은 GitLab 인스턴스에 적용될 모든 구성 설정의 표준 소스 역할을 합니다. GitLab 인스턴스에 대한 일반 설정과 다양한 구성 요소에 대한 다양한 옵션이 나열됩니다. 이 파일의 공통 구조는 형식에 지정된 구성으로 구성됩니다 <component>['<setting>'] = <value>. 사용 가능한 모든 옵션은 구성 템플릿 에 나열되어 있지만 GitLab의 기본 작업에 필요한 옵션을 제외한 모든 옵션은 기본적으로 주석 처리되어 있습니다. 사용자는 필요한 경우 주석을 제거하고 해당 값을 지정할 수 있습니다.

GitLab 요리책

이전에 설명한 대로 Omnibus GitLab은 요리 책, 속성 및 리소스와 같은 많은 Chef 구성 요소를 사용합니다. GitLab EE는 GitLab CE가 사용하고 EE 전용 구성 요소를 추가하는 것에서 확장된 별도의 쿡북을 사용합니다. Omnibus GitLab의 Chef 관련 부분의 주요 플레이어는 다음과 같습니다.

기본 속성

기본 속성 은 이름에서 알 수 있듯이 구성 파일에 제공된 다양한 설정에 대한 기본값을 지정합니다. 이러한 값은 안전 장치 역할을 하며 사용자가 설정에 값을 제공하지 않으면 사용되므로 최소한의 사용자 조정이 필요한 GitLab 인스턴스가 작동하도록 합니다.

조리법

레시피 는 사용자의 컴퓨터에서 GitLab 생태계의 각 구성 요소를 설정하는 책임이 있으므로 옴니버스 패키지를 사용하여 GitLab을 설치하는 동안 대부분의 힘든 작업을 수행합니다. 해당 위치에 필요한 파일, 디렉토리 및 링크를 생성하고, 권한 및 소유자를 설정하고, 필요한 서비스를 구성, 시작 및 중지하고, 해당 파일이 변경되면 이러한 서비스에 알립니다. 이라는 마스터 레시피 default는 진입점 역할을 하며 다양한 구성 요소 및 서비스에 필요한 다른 모든 레시피를 호출합니다.

정의

정의 는 전체 레시피에서 사용할 수 있는 전역 수준 매크로로 간주할 수 있습니다. 정의에 대한 몇 가지 일반적인 용도는 공통 서비스에 사용되는 포트를 정의하고 다른 레시피에서 사용할 수 있는 중요한 디렉토리를 나열하는 것입니다. 다른 레시피에서 재사용할 수 있는 리소스를 정의합니다.

구성 요소 구성을 위한 템플릿

앞서 언급했듯이 Omnibus GitLab은 GitLab 인스턴스의 모든 구성 요소를 조정할 수 있는 단일 구성 파일을 제공합니다. 그러나 서로 다른 구성 요소의 아키텍처 설계에 따라 특정 위치에 있는 개별 구성 파일이 필요할 수 있습니다. 이러한 구성 파일은 일반 구성 파일에서 사용자가 지정한 값이나 지정된 기본값에서 생성되어야 합니다. 따라서 Omnibus GitLab 은 기본값이나 사용자 값으로 채워질 수 있는 자리 표시 자가 있는 이러한 구성 파일의 템플릿과 함께 제공됩니다. 레시피는 템플릿을 채우고 필요한 위치에 배치하여 이러한 템플릿을 완성하는 작업을 수행합니다.

일반 라이브러리 방법

Omnibus GitLab은 또한 주로 코드 재사용을 목적으로 하는 일부 라이브러리 메서드 를 제공합니다. 여기에는 서비스가 실행 중인지 확인하는 메서드, 파일이 있는지 확인하는 메서드, 다른 구성 요소와 상호 작용하는 도우미 메서드가 포함됩니다. 그들은 종종 Chef 레시피에 사용됩니다.

Omnibus GitLab에서 사용되는 모든 라이브러리 중에서 기본 GitLab 모듈과 이 모듈이 호출하는 모든 구성 요소별 라이브러리와 같은 몇 가지 특별한 라이브러리가 있습니다. 구성 요소별 라이브러리에는 해당 구성 요소에 대해 정의된 설정에 대한 구성 파일을 구문 분석하는 작업을 수행하는 메서드가 포함되어 있습니다. 기본 GitLab 모듈에는 이를 조정하는 메서드가 포함되어 있습니다. 기본값 식별, 구성 요소별 라이브러리 호출, 기본값과 사용자 지정 값 병합, 유효성 검사 및 초기 값을 기반으로 추가 구성 생성을 담당합니다. Omnibus GitLab 패키지에서 제공하는 모든 최상위 구성 요소는 이 모듈에 추가되어 구성 파일 및 기본 속성에 언급되고 올바르게 구문 분석될 수 있습니다.

'GitLab_가이드' 카테고리의 다른 글

패키지 정보  (0) 2022.08.01
지원 중단 정책  (0) 2022.08.01
옴니버스 기반 패키지 및 이미지  (0) 2022.08.01
루닛 (runit)  (0) 2022.08.01
클라우드 공급자에 GitLab 설치  (0) 2022.07.31