개요
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/