Publish over SSH 설정 - 16/17 AWS EC2 JENKINS 스프링부트 자동배포

 

 

젠킨스의 Publish Over SSH를 이용하면 다른 서버에 빌드한 파일을 전송할 수 있습니다.

배포와 서버를 한 컴퓨터에서 사용할거라서 로컬에 복사합니다.

 

Jenkins Workspace > Springboot Home Directory

 

 

1. 젠킨스 > 젠킨스 관리 > 시스템 설정

 

 

2. Publish over SSH > 설정값 입력 > Test Configuration > Success > 저장

Key			ec2생성할때 다운로드받은 .pem파일 내용 (편집기로 오픈 > 복사 > 붙여넣기)
Name			LOCALHOST
Hostname		127.0.0.1
Username		ec2-user
Remote Directory	./
접속 테스트

 

 

3. 젠킨스 > 프로젝트 > 구성

 

 

 

4. 빌드 후 조치 > 빌드 후 조치 추가 > Send build artifacts over SSH

 

 

5. SSH Server에 값 입력

/home/ec2-user/webapps/start.sh는 이전글에서 생성한 빌드 스크립트 입니다.

Name			LOCALHOST

Source files			target/*.jar
Remove prefix		target
Remote directory		webapps
Exec command		nohup sh /home/ec2-user/webapps/start.sh &
				sleep 1

 

 

6. 고급 > Exec in pty 체크

 

 

7. 프로젝트 > Build Now

 

 

 

8. 빌드 콘솔에서 SSH 전송 확인

 

 

9. EC2 콘솔 > 파일복사확인

ls -l /home/ec2-user/webapps

 

 

10. 스프링부트 프로젝트 서버 시작 확인

ps -ef | grep java

 

 

11. 브라우저로 접속 확인

 

젠킨스에 깃허브 연동, 빌드 - 13/17 AWS EC2 JENKINS 스프링부트 자동배포

 

 

이번에는 젠킨스에 새로운 아이템을 생성해서 Github에서 소스를 받아서 jar파일을 생성해보겠습니다.

그리고 서버에서 스프링부트 프로젝트를 실행하면 수동으로 배포가 완료됩니다.

 

 

1. 젠킨스 > 새로운 Item

 

 

2. 이름 입력 (저는 springboot로 입력했습니다)

 

 

3. 소스 코드 관리 > Git 선택

 

 

 

4. 깃허브 > Code > Clone > HTTPS > 주소 복사

 

 

5. Repository URL에 복사한 주소 입력 > Credentials > Add > Jenkins

 

 

6. Github 계정정보 입력 > Add

Domain: Global credentials (unrestricted)
Kind: Username with password
Scope: Global (Jenkins, nodes, items, all child items, etc)
Username: 깃허브아이디(이메일주소)
Password: 깃허브비밀번호

 

 

7. Branch Specifier (blank for 'any') 에 */master 입력 > 저장

다른 브랜치가 있으면 다른것을 입력해도 됩니다.

 

 

 

8. 젠킨스 > Item > Build Now

 

 

9. 콘솔 출력 확인

첫 빌드때는 프로젝트에 필요한 jar파일을 다운받느라고 좀 느립니다.

 

 

10. EC2 > 빌드된 jar 확인

springboot는 젠킨스에서 생성한 Item이름입니다.

cd /var/lib/jenkins/workspace/springboot/target
ls -l

 

젠킨스에 메이븐 연결 - 12/17 AWS EC2 JENKINS 스프링부트 자동배포

 

 

메이븐 플러그인은 플러그인이고 젠킨스가 설치된 EC2에 메이븐이 설치되어 있어야 합니다.

젠킨스에 적용하기 위해서 메이븐 홈 디렉토리를 지정해주겠습니다.

 

 

1. 젠킨스 > Jenkins 관리 > Global Tool Configuration

 

 

2. Maven Configuration은 패스

 

 

3. Maven > Add Maven

 

 

 

4. 메이븐 홈 디렉토리 확인 (Maven Home: /usr/share/apache-maven)

 

 

5. Name(아무렇게나), MAVEN_HOME 입력 > Save

 

젠킨스에 자바 설정 - 11/17 AWS EC2 JENKINS 스프링부트 자동배포

 

 

젠킨스 설정에 가서 설치한 자바를 설정해줍니다.

이전에 이미 자바를 설치했기때문에 설치된 자바를 설정하겠습니다.

자바가 여러개 가지고 싶으면 또 설치해도 됩니다.

 

 

1. 젠킨스 > Jenkins 관리 > Global Tool Configuration

 

 

2. JDK > Add JDK

 

 

3. Install automatically 체크 해제 > Name, JAVA_HOME 입력 > Save

Name은 아무렇게나 입력해도 됩니다.
JAVA_HOME은 본인 인스턴스에 맞는 경로를 입력하세요.

Name		JDK1.8
JAVA_HOME	/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.265.b01-1.amzn2.0.1.x86_64

 

 

 

EC2에 메이븐 설치 - 10/17 AWS EC2 JENKINS 스프링부트 자동배포

 

 

yum으로 EC2에 Maven을 설치하겠습니다.

메이븐은 젠킨스에서 프로젝트 빌드할때 필요한 프로그램 입니다.

 

 

1. yum 업데이트

sudo yum update -y

 

 

2. 메이븐 패키지 리파지토리 정보 가져오기

sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo

 

 

3. 최신 메이븐 패키지 정보 추출

sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo

 

 

 

4. 메이븐 설치

sudo yum install -y apache-maven

 

 

5. 메이븐 버전 확인

Maven home 경로는 나중에 젠킨스에 입력해줘야 합니다.

mvn --version

 

