강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

brucehan_business님의 프로필 이미지
brucehan_business

작성한 질문수

Jenkins를 이용한 CI/CD Pipeline 구축

Jenkins 소개

필요한 파일만 가지고 배포할 수 있나요?

작성

·

45

0

image같은 정적파일이나, JSP만 따로 Jenkins를 통해서 배포할 수 있을까요?

배포하려는 환경은 온프레미스이며, 소스 저장소는 Bitbucket을 사용하고 있습니다!

 

jenkins는 처음이라 감이 잘 안 잡힙니다. 각각의 소수의 원하는 파일들만 자동 배포를 할 수 있는지 궁금합니다!

답변 2

0

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다.

AI 답변이 달려있어, 미확인으로 보이지 않았습니다. 답변이 늦어 죄송합니다.

만약, 말씀하신대로 일부의 코드만 선별적으로 취합하여 배포하려면, Shell Script난 Jenkinsfile을 통해 간단한 필터링으로 작업해 볼 수도 있습니다. 강의에서는 Jenkinsfile을 직접 프로그래밍 해서 처리하는 작업을 많이 넣지는 못했는데, 아래와 같이 선택해서 해 볼 수 있습니다. (아래 AI 답변처럼 필요한 파일을 별도의 폴더에 저장한 다음에 사용하는 것도 가능합니다)

아래 예시에서 사용한 rsync (remote sync)명령어는 특정 패턴의 파일만 포함하거나 제외하는 기능이 사용될 수 있는 명령어로써, Linux 시스템에서 파일을 효율적으로 전송하고 동기화하기 위한 유틸리티 입니다.

pipeline {
    agent any
    stages {
        script {
            // 1. JSP 파일만 배포하는 경우
            echo "Deploying only JSP files..."
            sh """
                rsync -avzR --include='*.jsp' --include='*/' --exclude='*' \
                ./ ${REMOTE_USER}@${REMOTE_HOST}:${TARGET_DIR}
            """

            // 2. 'admin-'으로 시작하는 파일만 배포하는 경우
            echo "Deploying files starting with 'admin-'..."
            sh """
                rsync -avzR --include='admin-*' --include='*/' --exclude='*' \
                ./ ${REMOTE_USER}@${REMOTE_HOST}:${TARGET_DIR}
            """
        }
    }
}

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.
brucehan_business님께서 문의하신 Jenkins를 통한 특정 파일의 자동 배포에 대한 질문에 답변 드리겠습니다.

Jenkins는 다양한 플러그인과 기능을 통해 원하는 파일만 선택적으로 자동 배포할 수 있는 기능을 제공합니다. 특히, Bitbucket과 연동하면 특정 브랜치나 커밋에 해당하는 파일들만 선택적으로 빌드 및 배포할 수 있습니다.

정적 파일이나 JSP와 같은 특정 파일만 배포하려면 Jenkins Pipeline에서 특정 파일을 선택하여 빌드하는 스크립트를 작성할 수 있습니다. 예를 들어, 특정 파일들만 복사한 후 목적지 서버로 전송하는 스크립트를 작성하여 사용할 수 있습니다. 이를 위해 scp 명령어 또는 FTP 플러그인을 사용할 수 있습니다.

해당 환경에 맞추어 Jenkinsfile을 다음과 같이 작성할 수 있습니다:

pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                git 'https://bitbucket.org/yourrepo/yourproject.git'
            }
        }
        stage('Deploy Selected Files') {
            steps {
                // 필요한 파일만 선택해서 복사
                sh 'scp -r path/to/static/files user@server:/path/to/deploy/'
            }
        }
    }
}

위 스크립트는 Bitbucket에서 코드를 체크아웃한 후, 필요한 특정 경로의 파일만 서버로 전송하는 방식입니다.

이와 관련하여 좀 더 구체적인 설정이 필요하시다면, Jenkins 문서나 해당 플러그인의 매뉴얼을 참고하시는 것을 추천드립니다. Jenkins 커뮤니티는 이러한 커스터마이징 작업에 있어 풍부한 자료를 제공하고 있습니다.

brucehan_business님의 프로필 이미지
brucehan_business

작성한 질문수

질문하기