Skip to content

DockerMiniProject/CICD_STUDY

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

3 Commits
ย 
ย 

Repository files navigation

๐Ÿ“Œ Spring Boot CI/CD ์ž๋™ํ™” ํ”„๋กœ์ ํŠธ

๐ŸŽฏ ํ”„๋กœ์ ํŠธ ๋ชฉ์ 

Spring Boot ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋นŒ๋“œ โ†’ ์›๊ฒฉ ์„œ๋ฒ„ ๋ฐฐํฌ โ†’ ์‹คํ–‰ ๊ณผ์ •์„ Jenkins๋ฅผ ํ™œ์šฉํ•ด ์ž๋™ํ™”(CI/CD) ํ•˜๋Š” ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•


๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ ํŒ€์› ์†Œ๊ฐœ

์œ ํ˜ธ์ค€ ์žฅ์ˆ˜ํ˜„ ์ด์„ฑ๋นˆ


image


๐Ÿ› ๏ธ CI/CD ํŒŒ์ดํ”„๋ผ์ธ ๊ฐœ์š”

  1. CI (Continuous Integration)

    • GitHub ์ €์žฅ์†Œ์—์„œ ๋ณ€๊ฒฝ์‚ฌํ•ญ(push) ๋ฐœ์ƒ ์‹œ,
      Jenkins๊ฐ€ ์ด๋ฅผ ๊ฐ์ง€ํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ git pull
    • .jar ํŒŒ์ผ๋กœ ๋นŒ๋“œ ํ›„ myserver01์˜ ๊ณต์œ  ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋ณต์‚ฌ
  2. CD (Continuous Deployment)

    • inotify-tools๋ฅผ ํ™œ์šฉํ•ด .jar ํŒŒ์ผ ๋ณ€๊ฒฝ ๊ฐ์ง€
    • ๊ฐ์ง€๋˜๋ฉด myserver02๋กœ .jar ํŒŒ์ผ์„ scp๋กœ ์ด๊ด€
    • ํ•ด๋‹น .jar ํŒŒ์ผ์„ myserver02์—์„œ ์ž๋™ ์‹คํ–‰

๐Ÿงฉ 1. Jenkins Credentials + VirtualBox + SSH ๊ตฌ์„ฑ ๋‹จ๊ณ„

๐Ÿ” Jenkins Credential์„ ํ™œ์šฉํ•œ ์ž๋™ ์ธ์ฆ SSH ๊ตฌ์„ฑ

  • ๊ฐœ์š”: Jenkins์—์„œ ์›๊ฒฉ ์„œ๋ฒ„๋กœ .jar ํŒŒ์ผ์„ ์ „์†กํ•˜๊ฑฐ๋‚˜ ๋ช…๋ น์–ด ์‹คํ–‰ ์‹œ, ๋น„๋ฐ€๋ฒˆํ˜ธ ์—†์ด SSH ์ ‘์†์„ ์œ„ํ•ด Credential ์„ค์ •์ด ํ•„์š”

โœ… ๊ตฌ์„ฑ ์ ˆ์ฐจ

  1. VirtualBox์— Ubuntu VM ์„ค์น˜

    • Jenkins ์„ค์น˜ ๋Œ€์ƒ ๋ฐ ์›๊ฒฉ ์„œ๋ฒ„์šฉ VM ๊ตฌ์„ฑ
  2. Jenkins์—์„œ ์‚ฌ์šฉํ•  SSH Key ์ƒ์„ฑ

    ssh-keygen -t rsa -b 4096 -C "jenkins@ci"
  3. ์›๊ฒฉ ์„œ๋ฒ„(Ubuntu)์— ๊ณต๊ฐœํ‚ค ๋“ฑ๋ก

    ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote-server
  4. Jenkins Credential ๋“ฑ๋ก

    • Jenkins > ๊ด€๋ฆฌ > Credentials > Global > Add credentials
    • Kind: SSH Username with private key
    • Username: ์›๊ฒฉ ์„œ๋ฒ„ ๊ณ„์ •
    • Private Key: ์ง์ ‘ ์ž…๋ ฅ (id_rsa)
  5. Jenkins Pipeline ๋˜๋Š” SCP ๋ช…๋ น์–ด์—์„œ Credential ID ํ™œ์šฉ


