Spring Boot ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น๋ โ ์๊ฒฉ ์๋ฒ ๋ฐฐํฌ โ ์คํ ๊ณผ์ ์ Jenkins๋ฅผ ํ์ฉํด ์๋ํ(CI/CD) ํ๋ ํ์ดํ๋ผ์ธ ๊ตฌ์ถ
![]() |
![]() |
![]() |
|---|---|---|
| ์ ํธ์ค | ์ฅ์ํ | ์ด์ฑ๋น |
-
CI (Continuous Integration)
- GitHub ์ ์ฅ์์์ ๋ณ๊ฒฝ์ฌํญ(push) ๋ฐ์ ์,
Jenkins๊ฐ ์ด๋ฅผ ๊ฐ์งํ์ฌ ์ฝ๋๋ฅผgit pull .jarํ์ผ๋ก ๋น๋ ํmyserver01์ ๊ณต์ ๋๋ ํฐ๋ฆฌ์ ๋ณต์ฌ
- GitHub ์ ์ฅ์์์ ๋ณ๊ฒฝ์ฌํญ(push) ๋ฐ์ ์,
-
CD (Continuous Deployment)
inotify-tools๋ฅผ ํ์ฉํด.jarํ์ผ ๋ณ๊ฒฝ ๊ฐ์ง- ๊ฐ์ง๋๋ฉด
myserver02๋ก.jarํ์ผ์scp๋ก ์ด๊ด - ํด๋น
.jarํ์ผ์myserver02์์ ์๋ ์คํ
- ๊ฐ์: Jenkins์์ ์๊ฒฉ ์๋ฒ๋ก
.jarํ์ผ์ ์ ์กํ๊ฑฐ๋ ๋ช ๋ น์ด ์คํ ์, ๋น๋ฐ๋ฒํธ ์์ด SSH ์ ์์ ์ํด Credential ์ค์ ์ด ํ์
-
VirtualBox์ Ubuntu VM ์ค์น
- Jenkins ์ค์น ๋์ ๋ฐ ์๊ฒฉ ์๋ฒ์ฉ VM ๊ตฌ์ฑ
-
Jenkins์์ ์ฌ์ฉํ SSH Key ์์ฑ
ssh-keygen -t rsa -b 4096 -C "jenkins@ci" -
์๊ฒฉ ์๋ฒ(Ubuntu)์ ๊ณต๊ฐํค ๋ฑ๋ก
ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote-server -
Jenkins Credential ๋ฑ๋ก
- Jenkins > ๊ด๋ฆฌ > Credentials > Global > Add credentials
- Kind: SSH Username with private key
- Username: ์๊ฒฉ ์๋ฒ ๊ณ์
- Private Key: ์ง์ ์ ๋ ฅ (id_rsa)
-
Jenkins Pipeline ๋๋ SCP ๋ช ๋ น์ด์์ Credential ID ํ์ฉ
- ๋ชฉํ: ๋์ผ ํธ์คํธ(VirtualBox)์์ ์คํ ์ค์ธ VM ๊ฐ ๋ณด์ ์ฐ๊ฒฐ ์ค์
-
VirtualBox ํฌํธ ํฌ์๋ฉ ์ค์
- VM1: ํธ์คํธํฌํธ 2022 โ ๊ฒ์คํธ 22
- VM2: ํธ์คํธํฌํธ 2023 โ ๊ฒ์คํธ 22
-
VM1 โ VM2 SSH ์ ์์ ์ํ ํค ์์ฑ
ssh-keygen ssh-copy-id -p 22 user@192.168.56.102 # VM2 IP ๊ธฐ์ค -
ํ ์คํธ
ssh user@192.168.56.102
-
์๋ํ ์คํฌ๋ฆฝํธ์์ SSH ์ฌ์ฉ
scp,ssh,rsync๋ฑ ์ฌ์ฉ ๊ฐ๋ฅ
- ๋ชฉํ: ํธ์คํธ Windows โ VM Ubuntu โ VM Ubuntu ๊ฐ SSH ํต์
-
VMware์์ NAT or ๋ธ๋ฆฌ์ง ๋ชจ๋๋ก ์ค์
- ๋๋ ํฌํธํฌ์๋ฉ ์๋ ์ค์ :
- VM1: 2022 โ 22
- VM2: 2023 โ 22
- ๋๋ ํฌํธํฌ์๋ฉ ์๋ ์ค์ :
-
VM ๊ฐ SSH ์ค์
- VM1์์ SSH ํค ์์ฑ ํ VM2์ ๊ณต๊ฐํค ๋ฑ๋ก
- ๋น๋ฐ๋ฒํธ ์๋ SSH ์ ์ ๊ฐ๋ฅํ๊ฒ ์ค์
-
Windows ํธ์คํธ์์ ๊ฐ VM ์ ์ ํ์ธ
ssh -p 2022 user@localhost # VM1 ssh -p 2023 user@localhost # VM2
-
CI/CD ํ๊ฒฝ ๊ตฌ์ฑ
- Jenkins๋ VM1์ ์ค์น (Jenkins์์ VM2๋ก ๋ฐฐํฌ)
- SCP ๋ฐ SSH ํตํด
.jarํ์ผ ์๋ ์ด๊ด
| ๊ตฌ๋ถ | Jenkins Credential | VirtualBox + SSH | VMware + SSH |
|---|---|---|---|
| ์ธ์ฆ ๋ฐฉ์ | SSH Key + Jenkins Credential ๋ฑ๋ก | SSH Key ์ง์ ๋ฑ๋ก | SSH Key ์ง์ ๋ฑ๋ก |
| ํฌํธ ํฌ์๋ฉ | VirtualBox NAT ์ค์ ํ์ | VirtualBox NAT ์ค์ ํ์ | VMware ํฌํธํฌ์๋ฉ ๋๋ ๋ธ๋ฆฌ์ง |
| ๊ตฌ์ฑ ๋ชฉ์ | Jenkins ์๋ํ ์ธ์ฆ | VM ๊ฐ ์๋ ์ฐ๊ฒฐ | Windows โ VM, VM ๊ฐ ์ฐ๊ฒฐ |



