Jenkins 공유 라이브러리: 자세히 살펴보기 [2022]
게시 됨: 2021-01-02우리는 현대 애플리케이션이 개별적으로 배포 가능한 구성 요소로 분해되는 마이크로서비스 시대에 살고 있습니다 . Jenkins는 마이크로서비스 배포를 위한 최고의 독창적인 CI/CD 도구 중 하나라고 주장할 수 있습니다. 모놀리식 애플리케이션과 비교할 때 개별 마이크로서비스를 배포하기 위한 파이프라인이 많이 있습니다.
호스를 코드로 사용하여 CI/CD의 전 과정을 인코딩할 수 있습니다. 앱 개발에서와 같이 처리하십시오. 파이프라인 코드를 게시하고 앱을 배포하는 데 사용하기 전에 모든 테스트 수준을 실행할 수 있습니다.
목차
Jenkins 공유 라이브러리란 무엇입니까?
CI/CD를 상징으로 말할 때 우리는 모듈화와 재사용이 필요합니다. DRY 원칙을 따라야 합니다. 그것이 Jenkins의 공유 라이브러리 ' 가 유용한 곳입니다.
Jenkins Shared Library 는 버전 관리 시스템을 위한 표준 파이프 코드를 포함하는 아이디어이며 단순히 참조하는 것만으로 파이프의 개수에 관계없이 사용할 수 있습니다. 여러 팀이 파이프라인에 대해 동일한 디렉터리를 사용할 수 있습니다.
인기있는 프로그래밍 디렉토리와 비교할 수 있습니다. 프로그래밍은 코드를 가져올 때 누구나 사용할 수 있는 별도의 가이드를 만듭니다.
예를 들어 Java의 마이크로 서비스용 파이프가 10개 있는 경우 파이프 10개 모두에 대해 이전 생성 절차가 반복됩니다. 또한 새로운 서비스가 추가되면서 파이프 코드가 복사 및 붙여넣기됩니다. 오래된 건설 단계에서 일부 매개변수를 변경하려면 모든 파이프에서 수동으로 조정해야 합니다.

같은 시나리오에서 오래된 건물을 위한 공유 라이브러리를 만듭니다. 모든 파이프에 대해 이전 건물 코드 라이브러리를 참조하기만 하면 됩니다. 미래에 오래된 변경 사항이 있는 경우 공유 라이브러리 아이콘만 업데이트하면 됩니다.
읽기: 흥미로운 Jenkins 프로젝트 아이디어 및 주제
공유 라이브러리 사용 시작
공유 디렉토리는 멋진 파일(DSL + Groovy)의 모음입니다. 모든 멋진 파일은 git 저장소에 있어야 합니다. 이 예에서는 Github를 git 리포지토리로 사용합니다. https://github.com/devopscube/jenkins-shared-library. 이 저장소를 복제하여 공유 라이브러리 인프라를 얻을 수 있습니다.
공유 라이브러리 데이터베이스에는 다음과 같은 볼륨 구조가 포함되어 있습니다.
Jenkins 공동 라이브러리
| ____ 변수
| ____ src
| ____ 자원
바르
여기에는 파이프라인에서 호출할 수 있는 모든 WCL 코드가 포함됩니다. .groovy 확장자를 가진 모든 디렉토리 파일이 포함되어 있습니다. .txt 파일은 공유되는 라이브러리 코드를 문서화하는 데도 지원됩니다. 예를 들어, maven-build.xml 이라는 이름의 파일이 있는 경우 Groovy를 선택하면 maven-groovy.txt라는 이름의 도움말 파일이 표시됩니다. 이 파일에서 공유 디렉토리의 속성을 표시하는 도움말 문서를 작성할 수 있습니다. 도움말 파일은 <your-jenkins-url> / 파이프라인 구문 / 글로벌 페이지에서 볼 수 있습니다.
Src
표준 Java 소스 디렉토리입니다. 모든 텍스트가 컴파일되면 클래스 경로에 추가됩니다. 여기에 매우 멋진 코드를 추가하여 공유 라이브러리 코드를 확장할 수 있습니다. 가져오기 매니페스트를 사용하여 기존 Jenkins 범주 및 확장을 가져올 수도 있습니다.