EC2에 깃 프로그램 설치 - 9/17 AWS EC2 JENKINS 스프링부트 자동배포

 

 

젠킨스에서 사용할 깃 프로그램을 설치하겠습니다.

Github, Gitlab, 뭐든 깃을 이용하는 곳에서 소스를 받으려면 Git을 설치해야 합니다.

 

 

1. yum 업데이트

sudo yum update -y

 

 

2. 깃 설치

sudo yum install git -y

 

 

3. 깃 버전 확인

git version

 

젠킨스 접속 포트 변경 - 7/17 AWS EC2 JENKINS 스프링부트 자동배포

 

 

젠킨스의 기본 포트는 8080입니다.

그런데 저는 서버 한대에 젠킨스와 스프링부트를 함께 돌릴거라서 포트가 겹칩니다.

그래서 8080은 스프링부트에 적용하고,

젠킨스 포트를 8090으로 변경하겠습니다.

(8090말고도 다른 원하는 포트로 변경해도 됩니다.)

 

 

1. 젠킨스 파일 수정

sudo vi /etc/sysconfig/jenkins

... 파일수정

:wq

 

 

2. 젠킨스 서비스 재시작

sudo service jenkins restart

 

 

3. 변경된 포트로 접속

http://탄력적IP:8090

 

EC2에 젠킨스 설치 - 6/17 AWS EC2 JENKINS 스프링부트 자동배포

 

 

EC2에 젠킨스를 설치하겠습니다.

저는 자동배포가 목적이기 때문에,

기본설정에 기본 플러그인을 모두 설치합니다.

 

 

1. yum 업데이트

sudo yum update -y

 

 

2. 젠킨스 저장소 가져오기

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

 

 

3. 젠킨스 키 가져오기

sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

 

 

 

4. 젠키스 설치

sudo yum install jenkins -y

 

 

5. 젠킨스 서비스 시작

sudo service jenkins start

 

 

6. 브라우저로 접속
http://탄력적IP:8080

 

 

7. EC2에서 비밀번호 복사
위 스크린샷의 위치의 파일을 열면 됩니다.

 sudo vi /var/lib/jenkins/secrets/initialAdminPassword

 

 

 

8. 복사한 비밀번호 붙여넣기 > Continue

 

 

9. Customize Jenkins > Install suggested plugins

 

 

10. Getting Started
기본 플러그인을 설치, 시간이 좀 걸립니다.

 

 

11. 관리자 계정 만들기

 

 

 

12. 젠킨스 주소 확인 > Save and Finish

 

 

13. Jenkins is ready! > Start using Jenkins

 

 

14. 젠킨스 메인페이지 접속

 

EC2 인스턴스 생성 - 1/17 AWS EC2 JENKINS 스프링부트 자동배포

 

 

AWS EC2에 스프링부트 프로젝트를 자동배포 하는 방법입니다.

로컬 컴퓨터에서 스프링부트 프로젝트의 소스를 푸시(커밋)하면 EC2에 자동으로 배포/적용되게 하겠습니다.

 

예제에서 사용하는 스프링부트 프로젝트는 메이븐 기반입니다.

(그래들 프로젝트도 젠킨스에 기본으로 깔리니까 잘 빌드될것 같습니다.)

스프링부트 프로젝트가 있고 소스가 Github에 있어야 합니다.

AWS 회원가입(카드등록)도 되어있어야 합니다.

 

 

먼저 AWS에 EC2를 생성하는 방법입니다.

 

 

1. 서비스 > 컴퓨팅 > EC2

 

 

2. 인스턴스 > 인스턴스 > 인스턴스 시작

 

 

3. Amazon Linux2 AMI > 선택

(아마존 리눅스나 우분투 아무거나 해도 됩니다)

 

 

 

4. t2 마이크로 선택 > 다음: 인스턴스 세부 정보 구성

 

 

5. (변경한게 없습니다.) 다음: 스토리지 추가

 

 

6. (변경한게 없습니다.) 다음: 태그 추가

저는 기본으로 적혀있는 8Gb를 선택했는데, 30Gb까지는 프리티어 무료 입니다.

 

 

7. (추가한게 없습니다.) > 다음: 보안 그룹 구성

 

 

 

8. SSH, 22, 내 IP선택 > 검토 및 시작

접속해야 하니까 일단 SSH한개만 열어주면 됩니다.

 

 

9. 자신이 선택한 세부정보 확인 > 시작하기

 

 

10. 새 키 페어 생성 > "키페어이름입력" > 키 페어 다운로드 > 인스턴스 시작

키파일은 한번 받으면 더이상 받을 수 없습니다.

잃어버리면 셋팅을 다시 해야하니까 잘 보관하세요.

 

 

11. 인스턴스 생성 완료 > 시작

 

 

 

12. 인스턴스 > 인스턴스 > 생성된 인스턴스 확인

2020. 11. 15. 10:34 DEV ENVIRONMENT
젠킨스 접속 포트 변경, AWS EC2 Jenkins Port

젠킨스 포트 변경하는 방법 입니다.

로컬에서 설치하신 분들은 편집기로 수정하면 됩니다.

AWS EC2에 설치했기 때문에 설정파일이 리눅스 기준으로 되어있습니다.

 

 

1. 터미널로 EC2접속

 

 

2. 명령어 실행

sudo vi /etc/sysconfig/jenkins

 

 

3. 설정파일 편집

JENKINS_PORT="8080" 부분을 찾아서 변경

JENKINS_PORT="원하는포트"

변경 후에 ":wq[엔터]" 입력하면 저장/편집종료 입니다.

 

 

 

 

4. 젠킨스 재시작

sudo service jenkins restart

 

 

최근에 올라온 글

최근에 달린 댓글