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

6890 단어 Jenkinsaws-cliAWS


TL;DR



동적 변수를 Jenkins 매개 변수로 가져 와서 사용하는 방법을 공유합니다.
예) AWS S3의 버킷 목록을 확인하고 지정된 버킷에 파일 업로드
Extensible Choice Parameter 플러그인과 Groovy 그리고 AWS CLI 를 사용했습니다.

사전 설치


  • Jenkins 2.222.1

  • 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를 다시 선택하십시오.
    드디어! 매개 변수 항목에서 S3 Bucket 목록을 확인하고 선택할 수 있습니다.jenkins-bucket-05 로 선택 후, 빌드하기를 해보겠습니다.



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



    結音末



    어떤 동적 변수를 가져 와서 잘 활용하는가가 가치일 것입니다.

    최근 AWS 시작 (?)하면서 예를 S3로했습니다.
    (Shell 방식이 아닌) AWS 관련 Jenkins 플러그인도 설치하고 사용하면서 다른 후기도 남겨볼게요.

    좋은 웹페이지 즐겨찾기