Jenkins로 NodeJS 프로젝트를 빌드해 봅니다.

 

 

 

0. 사전 준비

 

다음 글을 참고하여 빌드 준비를 합니다.

 

 

 

1. NodeJS 플러그인 설치.

 

NodeJS 프로젝트를 빌드하기 위해선 먼저 플러그인이 필요합니다. 

 

 

위의 그림과 같이 Jenkins > Plugin Manager > Nodejs를 검색해 플러그인을 설치합니다.

 

 

 

2. 빌드 툴 설정.

 

플러그인을 설치했으면 이제 빌드에 사용할 NodeJS 버전을 정의해야 합니다. Jenkins > Jenkins 관리 > Global Tool Configuration으로 이동합니다.

 

 

아래로 내려보시면 NodeJS 버전과 관련된 메뉴가 있습니다. Add NodeJS 버튼을 눌러 빌드에 사용할 NodeJS 버전을 정의해 주세요.

 

 

 

 

3. 프로젝트 구성 설정.

 

이제 위에서 설정한 NodeJS를 프로젝트에서 사용할 수 있습니다. JenkinsItem을 하나 생성합니다. 이 예시에서는 Freestyle project로 생성하였습니다. 프로젝트 생성이후 생성한 Item > 구성 > Build로 이동합니다.

 

 

Add build step > Execute NodeJS script 를 선택합니다.

 

 

NodeJS Installation에 사용할 NodeJS 버전을 선택합니다. 해당 리스트는 위의 Global Tool Configuration에서 설정한 NodeJS 버전 리스트가 나타납니다. 지금 바로 NodeJS Script는 사용하지 않겠습니다. 

 

 

NodeJS 버전을 선택한 뒤 Add build step > Execut shell을 선택합니다.

 

 

이제 NPM 빌드 관련 명령어를 입력해 줍니다.

cd /var/lib/jenkins/workspace/lb-4-docker/
npm install
npm run build

 

먼저 해당 프로젝트가 있는 폴더로 이동후 필요한 패키지를 설치합니다. 그 후 빌드를 수행하는 명령어입니다.

 

 

 

4. 빌드 수행.

 

빌드를 수행할 차례입니다. Jenkins 프로젝트로 이동 후 좌측의 Build Now를 눌러 빌드를 수행합니다.

 

 

정상적으로 빌드되었다면 푸른색 원이 보입니다. 좌측의 Console Output메뉴로 이동해 빌드 로그를 확인할 수 있습니다.

 

 

 

 

 

 

SSH를 이용해 Github의 프로젝트를 jenkins와 연동하는 방법에 대해 알아봅니다.

 

 

 

0. 사전 준비

 

다음 글을 참고해 Jenkins를 미리 준비합니다: 2020/01/17 - [Linux] - [Ubuntu] CI/CD를 위한 Jenkins 설치

 

 

 

1. 키파일 생성

 

Jenkins가 설치되어있는 서버에서 키 파일을 생성해야 합니다. 다음 명령어를 통해 키 파일을 생성합니다.

 

> ssh-keygen -t rsa -f smoh-jenkins

 

위 명령어를 실행하면 두 개의 파일이 생성됩니다. 

 

 

확장자가 없는 smoh-jenkins는 개인키 파일이고 확장자가 있는 smoh-jenkins.pub는 공개키 파일입니다.

 

 

 

 

2. Jenkins에 개인 키 등록.

 

먼저 Jenkins에 개인키를 등록합니다.

 

 

위의 그림과 같이 Jenkins > Credential > System > Global credential(unrestricted) 또는 자신이 생성한 시스템으로 이동해 Add credential을 클릭합니다.

 

종류는 SSH Username with private key를 선택합니다. ID, Desc, Username은 모두 Jenkins에서 사용되는 값이므로 임의의 값을 입력합니다. 

 

PrivateKey는 Enter directlt 라디오 버튼을 누른 뒤 생성한 개인키 파일 내부의 값을 모두 입력해 줍니다. 만약 키를 생성할 때 Passphrase를 입력했다면 Passphrase에 입력한 값을 넣어줍니다.

 

 

정상적으로 Jenkins에 새 Credential이 생성되었습니다.

 

 

 

3. Github Project에 공개키 등록.

 

이제 깃헙 프로젝트에 생성한 공개키를 등록할 차례입니다. 

 

 

위 그림과 같이 Github > Project > Settings > Deploy keys > Add deploy key를 클릭합니다.

 

Title은 임의로 명명합니다. Key에는 위에서 생성한. pub 확장자를 가진 공개키의 내용을 모두 입력합니다. Allow write access는 필요에 따라 체크합니다.

 

 

정상적으로 깃헙 프로젝트에 공개키가 등록된 것을 확인할 수 있습니다.

 

 

 

