애플리케이션을 빌드하고 배포하는 것은 어려운 작업일 수 있습니다. 왜 Jenkins 빌드 작업을 사용하지 않으시겠습니까? 이를 자동화하여 전체 프로세스를 처리합니다. Jenkins가 코드 배포를 처리하면서 당신은 빌드에 집중할 수 있습니다.
이 튜토리얼에서는 Jenkins를 사용하여 코드 배포를 자동화하는 방법을 배우게 됩니다. 이를 통해 시간을 절약하고 동시에 다른 작업에 집중할 수 있습니다.
준비되셨나요? 시작해봅시다!
전제 조건
이 튜토리얼에는 실습이 포함되어 있습니다. 함께 따라하려면 다음을 준비해야 합니다:
- Ubuntu 시스템 – 이 튜토리얼에서는 Ubuntu 20.04를 사용합니다.
- A GitHub account
- OpenJDK 버전 1.8.0_292
- Jenkins 버전 2.303.1
- Node.js 버전 14.17.6
- 이 GitHub 저장소를 포크하세요 – 포크한 후에는 GitHub 저장소 URL을 기록해 두세요. 나중에 필요합니다.
아래 스크린샷에 표시된 저장소는 위에서 링크된 것과 약간 다릅니다만, 포크하면 다른 저장소 URL을 사용하게 됩니다.
Jenkins 빌드 작업 생성
Jenkins는 소프트웨어 개발 라이프사이클의 자동화에 도움을 주는 오픈 소스 자동화 서버입니다. 이 라이프사이클에는 빌드, 테스트 및 배포가 포함되어 연속적인 통합과 연속적인 전달을 용이하게 합니다.
이 데모에서는 Jenkins 빌드 작업을 생성하는 방법을 살펴보겠습니다. 빌드 작업은 일반적으로 소프트웨어를 빌드/패키지화하는 작업을 자동으로 실행하기 위한 구성입니다.
- 좋아하는 브라우저를 실행하고 http://localhost:8080/ 로 이동하여 Jenkins 대시보드에 로그인합니다. 포트
8080
은 Jenkins 대시보드에 액세스하기 위한 기본 포트입니다.
2. Jenkins의 대시보드에서 왼쪽 패널의 새 항목 버튼을 클릭하여 빌드 작업 생성을 초기화합니다. 이렇게 하면 브라우저가 새 작업 페이지로 리디렉션됩니다.

3. 다음으로 아래에 표시된 입력 필드에서 빌드 작업에 대한 원하는 프로젝트 이름을 입력합니다. 이 예제에서 프로젝트 이름은 webDeploy입니다.
프리스타일 프로젝트 옵션을 선택하여 작업 생성, 스크립트 후처리 작업을 활성화하고 프로젝트 빌드 트리거를 구성한 다음 확인을 클릭합니다. 다음 단계에서 볼 작업 구성 페이지로 리디렉션됩니다.

4. 일반 탭을 클릭하고, 소스 코드 관리자를 연결하기 위해 GitHub 프로젝트 상자를 선택하여 Jenkins가 코드를 가져올 위치를 알 수 있도록합니다. 이 데모는 GitHub에 호스팅되는 샘플 프로젝트를 Git을 소스 코드 관리자로 사용하며 이전에 fork한 것을 사용합니다. GitHub 계정에서 GitHub 리포지토리 URL을 프로젝트 URL 필드에 붙여 넣으십시오.

