๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ
๐Ÿ“š ์‹œ๋ฆฌ์ฆˆ/- Jenkins์™€ Webhook์„ ์ด์šฉํ•œ CICD

[Webhook์„ ์ด์šฉํ•˜์—ฌ CI CD ๊ตฌ์„ฑํ•˜๊ธฐ] - ec2 ์ƒ์„ฑ ๋ฐ Jenkins ์„ค์น˜

by Wonit 2021. 8. 30.

ํ•ด๋‹น ๊ธ€์€ Jenkins์™€ Github Webhook์„ ์ด์šฉํ•œ CICD ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์„ฑํ•˜๊ธฐ ์‹œ๋ฆฌ์ฆˆ ์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์‚ฌํ•ญ์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”!

 

๋งŒ์•ฝ ํ•ด๋‹น ์‹ค์Šต ๋‚ด์šฉ์˜ ์ฝ”๋“œ๊ฐ€ ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ํ”„๋กœ์ ํŠธ ๊นƒํ—ˆ๋ธŒ ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

์ง€๋‚œ ์‹œ๊ฐ„๊นŒ์ง€ ์šฐ๋ฆฌ๋Š” ์›น ์„œ๋น„์Šค๋ฅผ ๋ชจ๋‘ ์™„์„ฑํ–ˆ์—ˆ๋‹ค.

 

๋งŒ์•ฝ ์›น ์„œ๋น„์Šค ๊ฐœ๋ฐœํ•˜๊ธฐ ํŒŒํŠธ๋ฅผ ๊ฑด๋„ˆ ๋„๊ณ  ์˜จ ์‚ฌ๋žŒ์ด๋ผ๋ฉด ์œ„์˜ ๊นƒํ—ˆ๋ธŒ์—์„œ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋‹ค์šด๋ฐ›๊ฑฐ๋‚˜ ๋ณธ์ธ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ค€๋น„ํ•ด๋†“์œผ๋ฉด ๋  ๊ฒƒ์ด๋‹ค.

 

์ˆœ์„œ

  • ec2 ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
  • ์‹ค์Šต์— ํ•„์š”ํ•œ ํ™˜๊ฒฝ ๊ตฌ์„ฑ
  • jenkins ์„ค์น˜
  • ์  ํ‚จ์Šค ์ ‘์† ๋ฐ ์  ํ‚จ์Šค ์›น ์„ค์ •

 

์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์ง์ ‘ EC2๋ฅผ ๋งŒ๋“ค์–ด์„œ Jenkins ๋ฅผ ์„ค์น˜ํ•˜๋ฉฐ ํ•„์š”ํ•œ ์—ฌ๋Ÿฌ ์„ค์ •์„ ํ•ด์ค„ ์ฐจ๋ก€์ด๋‹ค

 

์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” EC2 ์ƒ์„ฑ์„ ์œ„ํ•œ AWS ๊ณ„์ •์ด ํ•„์š”ํ•˜๋‹ˆ ํ•„์š”ํ•˜๋‹ค๋ฉด ๊ผญ ๋งŒ๋“ค์–ด ๋ณด๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค.

 

๋˜ํ•œ Freetier ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ์˜ˆ์ •์ด๋‹ค.

 

aws ์˜ freetier ์ธ t2-micro ๋Š” ๋งค์šฐ ์ œํ•œ์ ์ธ cpu core ๊ณผ ๋ฉ”๋ชจ๋ฆฌ์ด๊ธฐ ๋•Œ๋ฌธ์— t2-medium ์ •๋„๋Š” ๊ตฌ๋งคํ•  ๊ณ„ํš์ด๋‹ค.

 

ํ•˜๋ฃจ ์ •๋„๋Š” t2-medium ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•ด๋„ ํฐ ๊ธˆ์•ก์ด ์ฒญ๊ตฌ๋˜์ง€ ์•Š์œผ๋‹ˆ ์‹ค์Šต์„ ์œ„ํ•ด์„œ๋ผ๋„ ๊ตฌ๋งคํ•ด๋ณด์ž ใ…Žใ…Ž

 

์ฐธ๊ณ ๋กœ T2-medium ์€ ์‹œ๊ฐ„๋‹น 100์› ์ •๋„? ๋ผ๊ณ  ํ•œ๋‹ค! ์‹ค์Šต ๊ตฌ์„ฑํ•˜๊ณ  ํ…Œ์ŠคํŠธ ํ•˜๋ฉด ๋ญ ์ฒœ์›? ์ •๋„๋„ ๋งŽ๊ณ  ์•„๋ฌดํŠผ ์ฒœ์› ์ดํ•˜? ์ •๋„ ์˜ˆ์ƒํ•œ๋‹ค

 

์•„๋ฌดํŠผ ์ด์ œ ๋ณธ๊ฒฉ์ ์œผ๋กœ EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค๊ณ  Jenkins ๋ฅผ ์„ค์น˜ํ•ด๋ณด๋„๋ก ํ•˜์ž

 

1. EC2 ์ธ์Šคํ„ด์Šค ์ƒ์„ฑํ•˜๊ธฐ

 

์šฐ๋ฆฌ๊ฐ€ EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ํ•ด์•ผํ•  ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

  • ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
  • ๋ณด์•ˆ๊ทธ๋ฃน ์„ค์ •
  • ssh ํ‚ค ์ƒ์„ฑ

์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ๋ฐ ๋ณด์•ˆ๊ทธ๋ฃน ์„ค์ •

 

์•ž์„œ์„œ ์ธ์Šคํ„ด์Šค๋Š” T2-Medium ์œผ๋กœ ๊ฒฐ์ •ํ–ˆ๊ณ , ์ด์ œ aws์— ๋กœ๊ทธ์ธํ•ด์„œ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์„ ์ง„ํ–‰ํ•ด๋ณด์ž

 

 

๋‹ค์Œ ๋ฒ„ํŠผ์œผ๋กœ ๋ณด์•ˆ ๊ทธ๋ฃน ์„ค์ •์ด ๋‚˜์˜ฌ ๋•Œ ๊นŒ์ง€ ์ง„ํ–‰ํ•œ๋‹ค.

 

์ด์ œ ๋ณด์•ˆ ๊ทธ๋ฃน์„ ์„ค์ •ํ•  ์ฐจ๋ก€์ธ๋ฐ, ๋ณด์•ˆ ๊ทธ๋ฃน์ด๋ž€? ์ธ์Šคํ„ด์Šค ๋‚ด๋ถ€๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ํŠธ๋ž˜ํ”ฝ์„ ์–ด๋– ํ•œ ๋ณด์•ˆ ์›์น™๊ณผ ์†Œ์Šค๋กœ ํ—ˆ์šฉํ•˜๊ณ  ๊ธˆ์ง€ํ•  ๊ฒƒ์ธ์ง€๋ฅผ ๋ช…์‹œํ•ด์ฃผ๋Š” ๋ถ€๋ถ„์ด๋‹ค.

 

๋‹ค์Œ๊ณผ ๊ฐ™์ด 2๊ฐœ์˜ ํฌํŠธ๋ฅผ ์—ด์–ด๋‘์ž

 

  • 22
  • 80
  • 9999

 

80 ํฌํŠธ๋Š” ์šฐ๋ฆฌ์˜ ์›น ์„œ๋น„์Šค๊ฐ€ ์ œ๊ณต๋  ํฌํŠธ์ด๊ณ  9999 ํฌํŠธ๋Š” ๋‹ค์Œ์— ์„ค์ •ํ•  github์˜ webhook ์ด commit ๋œ ์ฝ”๋“œ๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํฌํŠธ์ด๋‹ค.

 

ssh ํ‚ค ์ƒ์„ฑ

 

์šฐ๋ฆฌ๋Š” EC2 ์ธ์Šคํ„ด์Šค๋กœ ์ ‘์†ํ•  ํ”„๋กœํ† ์ฝœ๋กœ ssh ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•  ์˜ˆ์ •์ด๋‹ค.

 

์‚ฌ์‹ค์ƒ aws ์˜ ํ‘œ์ค€์ด๊ธฐ๋„ ํ•˜๊ณ  ๋ฆฌ๋ˆ…์Šค ์ ‘๊ทผํ•  ๋•Œ ๊ฐ€์žฅ ๋ฒ”์šฉ์ ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ์ธ๋ฐ, ssh ์ ‘์†์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํŠน์ • ์ธ์ฆ ์ˆ˜๋‹จ์ด ํ•„์š”ํ•˜๋‹ค.

 

์šฐ๋ฆฌ๋Š” ๊ทธ ์ธ์ฆ์„ ์œ„ํ•ด์„œ .pem ํ˜•ํƒœ์˜ ํ‚ค๋กœ ์ ‘์†ํ•  ๊ฒƒ์ด๊ณ , ์ง€๊ธˆ ํ•  ๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ๋ฐฉ๊ธˆ ์ƒ์„ฑํ•œ ์ธ์Šคํ„ด์Šค์—๊ฒŒ ์–ด๋–ค ํ‚ค๋กœ ์ ‘๊ทผํ•˜๋„๋ก ํ•  ๊ฒƒ์ธ์ง€ ์•Œ๋ ค์ฃผ๋Š” ๋ถ€๋ถ„์ด๋‹ค.

 

 

ํ‚ค ํŽ˜์–ด์—์„œ ์ƒˆ๋กœ์šด ํ‚คํŽ˜์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•˜๋ฉด .pem ํŒŒ์ผ์„ ๋‹ค์šด ๋ฐ›์„ ์ˆ˜ ์žˆ๊ณ , ํ•ด๋‹น ํŒŒ์ผ์„ ๋‹ค์šด๋ฐ›์€ ์œ„์น˜๋ฅผ ์ž˜ ๊ธฐ์–ตํ•˜๋„๋ก ํ•˜์ž.

 

๋ฐ”๋กœ ์•„๋ž˜์—์„œ ์šฐ๋ฆฌ๋Š” ํ•ด๋‹น ํ‚ค ํŒŒ์ผ๋กœ ssh ์ ‘์†์„ ํ•  ๊ฒƒ์ด๋‹ค.

 

๊ณ„์†ํ•ด์„œ ์ง„ํ–‰ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์ƒˆ๋กœ์šด t2-medium ์ธ์Šคํ„ด์Šค๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ž˜ ์ƒ์„ฑ๋œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

2. ์‹ค์Šต์— ํ•„์š”ํ•œ ํ™˜๊ฒฝ ๊ตฌ์„ฑ

 

์ด์ œ ์‹ค์Šต์— ํ•„์š”ํ•œ ํ™˜๊ฒฝ ๊ตฌ์„ฑ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์น  ๊ฒƒ์ด๋‹ค.

 

  • ssh ํด๋ผ์ด์–ธํŠธ๋กœ ์„œ๋ฒ„ ์›๊ฒฉ ์ ‘์†
  • ubuntu ์—…๋ฐ์ดํŠธ & ์—…๊ทธ๋ ˆ์ด๋“œ
  • ํ•„์š” ์˜์กด์„ฑ ๋ฐ ํŒจํ‚ค์ง€ ์„ค์น˜
    • docker
    • jdk
    • nginx

 

์ด์ œ ๋ถ€ํ„ฐ๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋ฐฉ๊ธˆ ๋งŒ๋“  ์ธ์Šคํ„ด์Šค ๋‚ด๋ถ€์—์„œ ์ž‘์—…์„ ํ•ด์•ผ ํ•œ๋‹ค.

 

ssh ํด๋ผ์ด์–ธํŠธ๋กœ ์„œ๋ฒ„ ์›๊ฒฉ ์ ‘์†

 

ssh ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•ด์„œ ์ธ์Šคํ„ด์Šค ๋‚ด๋ถ€๋กœ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” SSH ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค.

 

๋Œ€ํ‘œ์ ์ธ SSH ํด๋ผ์ด์–ธํŠธ๋กœ๋Š” Xshell, Putty, MobaXterm, vscode extension ๋“ฑ์ด ์žˆ๋‹ค.

 

์ด๋Š” ๋ณธ์ธ ์‹ค์Šต ํ™˜๊ฒฝ์— ๋”ฐ๋ผ์„œ ๋งž์ถฐ์„œ ์„ค์น˜ํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๊ณ , ๊ฐœ์ธ์ ์œผ๋กœ ์ถ”์ฒœํ•˜๋Š” ๊ฒƒ์€ vscode ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์„ค์น˜ํ•˜๋Š” ssh ํด๋ผ์ด์–ธํŠธ์ด๋‹ค.

 