๐Ÿงฉ 2. VirtualBox + SSH ๊ตฌ์„ฑ ๋‹จ๊ณ„

๐Ÿ“ฆ VirtualBox ๊ธฐ๋ฐ˜ Ubuntu VM ๊ฐ„ SSH ํ†ต์‹  ์„ค์ •

  • ๋ชฉํ‘œ: ๋™์ผ ํ˜ธ์ŠคํŠธ(VirtualBox)์—์„œ ์‹คํ–‰ ์ค‘์ธ VM ๊ฐ„ ๋ณด์•ˆ ์—ฐ๊ฒฐ ์„ค์ •

โœ… ๊ตฌ์„ฑ ์ ˆ์ฐจ

  1. VirtualBox ํฌํŠธ ํฌ์›Œ๋”ฉ ์„ค์ •

    • VM1: ํ˜ธ์ŠคํŠธํฌํŠธ 2022 โ†’ ๊ฒŒ์ŠคํŠธ 22
    • VM2: ํ˜ธ์ŠคํŠธํฌํŠธ 2023 โ†’ ๊ฒŒ์ŠคํŠธ 22
  2. VM1 โ†’ VM2 SSH ์ ‘์†์„ ์œ„ํ•œ ํ‚ค ์ƒ์„ฑ

    ssh-keygen
    ssh-copy-id -p 22 user@192.168.56.102   # VM2 IP ๊ธฐ์ค€
  3. ํ…Œ์ŠคํŠธ

    ssh user@192.168.56.102
  4. ์ž๋™ํ™” ์Šคํฌ๋ฆฝํŠธ์—์„œ SSH ์‚ฌ์šฉ

    • scp, ssh, rsync ๋“ฑ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

๐Ÿงฉ 3. VMware Workstation + SSH ๊ตฌ์„ฑ ๋‹จ๊ณ„

๐Ÿ–ฅ๏ธ VMware ๊ธฐ๋ฐ˜ Ubuntu VM ๊ฐ„ SSH ํฌํŠธํฌ์›Œ๋”ฉ ๋ฐ ํ†ต์‹  ์„ค์ •

  • ๋ชฉํ‘œ: ํ˜ธ์ŠคํŠธ Windows โ†” VM Ubuntu โ†” VM Ubuntu ๊ฐ„ SSH ํ†ต์‹ 

โœ… ๊ตฌ์„ฑ ์ ˆ์ฐจ

  1. VMware์—์„œ NAT or ๋ธŒ๋ฆฌ์ง€ ๋ชจ๋“œ๋กœ ์„ค์ •

    • ๋˜๋Š” ํฌํŠธํฌ์›Œ๋”ฉ ์ˆ˜๋™ ์„ค์ •:
      • VM1: 2022 โ†’ 22
      • VM2: 2023 โ†’ 22
  2. VM ๊ฐ„ SSH ์„ค์ •

    • VM1์—์„œ SSH ํ‚ค ์ƒ์„ฑ ํ›„ VM2์— ๊ณต๊ฐœํ‚ค ๋“ฑ๋ก
    • ๋น„๋ฐ€๋ฒˆํ˜ธ ์—†๋Š” SSH ์ ‘์† ๊ฐ€๋Šฅํ•˜๊ฒŒ ์„ค์ •
  3. Windows ํ˜ธ์ŠคํŠธ์—์„œ ๊ฐ VM ์ ‘์† ํ™•์ธ

    ssh -p 2022 user@localhost  # VM1
    ssh -p 2023 user@localhost  # VM2
  4. 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 ๊ฐ„ ์—ฐ๊ฒฐ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •