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 연결 설정중 이런 에러가 난다면
우분투 버전이 높아서 나는 에러일수도 있슴!!
젠킨스와 ssh 연결하려는 서버에 가서 ssh 설정을 변경해주면 해결된다..
# 수정
sudo vi/etc/ssh/sshd_config
# 추가
PubkeyAuthentication yes
PubkeyAcceptedKeyTypes +ssh-rsa
# 재시작
sudo service sshd restart
git update-index --chmod=+x gradlew
git add .
git commit -m "Changing permission of gradlew"
git push
를 하거나 jenkins 설정에서 make executable gradlew가 있을텐데 이거 체크해주면됨.
sh /home/ubuntu/mate/script/start_server.sh 를
아래와 같이 변경한다.
sh /home/ubuntu/mate/script/start_server.sh > /dev/null 2>&1
즉 실행후 터미널로 복귀해야 하는데 계속 실행중인걸로 나와 작업 완료를 기다리다가 결국 timeout이 나서 실패한것처럼 보이는것임.
성공...