๋‚˜๋Š” ํ˜„์žฌ ๋งฅ์„ ์ด์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ„ฐ๋ฏธ๋„์—์„œ ๋ฐ”๋กœ ์ ‘์†์„ ํ•  ์˜ˆ์ •์ธ๋ฐ, ๋งŒ์•ฝ ๋ณธ์ธ์ด ssh ํด๋ผ์ด์–ธํŠธ๋„ ๊น”์ง€ ๋ชปํ•˜๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์•ž์„œ ๋งŒ๋“  EC2 ์ธ์Šคํ„ด์Šค์—์„œ ์›น ์ฝ˜์†”๋กœ ์—ฐ๊ฒฐ ํ•˜์—ฌ ๋“ค์–ด๊ฐˆ ์ˆ˜๋„ ์žˆ๋‹ค.

 

 

์—ฌ๊ธฐ์„œ ์—ฐ๊ฒฐ์„ ํด๋ฆญํ•˜๊ณ  ์›น ์ฝ˜์†”๋กœ ์ ‘์†์„ ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์›น์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

๋‚˜๋Š” ์•ž์„œ ์ด์•ผ๊ธฐํ–ˆ๋“ฏ ํ„ฐ๋ฏธ๋„์—์„œ ๋ฐ”๋กœ ssh ์ ‘์†์„ ์‹œ๋„ํ•  ๊ฒƒ์ด๋‹ค

 

๋ณธ์ธ๋„ ํ„ฐ๋ฏธ๋„์—์„œ ์ ‘์†์„ ์›ํ•œ๋‹ค๋ฉด (๋งฅ์ด๋‚˜ ๋ฆฌ๋ˆ…์Šค๋งŒ ๊ฐ€๋Šฅ) ํ„ฐ๋ฏธ๋„์—์„œ ์•„๊นŒ ๋‹ค์šด๋ฐ›์€ .pem ํŒŒ์ผ์ด ์žˆ๋Š” ๊ณณ์œผ๋กœ ๊ฐ€์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ณ๋ณด์ž.

 

$ chmod 400 [ํ‚คํŒŒ์ผ๋ช…]

$ ssh -i [ํ‚คํŒŒ์ผ๋ช…] ubuntu@[ec2 ์ธ์Šคํ„ด์Šค ํผ๋ธ”๋ฆญ ip]

chmod ๋Š” ์ตœ์ดˆ 1ํšŒ๋งŒ ์ง„ํ–‰ํ•˜๋ฉด ๋˜๋Š”๋ฐ, ์ตœ์ดˆ์—๋Š” ssh ํ‚ค ํŒŒ์ผ์ด public ์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์žฌ ํ™œ์„ฑ์ค‘์ธ Host PC์˜ USER ์—๊ฒŒ๋งŒ Read(4) ๊ถŒํ•œ๋งŒ ์ฃผ๊ณ  ๊ทธ๋ฃน๊ณผ ์ „์ฒด์—๊ฒŒ๋Š” Non(0) ์„ ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

 

๋งŒ์•ฝ ๊ถŒํ•œ ์„ค์ •์ด ์•ˆ๋˜์–ด ์žˆ๋‹ค๋ฉด aws ์—์„œ ์ ‘๊ทผ์„ ๋ง‰์„ ๊ฒƒ์ด๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ์ ‘์†์„ ์‹œ๋„ํ•˜๋ฉด ์ž˜ ์ ‘์† ๋˜๋Š”๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

Ubuntu ์—…๋ฐ์ดํŠธ ๋ฐ ์—…๊ทธ๋ ˆ์ด๋“œ

 

์ด์ œ ์ ‘์†์„ ํ–ˆ๋‹ค๋ฉด ์šฐ๋ฆฌ์˜ ์„œ๋ฒ„๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์ค˜์•ผ ํ•œ๋‹ค.

 

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ์ฐจ๋ก€๋กœ ์ž…๋ ฅํ•˜์ž

 

$ sudo apt update -y

