동적 변수를 젠킨스 파라미터로 사용 (Extended Choice Parameter)

TL;DR
동적 변수를 Jenkins 매개 변수로 가져 와서 사용하는 방법을 공유합니다.
예) AWS S3의 버킷 목록을 확인하고 지정된 버킷에 파일 업로드
Extensible Choice Parameter 플러그인과 Groovy 그리고 AWS CLI 를 사용했습니다.
사전 설치
Extensible Choice Parameter1.6.0 플러그인 설치
AWS CLI 1.18.43
AWS CLI 설치 및 설정
# aws cli 설치
$ apt-get update
$ apt-get install python-pip
$ pip install awscli
aws-cli/1.18.43 Python/2.7.13 Linux/4.15.0-43-generic botocore/1.15.43
# aws configure 설정
$ aws configure
AWS Access Key ID [None]: # Access Key 입력
AWS Secret Access Key [None]: # Secret Key 입력
Default region name [None]: # ap-northeast-2
Default output format [None]: # 그냥 엔터
# S3 Butcket 리스트 확인
$ aws s3 ls
2020-04-29 01:46:23 jenkins-bucket-01
2020-04-29 01:46:37 jenkins-bucket-02
2020-04-29 01:46:46 jenkins-bucket-03
2020-04-29 05:06:10 jenkins-bucket-04
2020-04-29 05:06:22 jenkins-bucket-05
Jenkins Job 설정 및 실행
1. Extended Choice Parameter 추가
S3_BUCKET_NAME
이름의 파라미터를 생성해, 아래 그림과 같이 설정합니다.
GroovyScript
import hudson.model.*
import jenkins.model.*
def listBucket() {
def bucket= ("aws s3 ls").execute() // s3 버킷 리스트 확인
return bucket.text.readLines().collect { it.split()[2] }.unique().join(",")
}
return listBucket()
2. Git 추가
업로드 테스트
Dockerfile
Jenkins 저장소에서 파일을 다운로드하십시오.htps : // 기주 b. 코 m / 지 킨킨 s 시 / 지 준 킨 s. 기 t

3. Execute shell 추가
Dockerfile
파일 업로드 및 업로드 확인 명령을 실행합니다.
쉘
#!/bin/sh
echo " > AWS S3 ${S3_BUCKET_NAME} 업로드.."
aws s3 cp ./Dockerfile s3://${S3_BUCKET_NAME}/Dockerfile
echo " > AWS S3 ${S3_BUCKET_NAME} 업로드 확인..."
aws s3 ls s3://${S3_BUCKET_NAME}
4. Job 실행
초기 빌드와 매개 변수를 선택하면 즉시 실행되지 않습니다.
Groovy Script 동작을 승인하는 과정이 필요합니다. (1회)
In-Process Script Approval > Approve


Build with Parameters를 다시 선택하십시오.
드디어!

jenkins-bucket-05
로 선택 후, 빌드하기를 해보겠습니다.

콘솔 아웃풋 보면,
Dockerfile
이 업로드되었는지 확인할 수 있습니다.물론 AWS 웹 콘솔에서도 확인할 수 있습니다.


結音末
어떤 동적 변수를 가져 와서 잘 활용하는가가 가치일 것입니다.
최근 AWS 시작 (?)하면서 예를 S3로했습니다.
(Shell 방식이 아닌) AWS 관련 Jenkins 플러그인도 설치하고 사용하면서 다른 후기도 남겨볼게요.
Reference
이 문제에 관하여(동적 변수를 젠킨스 파라미터로 사용 (Extended Choice Parameter)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/leechungkyu/items/9465d924747d0a170cd7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)