멋진 DSL 하드웨어가 특정 기능을 수행하기에 충분히 유연하지 않은 시나리오가 있습니다. 이 경우 src에 사용자 정의 홈 함수를 작성하고 공유 라이브러리 코드에서 읽을 수 있습니다.
자원
이 폴더에서 호스에 필요한 모든 불필요한 파일을 관리할 수 있습니다. 예를 들어 구성 중에 API를 호출하기 위한 일반 JSON 템플릿이 필요할 수 있습니다. 이 JSON 템플릿을 리소스 폴더에 저장하고 LibraryResource 함수를 통해 공유 라이브러리에서 호출할 수 있습니다.
필독: 인도의 Jenkins 급여
공유 글로벌 라이브러리
사용 사례에 따라 공유 디렉터리를 설정할 수 있는 여러 위치가 있습니다. Jenkins 관리»시스템 구성»글로벌 파이프 라이브러리. 필요한 만큼 디렉토리를 구성할 수 있습니다.
이러한 라이브러리는 보편적으로 사용 가능하므로 시스템의 모든 파이프라인이 이러한 라이브러리에 구현된 기능을 사용할 수 있습니다.
이러한 라이브러리는 "신뢰할 수 있는" 것으로 간주됩니다. Java, Groovy, Jenkins의 내부 API, Jenkins 확장 또는 타사 디렉터리에서 모든 방법을 수행할 수 있습니다. 이를 통해 안전하지 않은 API를 모든 파이프라인에서 안전하게 사용할 수 있는 상위 수준 봉투로 접는 라이브러리를 정확하게 식별할 수 있습니다.
이 SCM 데이터베이스에 수수료를 지불할 수 있는 사람은 누구나 Jenkins에 무제한으로 액세스할 수 있습니다. 이 디렉토리를 생성하려면 Total / RunScripts 권한이 필요합니다(이 권한은 일반적으로 Jenkins 관리자에게 부여됨).
세계 최고의 대학에서 소프트웨어 엔지니어링 과정에 등록하십시오. 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
폴더 수준 공유 라이브러리
생성된 모든 폴더는 공유 디렉터리에 연결할 수 있습니다. 이 메커니즘을 사용하면 볼륨 또는 하위 폴더 내의 모든 파이프에 대해 특정 디렉토리 범위를 설정할 수 있습니다.
폴더 기반 디렉터리는 "신뢰할 수 있는" 것으로 간주되지 않습니다. 일반 파이프와 마찬가지로 그루브 샌드박스에서 작동합니다.
자동 공유 라이브러리
다른 플러그인은 이동 중에 라이브러리를 식별하는 방법을 추가할 수 있습니다. 예를 들어 "GitHub Organization Folder"는 GitHub Branch Source에서 제공하는 소스 플러그인입니다. 추가된 구성을 뺀 github.com/orgname/reponame과 같은 신뢰할 수 없는 라이브러리를 스크립트에서 사용할 수 있도록 하는 구성 요소를 제공합니다. 이 경우 지정된 GitHub 리포지토리는 익명 설정을 사용하여 기본 분기에서 로드됩니다.
라이브러리의 변경 사항을 확인하려면
신뢰할 수 없는 디렉토리가 있는 빌드에서 버그를 발견하면 재생 링크를 클릭하고 하나 이상의 소스 파일을 편집하여 결과 버전이 예상대로 작동하는지 확인하십시오. 결과에 만족하면 릴리스 상태 페이지에서 diff 링크를 클릭하고 차이점을 라이브러리와 커밋 풀에 적용합니다.

(라이브러리에서 요청한 버전이 북마크와 같은 정적 버전이 아닌 브랜치인 경우에도 재활성화된 버전은 원래 버전과 동일한 버전을 사용합니다. 라이브러리 리소스를 풀백할 수 없습니다.)
현재 신뢰할 수 있는 라이브러리 Replay를 제공하지 않습니다. Replay 중 리소스 파일 변경은 현재 지원되지 않습니다.
또한 읽기: Jenkins 인터뷰 질문 및 답변
결론
기억해야 할 몇 가지 중요한 사항은 다음과 같습니다.
- 단계 또는 사용자 정의 함수를 작성하려면 Groovy를 사용해야 합니다.
- 파이프라인에서 호출할 수 있는 파이프라인 단계를 작성해야 합니다.
- 사용자 정의 단계의 이름을 포함할 저장소의 vars 디렉토리에 파일을 생성해야 합니다.
- def 호출 메소드는 단계에 대한 매개변수로 구현되어야 합니다.
- 일반적인 Groovy 코드를 작성해야 하는 경우 src에 추가할 수 있습니다.
- 시스템 구성 화면을 사용하여 Jenkins에서 공유 라이브러리를 통합할 수도 있습니다.
전체 스택 개발에 대해 자세히 알아보려면 upGrad & IIIT-B의 전체 스택 소프트웨어 개발의 이그 제 큐 티브 PG 프로그램을 확인하십시오. 이 프로그램은 일하는 전문가를 위해 설계되었으며 500시간 이상의 엄격한 교육, 9개 이상의 프로젝트 및 과제를 제공합니다. , IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.