5. 마지막으로, 소스 코드 관리 탭을 클릭 한 다음 소스 코드 관리자 인 Git을 선택하십시오.
이 GitHub 리포지토리 URL을 복사하여 붙여 넣으십시오 (https://github.com/Claradev32/webDeploy.git) 입력 필드로 이동합니다. 저장 버튼을 클릭하여 현재 구성을 저장합니다.

Jenkins 프로젝트에 자격 증명 생성
클라이언트 프로젝트에 일반적인 것처럼 리포지토리를 비공개로 유지하고자 할 수 있습니다. 그렇다면 Jenkins가 GitHub에서 프로젝트를 복제 할 수 있도록 허용하기 위해 자격 증명을 생성해야합니다.
Jenkins 프로젝트에 자격 증명을 만들려면 먼저 GitHub 계정에 SSH 키를 생성하고 추가해야합니다.
1. 당신의 Ubuntu 터미널을 열고 아래 명령어를 실행하여 ed25519
키 유형으로 SSH 키를 생성하세요. [email protected]
을(를) 여러분의 GitHub 이메일 주소로 바꾸어 해당 주석을 SSH 키에 추가하세요.
2. 다음과 같이 공개 SSH 키를 저장하세요:
- SSH 키의 저장 위치를 지정하고 Enter를 눌러주세요. 그렇지 않으면 명령은 SSH 키를 기본 위치에 저장합니다. 아래와 같이 나타납니다.
- SSH 키에 안전한 암호를 입력하고 SSH 키의 암호를 확인하려면 Enter를 누르세요. 그러면 공개 SSH 키의 출력이 표시됩니다.
- 생성된 SSH 키의 위치를 메모해두세요. 이 위치를 다음 단계에서 GitHub 계정에 추가하게 됩니다.

3. 웹 브라우저에서 GitHub에 로그인하고 계정 설정 페이지로 이동하세요.
4. 왼쪽 패널에서 SSH 및 GPG 키 링크를 클릭한 다음 New SSH Key를 클릭하여 새로운 SSH 키를 구성하세요.

5. 마지막으로, SSH 키에 대한 선호하는 제목을 입력하세요. 제목은 내부 문서 목적으로만 사용됩니다. 이전에 저장한 파일에서 SSH 키를 복사하여 Key 입력 필드에 붙여넣고 Add SSH Key를 클릭하여 키를 저장하세요.
이것은 공개 키이므로 개인 키가 아닙니다!

Jenkins 자격 증명에 SSH 개인 키 추가
이제 Jenkins 자격 증명으로 사용할 SSH 키 쌍을 만들었으므로 Jenkins가 GitHub 리포지토리에 액세스 할 수 있도록 Jenkins 자격 증명에 SSH 개인 키도 추가해야합니다. 그러나 먼저 GitHub 리포지토리의 SSH URL을 메모해 두세요.
1. GitHub 리포지토리 페이지로 이동하고 Code → SSH를 클릭한 다음 아래에 표시된 복사 아이콘을 클릭하여 SSH URL을 클립 보드에 복사합니다.

2. 다음으로 Jenkins 대시 보드로 이동한 다음 Manage Jenkins를 클릭하여 프로젝트 설정 페이지에 액세스합니다.

3. 아래로 스크롤하여 보안 섹션 아래의 Manage Credentials 옵션을 클릭하여 Jenkins 자격 증명 목록을 볼 수 있습니다.

4. 아래에 표시된 Credentials 페이지에서 Jenkins를 클릭하여 새 자격 증명을 추가할 수있는 “시스템” 페이지에 액세스합니다.

5. 이제 시스템 페이지에서 마우스를 Global credentials (unrestricted) 옵션 위로 올려서 드롭 다운 메뉴를 표시 한 다음 아래 화살표 아이콘을 클릭합니다.
드롭 다운 메뉴에서 Add credentials를 클릭합니다. 페이지가 다음 단계에 표시된 새 자격 증명을 구성할 수있는 양식으로 리디렉션됩니다.

6. 첫 번째 입력 필드에서 SSH Username with private key를 선택하고 Username 필드에 프로젝트 사용자 이름을 입력합니다. 이 예제에서 사용자 이름은 CI/CD입니다.
이 경우에는 사용자 이름이 순수한 내부 문서화로 사용되며 인증에는 사용되지 않습니다.

7. 아래 명령을 실행하여 SSH 개인 키를 보려면 위치를 변경하여 키가 저장된 위치를 아래와 같이 표시합니다(아래 키는 홈 디렉토리에 있습니다). 다음 단계에서 Jenkins 자격 증명에 추가하게 될 SSH 개인 키를 확인하세요.

8. SSH 개인 키를 확인한 후 글로벌 자격 증명(제한 없음) 페이지로 돌아갑니다.
“Jenkins 프로젝트용 자격 증명 생성” 섹션(두 번째 단계)에 설정한 암호를 암호 입력 필드에 입력하고 확인을 클릭합니다. 이렇게 하면 Jenkins가 GitHub 리포지토리에 액세스 할 수 있게 됩니다.
SSH 키를 생성할 때 암호를 포함하지 않았다면 직접 입력을 클릭하고 추가 버튼을 클릭합니다. SSH 개인 키를 키 입력 필드에 입력하고 아래와 같이 확인 버튼을 눌러 자격 증명을 저장합니다.

8. Jenkins 대시 보드로 돌아가 마우스를 프로젝트 위로 가져가 화살표 아이콘을 클릭 한 다음 구성을 선택합니다. 이 페이지는 프로젝트 구성 페이지로 리디렉션됩니다.

10. 마침내 드롭다운 필드에서 자격 증명 사용자 이름을 선택하십시오 (“Jenkins 자격 증명에 비밀 키 추가” 섹션의 여섯 번째 단계에서). Jenkins는 기본적으로 CID 원칙을 적용하여 프로젝트의 지속적 통합 및 배포를 보장합니다.

빌드 트리거 및 빌드 후 작업 구성
이제 빌드 작업의 뼈대를 성공적으로 만들었습니다. 그러나 프로젝트를 정기적으로 변경하는 경우 수동으로 매번 재배포해야 할까요? 왜냐하면 빌드 트리거를 설정하지 않을까요? 빌드 트리거를 설정하면 GitHub에 푸시된 프로젝트 변경 사항이 자동으로 재배포됩니다.
1. 프로젝트 구성 페이지에서 빌드 트리거 탭을 클릭하고 GitHub 훅 트리거를 GITScm 폴링하기 옵션을 선택하십시오. 이 옵션을 선택하면 프로젝트 변경 사항이 자동으로 재배포됩니다.

2. 빌드 탭을 클릭하고 빌드 단계 추가를 클릭한 다음 셸 실행을 선택하여 코드의 새 버전을 Jenkins가 다운로드할 때마다 실행될 스크립트를 만듭니다.

만드는 셸 스크립트는 개발 환경에 따라 다릅니다. Windows에서 실행 중인 경우 Windows가 스크립트를 실행하고, 다른 운영 체제도 마찬가지입니다.
3. 아래의 셸 명령어를 입력하고 저장을 클릭하여 빌드 스크립트를 저장하십시오. 변경 사항을 저장한 후 페이지가 프로젝트 대시보드로 다시 이동합니다.
아래 명령어는 소스 코드 원격 위치(origin master
)에서 코드를 가져오고 NodeJS NPM install을 사용하여 프로젝트를 실행하는 데 필요한 종속성을 설치합니다 (npm install
). 이 명령어들은 소스 코드 관리자에 푸시 요청을 할 때마다 실행됩니다.
이 특정 프로젝트는 종속성으로 NodeJS를 사용하지만, 다른 프로젝트는 그렇지 않을 수 있습니다.

4. 이제 프로젝트 대시보드에서 지금 빌드를 클릭하여 빌드를 실행합니다.

5. 빌드 기록으로 스크롤하여 빌드 상태를 확인합니다. 빌드가 성공하면 아래 스크린샷과 유사한 출력이 표시됩니다.

빌드가 실패하면 아래 출력이 표시됩니다.

6. 다음으로 올라가서 프로젝트의 포스트 빌드 작업을 구성하려면 구성을 클릭합니다.

7. 포스트 빌드 작업 탭을 클릭한 다음 포스트 빌드 작업 추가을 선택하고 Git 발행자를 선택합니다. 페이지는 Git 발행자 설정 섹션을 확장합니다 (다음 단계).

8. 마지막으로 빌드 성공시에만 푸시 옵션을 활성화하고 변경 사항을 저장하기 위해 저장 버튼을 클릭합니다. 이 옵션을 활성화하면 젠킨스가 빌드가 성공한 경우에만 코드를 배포하도록 지시합니다.

결론
이 튜토리얼에서는 Jenkins를 소스 코드 관리 시스템에 연결하는 과정을 거쳤습니다. 또한 새로운 버전의 코드를 다운로드할 때 Jenkins가 자동으로 실행되는 빌드 스크립트를 만들고 웹 배포를 자동화하기 위해 빌드 트리거를 설정했습니다.
이제, Jenkins 빌드 작업으로 응용 프로그램 배포를 자동화하여 시간을 절약해 보는 것은 어떨까요?