Jenkins 설치 및 각종 문제 해결

정명진·2022년 11월 4일
0

jenkins 를 사용해 테스트 자동화를 해보려고 ec2에 설치를 진행하였다.

자바는 설치되어 있다는 가정하에

sudo apt-get install git-all -y # git 설치

그다음 젠킨스 설치시 파일 안정성을 입증하기 위해 키를 넣는다

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

apt DB에 젠킨스 repositor를 넣어준다

sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > \
    /etc/apt/sources.list.d/jenkins.list'

그리고 설치

sudo apt-get update
sudo apt-get install jenkins

그리고 나면 아마 실행이 될거다. jenkins 기본 포트는 8080이다. 만약 겹친다면 포트를 변경해줘야함~
실제로 설치후 서비스 실행이 안되서 포트변경을 해줘야 겠다 해서 포트를 변경해줬다.

sudo vi /etc/default/jenkins

HTTP_PORT=8080을 사용하려는 포트로 변경 해주기~

sudo vi /etc/systemd/system/multi-user.target.wants/jenkins.service

Environment="JENKINS_PORT=8080"을 사용하려는 포트로 변경

sudo systemctl daemon-reload
sudo systemctl restart jenkins

이렇게 까지 하면 성공하시는 분들도 있고 실패한 분들도 있을겁니다.

포트 변경을 했는데도 안되네.. 그래서 뭐가 문제 일까 보다보니 jenkins.service 에서 보면
JavaVersion 11, 17 외에 실패로 처리하는게 있을거임.
그래서 java8 -> java11로 변경

sudo update-alternatives --config java
# java 버전 여러개 설치된 분들은 여러개 뜰텐데 java11 or java17 선택
# 다시
sudo systemctl restart jenkins

# 결과
jenkins.service - Jenkins Continuous Integration Server
   Loaded: loaded (/lib/systemd/system/jenkins.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2022-11-04 13:16:31 KST; 56s ago
 Main PID: 5633 (java)
    Tasks: 43 (limit: 1134)
   CGroup: /system.slice/jenkins.service

서버가 터져요!

프리티어에서 서버가 자주 죽는 현상이 발생 ㅠㅠ
젠킨스가 무겁긴 한가 보다..
swap memory 추가해서 해결하기

// 1. 아래 명령어로 디스크 2GB를 스왑 파일에 할당해준다.
sudo dd if=/dev/zero of=/swapfile bs=128M count=16
// 2. 스왑 파일의 읽기, 쓰기 권한을 바꾼다.
sudo chmod 600 /swapfile
// 3. 스왑 영역을 설정한다.
sudo sudo mkswap /swapfile
// 4. 스왑 공간에 스왑 파일을 추가하여 스왑 파일을 사용할 수 있도록 한다.
sudo swapon /swapfile
// 5. 스왑 공간이 설정되었는지 확인한다.
sudo swapon -s
// 6. 우분투가 재시동될 때 자동으로 스왑메모리를 설정한다.
// 다음과 같이 해당 파일을 열고,
vim /etc/fstab
// 맨 마지막 줄에 다음의 내용을 추가해준다.
/swapfile swap swap defaults 0 0
// 7. 메모리 확인 명령어로 확인한다.
free -m

젠킨스 ssh로 ec2 연결중 BapPublisherException

나는 아무것도 잘못한게 없는데 ssh 연결 설정중 이런 에러가 난다면
우분투 버전이 높아서 나는 에러일수도 있슴!!

젠킨스와 ssh 연결하려는 서버에 가서 ssh 설정을 변경해주면 해결된다..

# 수정
sudo vi/etc/ssh/sshd_config

# 추가
PubkeyAuthentication yes
PubkeyAcceptedKeyTypes +ssh-rsa

# 재시작
sudo service sshd restart

gradlew permission error가 나면?

git update-index --chmod=+x gradlew
git add .
git commit -m "Changing permission of gradlew"
git push

를 하거나 jenkins 설정에서 make executable gradlew가 있을텐데 이거 체크해주면됨.

빌드 성공했지만 Unstable이 나오면?

sh /home/ubuntu/mate/script/start_server.sh 를
아래와 같이 변경한다.
sh /home/ubuntu/mate/script/start_server.sh > /dev/null 2>&1

즉 실행후 터미널로 복귀해야 하는데 계속 실행중인걸로 나와 작업 완료를 기다리다가 결국 timeout이 나서 실패한것처럼 보이는것임.

성공...

profile
개발자로 입사했지만 정체성을 잃어가는중... 다시 준비 시작이다..

0개의 댓글