inflearn logo
강의

講義

知識共有

Jenkinsを利用したCI/CDパイプラインの構築

Jenkins 紹介

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

91

brucehanbusiness

投稿した質問数 6

0

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

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

 

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

ci/cd 정적파일 jsp

回答 2

0

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

communityai8509

안녕하세요, 인프런 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 커뮤니티는 이러한 커스터마이징 작업에 있어 풍부한 자료를 제공하고 있습니다.

git 에 강의내용에 필요한 파일들 존재하지 않음

0

84

2

젠킨스에 등록된..

0

98

2

yml 파일 db 접속정보 수정 후 배포 시 미반영

0

108

2

jdk 버전 17

0

81

2

섹션2 강의자료

0

103

2

DOCKER 이미지 PULL

0

266

1

36강 edowon0623/cicd-project-ansible이 호환이 안되는것 같아요

0

63

1

질문이 있습니다!!

0

68

1

exec /usr/local/tomcat/bin/catalina.sh: invalid argument 오류 해별법(공유)

1

203

4

m2 mac: ansible-server에서 container 실행 안됨

0

159

2

Jenkins와 k8s 연동과 관련한 질문입니다.

0

97

2

Ansible 과 연동에서 이미지 및 컨테이너 생성과 관련한 질문 드립니다.

0

176

2

맥북 실리콘칩 invalid argument 에러 해결 (수동 설치)

0

255

3

Docker Container에서 Tomcat 설치

0

221

2

ec2 여러대에서 각각 직접 설치 이유

0

154

1

P@ssw0rd 설정시기

0

147

2

ansible 원리

0

135

2

ansible 존재여부

0

116

2

젠킨스 빌드 성공후 shutdown

0

249

2

Docker Hub에 Push 무한 로딩

0

121

2

컨테이너에 ssh로 접속 비밀번호 불일치

0

117

1

maven project 오류

0

118

2

엔서블을 이용하여 톰캣 이미지 배포 후, 되돌리는 방법

0

150

2

쿠버네티스 이용시, api gateway 와 service discovery 역할

0

270

2