$ sudo apt upgrade -y

 

๊ทธ๋Ÿผ ์—…๋ฐ์ดํŠธ์™€ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ฐจ๋ก€๋กœ ์ง„ํ–‰ํ•˜๊ฒŒ ๋˜๊ณ , ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ๋„๊ตฌ์˜ ์ƒํƒœ๊ฐ€ ์ตœ์‹ ์ด ๋˜์–ด์žˆ์„ ๊ฒƒ์ด๋‹ค.

 

ํ•„์š” ์˜์กด์„ฑ ๋ฐ ํŒจํ‚ค์ง€ ์„ค์น˜ํ•˜๊ธฐ

 

์ด์ œ jdk ๋ฅผ ์„ค์น˜ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

 

Jenkins ๋Š” Java๋กœ ๋งŒ๋“ค์–ด์ง„ ํ”„๋กœ์ ํŠธ์ด๊ธฐ ๋•Œ๋ฌธ์— JVM ์ด ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค.

 

์ด JVM์„ ์‰ฝ๊ฒŒ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ openjdk 8 ์„ ์„ค์น˜ํ•ด์ค€๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“ค ์›น ์„œ๋น„์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ปจํ…Œ์ด๋„ˆ ํ™˜๊ฒฝ์—์„œ ๋Œ์•„๊ฐˆ ๊ฒƒ์ด๊ณ  ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„์„ docker๋กœ ๊ตฌ์„ฑํ•  ๊ฒƒ์ด๋‹ค.

 

๋˜ํ•œ ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ตฌ์กฐ์—์„œ ์šฐ๋ฆฌ๋Š” ์„œ๋น„์Šค ์—”ํŠธ๋ฆฌํฌ์ธํŠธ๋ฅผ ํ•˜๋‚˜๋กœ ํ•ฉ์น˜๊ธฐ ์œ„ํ•œ Reverse Proxy ๋„๊ตฌ๋กœ nginx ์›น์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค.

 

์œ„์˜ ํ•„์š” ํŒจํ‚ค์ง€๋“ค์„ ๋‹ค์Œ ๋ช…๋ น์–ด๋กœ ์ฐจ๋ก€๋Œ€๋กœ ์„ค์น˜ํ•˜์ž

 

$ sudo apt install -y openjdk-11-jdk

$ sudo apt install -y docker.io

$ sudo apt install -y nginx

 

์ด์ œ ๋ชจ๋“  ์ค€๋น„๋Š” ๋๋‚ฌ๋‹ค. Jenkins ๋ฅผ ์„ค์น˜ํ•ด๋ณด์ž!

 

3. Jenkins ์„ค์น˜ํ•˜๊ธฐ

  • jenkins ์„ค์น˜์ „ ์„ค์ •
    • jdk ์„ค์น˜
  • jenkins ์„ค์ •
    • default port ๋ณ€๊ฒฝ
  • jenkins ์žฌ์‹คํ–‰

 

Jenkins ์„ค์น˜์ „ ์„ค์ •

 

Jenkins๋ฅผ docker ์ปจํ…Œ์ด๋„ˆ ์œ„์—์„œ ๋Œ๋ฆด ์ˆ˜๋„ ์žˆ๋‹ค.

 

ํ•˜์ง€๋งŒ Key์˜ ๊ด€๋ฆฌ๋‚˜ ์ƒ์„ฑ์— ๊ด€ํ•œ ๋ฌธ์ œ๋“ค ๋•Œ๋ฌธ์— ๊ฐœ์ธ์ ์œผ๋กœ docker ๋ณด๋‹ค๋Š” host pc ์— ์ง์ ‘ ์„ค์น˜ํ•˜๋Š”๊ฒƒ์„ ์ข‹์•„ํ•œ๋‹ค.

 

๊ทธ๋ž˜์„œ host pc ์— ์ง์ ‘ ์‹ค์น˜๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ apt์˜ sources.list ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•ด์ฃผ๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค.

 

๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ฐจ๋ก€๋กœ ์ˆ˜ํ–‰ํ•ด๋ณด์ž.

 

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

$ echo deb http://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FCEF32E745F2C3D5

$ sudo apt update -y

