Jenkins

[Jenkins] Pipeline - Credentials 사용 1

비번변경 2023. 11. 3. 11:32

개요

2023.11.02 - [Jenkins] pipeline - 변수 선언 및 사용 글에 이어서 이번 글에서는 Jenkins 파이프라인 사용 시 민감정보 취급을 위한 Credentails 사용 방법에 대해 정리한다.

 

 

Credentials 설정

일단 사용할 Credentails를 생성한다. 이 글에서는 사용자 정보를 저장하려고 한다.

 

1. 왼쪽 메뉴 > Jenkins 관리 > Credentials로 이동

 

2. 민감정보를 저장할 Scope를 선택

테스트 목적이므로 이 글에선 System/Global 영역으로 저장한다.

 

3. 민감정보 값 설정

Jenkins가 지원하는 Credentails 유형은 여러가지가 있는데, 사용 중인 환경에 설치되어 있는 플러그인에 따라 다를 수 있다. 테스트 환경에서는 아래와 같은 Credentails 유형을 확인할 수 있었다.

이 글에서는 사용자 정보를 저장하고자 하므로 Username with password 유형으로 지정한다. 입력 폼에 저장할 정보값을 적절히 설정한 후 Create 버튼을 클릭하여 저장한다.

이상이 없으면 생성된 Credentails을 확인할 수 있다.

 

 

Credentials 구문

위에서 설정한 Credentails 정보를 Pipeline에서 사용해 보도록 한다.  이번 글에서는 Pipeline 코드 작성에 도움을 주는 Snippet Generator를 사용한다.

 

1. Pipeline Configure > Pipeline > Pipeline Syntax 클릭

파이프라인을 생성하고 구성 페이지에서 Pipeline Syntax 하이퍼링크로 이동한다.

이동한 Pipieline Syntax 페이지에서 Snippet Generator를 이용할 것이다. 

Snippet Generator를 사용하면 다양한 step을 정의하는 Pipeline 스크립트 코드를 생성할 수 있다.

 

2. 사용 step 선택

예시 step 목록에서 credentials 사용을 위한 withCredentils을 선택했다.

 

3. 사용할 Credetials 유형 선택

사용자 정보 관련으로는 Username and password (conjoined), Username and password (separated)를 사용할 수 있다. 이 글에서는 Username and password (separated)로 지정했다. 

 

4. Credentials 값을 저장할 변수명 설정

입력 폼에 Credentials 값을 저장할 변수명과 사용할 Credentials을 지정한다.

 

5. 설정 후 Generate Pipeline Script 버튼 클릭

생성된 스크립트는 멀리타인 폼에서 확인할 수 있다. 해당 스크립트를 복사하여 파이프라인에서 사용하면 된다.

 

 

사용 예시

변수에 저장한 값을 사용할 때는 일반적인 변수를 사용하는 것과 동일하게 사용하면 된다.

 

Pipeline 스크립트

pipeline {
    agent any

    stages {
        stage('Hello') {
            steps {
                withCredentials([usernamePassword(credentialsId: 'jenkins-admin-user', passwordVariable: 'password', usernameVariable: 'username')]) {
                    echo "$username"
                }
            }
        }
    }
}

 

실행 결과

정상적으로 지정한 값이 출력된 것을 확인할 수 있다.

 

 

참고 문서

https://www.jenkins.io/doc/book/using/using-credentials/

https://www.jenkins.io/doc/pipeline/steps/credentials-binding/

 

728x90