4. 소스 코드 관리 설정.

 

이제 젠킨스와 깃헙의 리포지토리를 연동해 보겠습니다. 젠킨스에 새로운 아이템을 생성해 구성 페이지에서 소스 코드 관리로 이동합니다. 그리고 평소대로 리포지토리 주소를 입력한 후 Credential에 우리가 생성한 Credential을 고릅니다.

 

 

유저 이름과 암호가 다르다는 에러가 발생하네요. 우리는 일반적인 깃헙 로그인 계정을 사용해 Credential을 생성하지 않고 키 파일로 생성했기 때문에 일반적인 HTTPS 방식을 사용할 수 없습니다.

 

깃헙 프로젝트로 이동해 Clone or download에서 Use SSH를 선택하면 나오는 주소를 확인합시다.

 

 

이 값을 다시 젠킨스의 Repository URL에 넣어보세요.

 

 

에러 없이 정상적으로 연동되는 것을 확인할 수 있습니다.

 

 

 

 

 

 

CI/CD를 위해 Ububtu server 18.04.3에 Jenkins를 설치해 봅시다.

 

 

 

1. 저장소 등록

 

Jenkins를 Debian 계열의 리눅스에 설치하기 위해선 시스템에 키를 먼저 추가해야 합니다.

 

다음 명령어를 통해 Jenkins 패키지 저장소 키를 추가합니다.

 

$wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -

 

 

OK를 확인한 후 명령어를 통해 /etc/apt/sources.list에 다음 항목을 추가해야 합니다.

 

deb https://pkg.jenkins.io/debian-stable binary/  

 

다음 명령어를 통해 작업을 진행합시다.

 

우선 혹시 모를 상황을 대비해서 백업 파일을 만들어둡시다.

 

$sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

 

 

이제 다음 명령어를 통해 deb를 추가해 줍니다.

 

$echo "deb https://pkg.jenkins.io/debian-stable binary/" | sudo tee -a /etc/apt/sources.list 

 

 

잘 추가되었나 파일을 확인해 봅시다.

 

$vi /etc/apt/soucres.list

 

 

맨 아래 추가된것을 확인했다면 업데이트를 진행해 줍니다.

 

$sudo apt-get update

 

 

우리가 추가한 jenins.io에 대한 내용이 보이면 제대로 완료된 겁니다.

 

 

 

2. 자바 설치

 

슬프게도 Jenkins는 모든 Java 버전을 지원하지 않습니다. 따라서 명시적으로 Java를 설치해야 하는 과정이 필요합니다. 귀찮기는 하지만 시스템이 올바르게 구성되도록 하는 가장 안전한 방법이라고 합니다. 

 

대표적인 자바 요구사항은 다음과 같습니다.

  • 2.164 (2019-02) and newer: Java 8 or Java 11
  • 2.54 (2017-04) and newer: Java 8
  • 1.612 (2015-05) and newer: Java 7

 

현 포스팅 시점을 기준으로 2.204.1 버전의 Jenkins가 최신이므로 JAVA 11을 설치합니다. 더 자세한 내용은 여기서 확인해 주시기 바랍니다.

 

다음 명령어를 통해 JAVA11을 설치합니다.

 

$sudo apt install openjdk-11-jdk 

 

 

완료 후 자바 버전을 확인해 봅시다.

 

$java -version

 

 

이제 자바도 정상적으로 설치하였으니 Jenkins를 설치해 봅시다.

 

 

 

3. Jenkins 설치.

 

다음 명령어를 통해 Jenkins를 설치합니다.

 

$sudo apt-get install jenkins

 

 

설치가 완료되면 http://server-host:8000/으로 접속해 봅시다.

 

다음과 같은 화면이 보인다면 정상적으로 설치된겁니다.

 

 

 

 

4. Jenkins 활성화

 

이제 웹 UI의 절차를 따라 Jenkins를 활성화하면 됩니다.

 

다음 명령어로 관리자 암호를 확인한 후 UI에 적어줍시다.

 

$sudo cat /var/lib/jenkins/secrets/initialAdminPassword

 

이다음엔 Jenkins를 커스텀할 수 있는 화면이 나옵니다.

 

 

미리 구상해둔 설정이 있는 게 아니므로 우선 추천 플러그인을 설치하도록 하겠습니다.

 

설치가 완료되면 관리자 계정을 만들어 줍시다.

 

 

다음은 URL을 설정하는 화면입니다.

 

 

전 기본값으로 설정한 채 넘어갔으며 만약 당장 설정하고 싶지 않다면 우측 아래의 Not now를 눌러주시면 됩니다.

 

 

드디어 Jenkins를 사용할 준비가 되었습니다.

 

 

 

 

 

+ Recent posts