mingming

Jenkins 메뉴 소개 본문

DevOps

Jenkins 메뉴 소개

mingming_96 2023. 9. 11. 16:15

Jenkins Login을 하게 되면 좌측의 메뉴들이 존재합니다 .

 

1. 새로운 Item: 젠킨스를 통해서 빌드할 작업을 아이템 이라고 합니다. 

 

2. 사람 : 사용자를 관리하는 메뉴입니다. 현재는 최초 접속한 admin 사용자만 기록되어 있습니다.

 

3. 빌드기록 : 젠킨스 작업에 대한 성공, 실패, 진행 내역을 확인할 수 있습니다.

 

4. My Views : 젠킨스에서 각종 작업을 분류해 모아서 볼 수 있는 대시보드 입니다.

 

5. Lockable Resources: 젠킨스에서는 한 번에 여러 작업이 동시에 일어날 수 있습니다. 이때 작업이 진행 중이라면 옵션에 따라 다른 작업은 대기를 해야 할 수 있습니다. 이를 동시성 문제라고 하며 젠킨스에서는 작업이 끝날 때 까지 같은 작업을 하지 못하게 하는 잠금 장치를 Lockable Resource로 설정할 수 있습니다. 

 

6. New View : 대시보드인 View를 생성하는 작업입니다 .

 

Jenkins 관리 메뉴

 

Jenkins의 시스템, 보안, 도구, 플러그인 등 각종 설정을 수행하는 곳입니다. 

 

1. System : 메인 화면에 표시될 문구 , 동시에 실행할 수 있는 실행기의 개수, 젠킨스를접속할 수 있는 경로, 관리자의 정보, 시스템 전체에 적용할 수 잇는 환경변수, 시스템에서 공통적으로 활용해야 하는플러그인파이르이 경로와 설정 정보 등을 이곳에서 설정할 수 있습니다.

 

2. Tools : 빌드 과정에서 사용하는 도구(Maven, JDK, Git, Docker)의 경로 및 옵션을 설정할 수 있습니다. 플러그인 관리를 통해 추가로 사용할 도구를 설정하면 이 메뉴에서 해당 도구를 설정하는 메뉴를 찾을 수 있습니다. 

 

3. Plugins : 젠킨스에서 사용할 플러그인을 설치 , 삭제 , 업데이트 할 수 있습니다. 

 

4. Nodes : 젠킨스에서 사용하는 노드를 추가, 삭제하거나 노드의 세부 설정 및 상태 모니터링을 할 수 있는 메뉴입니다. 젠킨스에서는 작업을 수행할 수 있는 각 단위를 쿠버네티스와 동일하게 노드라고하며, 노드에 레이블을 붙여 관리하거나 노드의 동작 방식을 설정할 수 있습니다. 

 

5. Configuration as Code : 젠킨스의 설정을 내보내거나 불러올 수 있습니다. 이 메뉴를 통해 다른 곳에서 구성한 젠킨스 설정을 옮겨오거나 내 젠킨스의 설정을 내보내 공유할 수 있습니다. 

 

6. Manage Credentials : 젠킨스에서 사용하는 플러그인에 필요한 접근 키, 비밀 키, API 토큰과 같은 접속에 필요한 인증 정보를 관리합니다. 노출이 되면 곤란한 정보이기 때문에 프로젝트에 직접 입력하지 않고 필요한 경우 호출해 사용합니다. 

 

Jenkins System 설정

1. 시스템 메시지 : 젠킨스의 메인 웹페이지에 접속했을 때 나타나는 메시지

 

2. # of executors : 동시에 빌드를 수행할 수 있는 실행기의 개수를 설정하는 옵션 이 옵션은 컨트롤러 노드에서 몇 개까지의 빌드를 실행할 수 있을지 설정할 수 있습니다. 

 

3. Labels : 노드를 구분할 수 있는 레이블을 지정 , 설정한 레이블을 통해 Usage 옵션을 사용해 특정 작업을 어떤 노드에서 작업할 지 결정할 수 있습니다. 

 

4. Usage : 젠킨스의 빌드 작업에 대해 젠킨스 노드가 어떻게 처리할지 설정합니다.

  Use this node as much as possible : 빌드 작업을 수행할 때 별도의 조건 없이 노드에 빌드를 할 수 있는 환경이라면 현재   노드에서 빌드를 진행하도록 설정 

 

  Only build jobs with label expression matching this node : 이 노드와 일치하는 레이블 표현식을 가진 작업만 빌드 주로      빌드 환경이 다른 플랫폼에서 빌드를 수행할 때 사용됩니다. 

 

5. Quiet period : 빌드 작업이 시작될 때 까지 잠시 대기하는 시간을 설정하는 값 입니다. 단위는 초 단위이며, 짧은 시간에 변경된 코드에 대해서 중복으로 작업을 수행하지 않고 가장 마지막으로 변경된 코드를 빌드하기 위해 사용 

 

6. SCM cehckout retry count : 소스 코드 저장소 (SCM) 로부터 파일을 가져오지 못한 경우 몇 번 재시도를 할 지 설정하는 옵션입니다. SCM이란 (Source Code Management)의 약자로 개발자들의 소스 코드를 통합하고 관리하며 이력을 추적하기 위해 사용하는 시스템 

 

7. Restrict project naming : 젠킨스를 통해 만들어지는 작업의 이름 규칙을 설저하는 옵션입니다. 체크박스에 체크하면 이름 규칙을 편집할 수 있는 영역이 생기며, 제약 조건은 정규식 패턴으로 작성해 적용할 수 있습니다. 현재 설치된 젠킨스는 strategy 가 Default로 설정돼 있기 때문에 자유롭게 프로젝트 이름을 설정할 수 있습니다.

 

8. Jenkins URL : 설치된 젠킨스 컨트롤러의 접속 주소입니다. 

 

9. Resource Root URL : 빌드 결과물과 같은 내용을 외부에 공개하기 위해 사용되는 주소로 Jenkins URL 과는 다릅니다. 

 

Jenkins plugin

1. Update : 젠킨스에 설치된 플러그인 중에 업데이트된플러그인이 있는 경우 최신 버전으로 올릴 수 있습니다. 

 

2. Available Plugins : 설치되지 않은 플러그인을 검색해 현재 젠킨스에서 해당 기능을 추가할 수 있습니다. 

 

3. Installed Plugins : 현재 젠킨스에 설치돼 있는 플러그인 정보를 확인할 수 있으며 , 삭제할 수 있습니다. 

 

4. Advanced settings : 외부와 연결되는 프록시 서버 설정

 

Jenkins Nodes 

1. Nodes : 에이전트 노드 추가 고정된 여러 대의 서버에서 에이전트 노드를 추가해야 할 때 필요합니다.

 

2. Configuration Clouds : 클라우드 환경 기반의 에이전트를 설정할 때 필요합니다. 쿠버네티스 위에 설치된 젠킨스의 에이전트에 관한 설정도 이 메뉴에서 설정 할 수 있습니다.

 

3. Node Monitoring : 에이전트 노드의 안정성을 위한 각종 모니터링과 관련된 사항을 설정할 수 있습니다. 

 

Configure Clouds

1. kubernetes : 쿠버네티스 설정과 관련된영역 

 

2. kubernetes Cloud details : 쿠버네티스 클러스터에 접속하기 위한 정보 설정 쿠버네티스 외부에 젠킨스를 설치한 경우 쿠버네티스에 대한 정보를 수정해야 합니다.

 

3. Pod Templates : 쿠버네티스 위에 설치된 젠킨스는 작업 시 에이전트를 파드의 형태로 생성합니다. 이곳에서 에이전트로 사용할 파드와 관련된 설정을 합니다. 이때 Pod Template는 젠킨스 컨트롤러를 다시 시작하면 모든 설정이 초기화 됩니다. 

 

Jenkins Agent Template

1. Labels : 에이전트 노드를 구분할 때 사용할 레이블을 설정할 수 있습니다. Pod metadata 에 label을 설정하는 것과 동일 합니다 .

 

2. Usage : 노드의 사용 방법을 정의할 수 있습니다. 

 

Container Template 

 

1.  Docker image : 컨테이너에서 사용할 이미지 지정 

 

2. Command to run : 컨테이너에서 실행하는 명령 , 강제 실행을 위한 명령이 있는 경우 사용 

 

3. Environment Variable : 컨테이너의 환경변수 설정 

 

Volumes 

 

1. Config Map Volume : 쿠버네티스에 존재하는 ConfigMap 오브젝트를 파드 내부에 연결해서 이를 파드에서 사용할 수 있습니다. 

 

2. Empty Dir Volume : 파일 및 내용이 없는 디렉터리를 파드 내부에생성합니다. 

 

3. Host Path Volume : 호스트, 즉 쿠버네티스 워커 노드에 파일 및 디렉터리를 파드에서 사용할 수 있도록 연결해줍니다. 이를 통해 파드는 호스트에 위치한 명령이나 데이터를 보존할 수 있습니다. 

 

4. NFS Volume : NFS 서버에 위치한 원격의 디렉터리를 파드가 사용할 수 있도록 합니다. 

 

5. Persistent Volume Claim : 쿠버네티스 클러스터에서 PVC로 설정한 볼륨을 파드에서 사용할 수 있습니다 .

 

6. Secret Volume : 쿠버네티스에 있는 Secret 오브젝트를 파드 내부에 연결해 파드에서 사용할 수 있도록 합니다 .

 

권한 

 

1. Service Account : 쿠버네티스 클러스터 및 오브젝트의 정보를 조회하기 위한 계정입니다. 

 

2. User ID : 에이전트 파드가 실행될 때 파드에 부여되는 숫자로, 리눅스 사용자에게 부여되는 숫자 식별자 

 

3. Group ID : 에이전트 파드가 실행될 때 파드에 부여되는 숫자로 리눅스 사용자에게 부여되는 숫자로 된 식별자 

 

 

Jenkins Service Account 권한 설정하기 

jenkins service account 에 admin 권한 부여하기 

kubectl create clusterrolebinding jenkins-cluster-admin --clusterrole=cluster-admin --serviceaccount=default:jenkins