[CowAPI] 30. Jenkins

준돌·2022년 7월 12일
1

오늘의 Cow

목록 보기
35/45

1. 목표

  • Jenkins 학습
  • Jenkins 을 이용하여 무중단 배포
  • 수작업으로 진행하던 배포 자동화

2. 준비

  1. Java 11 설치
# yum 업데이트
sudo yum update -y

# 설치 가능한 Java 버전 확인
yum list java*jdk-devel

# Amazon Linux에 Java 11 설치
sudo amazon-linux-extras install java-openjdk11

# yum 패키지의 Java 8 설치
sudo yum install -y java-1.8.0-openjdk

# 자바 버전 11로 설정
sudo alternatives --config java

# 자바 버전 확인
java -version
  1. jenkins 설치
# jenkins 패키지 추가
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key

# 자바 11버전에서 젠킨스 설치
sudo amazon-linux-extras install
sudo yum install -y epel-release
sudo yum install -y java-11-openjdk-devel
sudo yum install -y jenkins
  1. Jenkins port 변경 (JENKINS_PORT = "8080" -> "9090")
sudo vi /etc/sysconfig/jenkins
sudo vi /usr/lib/systemd/system/jenkins.service

3. Jenkins 초기 설정

  1. jenkins 시작
sudo service jenkins start
  1. {ip}:9090 으로 접속

  2. 초기 비밀번호

sudo cat /var/lib/jenkins/secrets/initialAdminPassword
  1. 초기 설정



  1. jdk 11 설정
  • Jenkins 관리 -> global tool configuration -> JDK -> "/usr/lib/jvm/java-11-openjdk"

  • 새로운 item -> free style project -> build -> "java --version" -> build -> console
# java 11 확인

Started by user 오준영
Running as SYSTEM
Building in workspace /var/lib/jenkins/workspace/JAVA version
[JAVA version] $ /bin/sh -xe /tmp/jenkins15425320399916657828.sh
+ java --version
openjdk 11.0.13 2021-10-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode, sharing)
Finished: SUCCESS
  1. git 설정
  • Jenkins 관리 -> global tool configuration -> JDK -> "/usr/bin/git"

4. Github 연동

  1. Github 플러그인 설치

  1. key 생성
## 생성
cd /var/lib/jenkins/.ssh
ssh-keygen

## github에 등록할 public key
sudo cat /var/lib/jenkins/.ssh/id_rsa.pub

## Jenkins에 등록할 key
sudo cat /var/lib/jenkins/.ssh/id_rsa
  1. Github key 등록
  • reposiotry -> setting -> deploy keys

  • reposiotry -> setting -> Webhooks -> "http://{ec2 ip주소}:9090/github-webhook/"

  1. Jenkins에 key 등록
  • Jenkins 관리 -> manage Credentials -> global -> add credential
  1. 새로운 item 등록
  • General

  • 소스 코드 관리 (ssh url)

  • 빌드 유발

  • 빌드

  1. Build 후 작업공간 확인

이슈

  1. 문제
  • 빌드 시 멈추는 증상
  1. 원인
  • 프리티어인 경우 RAM 이 1GB 이기 때문에 꽉차서 멈춘다.
  1. 해결 방법
  • 스왑 메모리를 추가
  1. 코드
sudo dd if=/dev/zero of=/swapfile bs=128M count=16 # 스왑 파일 생성 2GB (128MB x 16 = 2,048MB)
sudo chmod 600 /swapfile # 권한 변경
sudo mkswap /swapfile # 스왑 영역 설정
sudo swapon /swapfile # 스왑 공간에 스왑 파일을 추가하여 스왑 파일을 즉시 사용할 수 있도록 만든다

sudo vi /etc/fstab # /etc/fstab 파일을 편집하여 부팅 시 스왑 파일을 활성화

/swapfile swap swap defaults 0 0 # 마지막 줄에 추가

etc

## 시작
sudo service jenkins start

## 종료
sudo service jenkins stop

## restart
sudo service jenkins restart

## state
sudo service jenkins status
profile
눈 내리는 겨울이 좋아!

0개의 댓글