$ sudo apt install -y jenkins

 

๊ทธ๋ฆฌ๊ณ  jenkins ๋ฅผ ์„ค์น˜ํ•˜๋ฉด ์„ฑ๊ณต์ ์œผ๋กœ jenkins๊ฐ€ ์„ค์น˜๋  ๊ฒƒ์ด๋‹ค.

 

5. ์  ํ‚จ์Šค ์ ‘์† ๋ฐ ์  ํ‚จ์Šค ์›น ์„ค์ •ํ•˜๊ธฐ

  • default port ๋ณ€๊ฒฝํ•˜๊ธฐ

 

์  ํ‚จ์Šค๊ฐ€ ์„ค์น˜๋œ๋‹ค๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ 8080 ํฌํŠธ๋กœ ์—ด๋ฆฌ๊ฒŒ ๋œ๋‹ค.

 

ํ•ด๋‹น ํฌํŠธ๋ฅผ 9999 ํฌํŠธ๋กœ ๋ฐ”๊ฟ”์ฃผ๊ธฐ ์œ„ํ•ด์„œ sudo vi /etc/default/jenkins ๋ฅผ ์น˜๊ณ 

 

HTTP_PORT=8080 ์„ 9999๋กœ ๋ณ€๊ฒฝํ•˜์ž

 

 

๊ทธ๋Ÿฐ ๋’ค, systemctl ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ jenkins ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์ž. ๊ทธ๋Ÿผ 9999 ํฌํŠธ๋กœ ๋‹ค์‹œ ์—ด๋ฆฌ๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.

 

$ sudo systemctl restart jenkins

 

๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ ec2-instance ์˜ public ip์˜ 9999 ํฌํŠธ๋กœ ์ ‘์†ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด jenkins ์›น ๋Œ€์‹œ๋ณด๋“œ๊ฐ€ ๋‚˜ํƒ€๋‚˜๊ฒŒ ๋œ๋‹ค.

 

์—ฌ๊ธฐ์„œ ์ดˆ๊ธฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” /var/lib/jenkins/secrets/initialAdminPassword ์— ์œ„์น˜ํ•ด ์žˆ๋Š”๋ฐ, cat ๋ช…๋ น์–ด๋กœ ํ•ด๋‹น ํŒŒ์ผ์„ ํ™•์ธํ•œ ๋’ค, ๋ณต์‚ฌํ•ด์„œ ์›น ๋Œ€์‹œ๋ณด๋“œ์˜ ์ดˆ๊ธฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ ๋ž€์— ์ž…๋ ฅํ•ด์ฃผ์ž!

 

 

๊ทธ๋Ÿผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ ์„ค์ • ํŽ˜์ด์ง€๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋˜๋Š”๋ฐ, Jenkins Suggested Plugins ๋ฅผ ์„ ํƒํžˆ๊ณ , ๊ณ„์ •์„ ์ƒ์„ฑํ•ด์ค€๋‹ค.

 

 

๊ทธ๋Ÿผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์  ํ‚จ์Šค์˜ ์›น ๋Œ€์‹œ๋ณด๋“œ๊ฐ€ ํ™œ์„ฑํ™” ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

 

์ด์ œ ์šฐ๋ฆฌ๋Š” Jenkins ๋ฅผ ์šฐ๋ฆฌ์˜ ์šด์˜ ์„œ๋ฒ„์— ์„ค์น˜ํ•˜๊ณ  ์›น ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ํ™œ์„ฑํ™” ํ•˜๋Š”๊ฒƒ ๊นŒ์ง€ ๋๋ƒˆ๋‹ค.

 

๋‹ค์Œ ์‹œ๊ฐ„ ๋ถ€ํ„ฐ๋Š” ๋„์ปค๋ผ์ด์ง•๊ณผ ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ๊นƒํ—™ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ ์›น ํ›…์„ ํ™œ์„ฑํ™” ํ•˜๊ณ  commit ํ•œ๋‹ค๋ฉด Jenkins ์˜ ์›นํ›…์ด Integration ํ•˜๋Š” ๊ฒƒ์„ ํ•ด๋ณผ ์˜ˆ์ •์ด๋‹ค.

 

๋Œ“๊ธ€