[Jenkins] Jenkins를 설치부터 연결해보자 ~

김우경·2021년 6월 1일
1

ci/cd 찍먹

목록 보기
11/13

Jenkins

가장 널리 쓰이는 DevOps Integrity 도구

  • 오픈소스이다
  • 어떤 SW DevOps도 자동화가 가능하다
  • Java로 작성되어 있음

설치하기

https://linuxize.com/post/how-to-install-jenkins-on-ubuntu-18-04/https://pkg.jenkins.io/debian-stable 를 참고해서 설치했습니다.
이해를 위해 흰 배경은 Master, 회색 배경은 Agent로 사용하겠습니다.

새 인스턴스 생성

Master로 쓸 인스턴스 하나와 Agent로 쓸 인스턴스 하나를 생성합니다.

Master와 Agent 사이의 통신을 위해 다음과 같이 보안 규칙을 수정해줍니다. 특정 포트로 통신할 수도 있지만 간단한 실습을 위한 것이니 그냥 어디서든 접근 가능하게 수정해줍니다.

인스턴스에 자바 설치하기

Jenkins는 자바로 작성된 프로그램이므로 인스턴스에 자바를 설치해줍니다.!
Master Instance
sudo apt install openjdk-8-jdk
자바 8을 사용해야 동작하므로 맞는 버전을 설치해줍니다.
BuildAgent Instance에서도 마찬가지로 자바를 설치해줍니다.

Master에 Jenkins 설치

https://pkg.jenkins.io/debian-stable 를 참고하여 Master Instance에 젠킨스를 설치합니다.

Master Node에서 sudo 권한으로 바꿉니다.
-> 해당 위치는 일반 권한으로 접근이 안되기 떄문에~
sudo su
/etc/apt/sources.list 파일의 맨 윗줄에 다음 명령어를 추가합니다.
deb https://pkg.jenkins.io/debian-stable binary/

저장하고, 루트권한을 종료시킨뒤 젠킨스를 설치합니다.
sudo apt-get update
sudo apt-get install jenkins

맞게 설치되어 동작하는지 확인합니다~

젠킨스 접속하기

Master Instance의 퍼블릭IPv4:8080으로 접속하면 다음과 같은 화면을 볼 수 있습니다.

페이지에 안내되어있는 경로를 접속하여 비밀번호를 찾고, 해당 비밀번호를 입력합니당.
sudo cat /var/lib/jenkins/secrets/initialAdminPassword

전 왼쪽의 suggested plugins를 선택하여 설치했습니다.
설치가 오래 걸린다,,

적절한 유저네임, 패스워드를 설정한다음 Continue!

Agent 기계와 연결될 수 있도록 설정합니다.

Random port로 클릭!


Agent로 사용할 New Node를 추가합니다.
적절한 이름을 생성해주고, 아까 Master Node에 생성한 jenkins 폴더의 경로를 Labels에 입력, Launch Method는 connecting to the master로 설정해줍니다.

Master와 Agent 연결하기

build node 클릭!

Launch를 클릭해서 jnlp파일을 다운받고, agent.jar 파일을 다운받습니다.

깃헙 레포지토리를 하나 파고, 아까 다운받은 두 파일을 업로드 해줍니다.

Agent에 Git 설치

Agent Instance에 git을 설치합니다.
sudo apt-get install -y git

Agent에 jenkins 디렉토리를 만들고 git init & 아까 만든 레포지토리를 origin으로 설정해줍니다. 그리고 풀받아오기 !

git init
git remote add origin {레포지토리주소}
git pull origin master


그리고 아까 Jenkins에서 안내해준 cmd를 입력합니다.

java -jar agent.jar -jnlpUrl http://3.37.87.174:8080/computer/build/jenkins-agent.jnlp -secret 48bccd95d36f1ba45658657a1d88557b94814bca39070eaff9873e14e537552f -workDir "/home/ubuntu/jenkins"

->
연결 완 료 @~!!

profile
Hongik CE

0개의 댓글