# AWS에 Jenkins 설치
-> JDK 17 설치 - Docker설치 - Jenkins 설치
▶ JDK 17 설치
wget https://corretto.aws/downloads/latest/amazon-corretto-17-x64-linux-jdk.deb
sudo apt-get install -y java-common
sudo dpkg -i amazon-corretto-17-x64-linux-jdk.deb
java -version
▶ Docker 설치
# 도커 설치
sudo apt -y install language-pack-ko
sudo localectl set-locale LANG=ko_KR.UTF-8
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-world
# 도커 설치 후 추가작업
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
docker run hello-world
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
# 도커 설치확인
docker version (27.4.1 - 2025.01.03)
▶ Jenkins 설치
# 설치전 공간 확인
df -h
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
df -h
# 설치 시작
cd ~
sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \
https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc]" \
https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt-get update
sudo apt-get install -y fontconfig
sudo apt-get install -y jenkins
* 기존에 설치된 JDK8 제거
java -version => jdk 8 확인
sudo dpkg --remove java-1.8.0-amazon-corretto-jdk
sudo apt-get autoremove java-1.8.0-amazon-corretto-jdk
java -version => 파일 없음 오류 메세지 출력
터미널 접속해제 후 다시 접속
java -version => JDK 없음 메세지 출력
---
* jenkins 포트 변경
sudo vi /usr/lib/systemd/system/jenkins.service
>> 70번 라인근처 - JENKINS_PORT=전화번호뒷자리
sudo systemctl daemon-reload
sudo systemctl restart jenkins
AWS 콘솔 - 보안그룹 - 인바운드규칙 - 포트 추가 (anywhere)
웹브라우져:포트번호 접속
sudo usermod -aG docker jenkins
sudo systemctl restart jenkins
---
# github 웹 훅용 토큰 생성
Global Settings -> Developer Settings
-> Personal access tokens (PAT)
-> tokens (classic)
-> Generate new token -> Generate new token (classic)
-> note : jenkins webhook
-> Expiration : 60days
-> Select scopes : repo, admin:repo_hook
-> Generate token
---
# 프로젝트 생성 후 github에 공유
프로젝트 명 : 아이디.spring.jenkins_webhook
# github에 공유된 프로젝트에 웹 훅 설정
저장소 생성후 Settings -> Webhooks -> Add webhook
-> Payload URL -> http://젠킨스IP주소:포트번호/github-webhook/
-> SSL verification : Disable (not recommended)
-> Add webhook
# 프로젝트 빌드 테스트 01 - 도커 없이
IDE의 터미널 실행 - gradlew clean bootJar -
java -jar build/libs/Kylemall-0.0.1-SNAPSHOT.jar
# 프로젝트 빌드 테스트 02 - 도커 사용
jenkins_webhook 프로젝트에 Dockerfile 추가하고 푸시
AWS EC2 터미널에서 다음 명령 실행
cd ~
git clone 깃허브 주소
cd jenkins_webhook
docker build -t kyle9907/jenkins_webhook .
docker run -d --name app01 -p 9191:8080
kyle9907/jenkins_webhook
curl localhost:9191
# webhook을 위해 jenkins credential 설정
jenkins에 TimeZone 설정
플러그인 설치 - github, webhook, stage view
Jenkins 관리 -> Security : Credentials
-> Domains : Global -> Add Credentials
-> Username : Kyle-TM99 (깃허브 계정명)
-> Password : github PAT 토큰
-> ID : github_access_token
-> Create
# github webhook test
New Item -> Enter an item name : jenkins_webhook
-> freestyle project -> OK
-> 소스 코드 관리 -> Git -> Repository URL : 깃허브 주소
-> Credentials : github_access_token
-> Branches to build : main
-> Build Trigger : Github hook trigger for GITScm polling 체크
-> Build Steps -> Excute shell
echo "Hello, Github Webhook!!"
-> 저장
# 웹 훅 테스트
IDE에서 파일 생성한 후 푸시 - jenkins에서 자동으로 빌드 되는지 확인
'🚚 DevOps' 카테고리의 다른 글
| [배포] 젠킨스 Docker 컨테이너 실행 및 재시작 후 접속 (0) | 2025.01.14 |
|---|