์ง€์†์  ๋ฐฐํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” 3๊ฐ€์ง€ ๋„๊ตฌ(์ง€์†์  ๋ฐฐํฌ)

์ง€์†์  ๋ฐฐํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” 3๊ฐ€์ง€ ๋„๊ตฌ(์ง€์†์  ๋ฐฐํฌ)

์ง€์†์ ์ธ ๋ฐฐํฌ๋Š” ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ๋น ๋ฅด๊ณ  ์•ˆ์ „ํ•˜๋ฉฐ ํšจ์œจ์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์˜ ํŠน๋ณ„ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

์ฃผ์š” ์•„์ด๋””์–ด๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์™„์„ฑ๋œ ์ œํ’ˆ์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์‹ ์†ํ•˜๊ฒŒ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋™ํ™” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋™์‹œ์— ํ”„๋กœ๋•์…˜์— ์ง€์†์ ์ธ ๋ณ€๊ฒฝ์ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์ด๋ฅผ ์ง€์†์  ์ „๋‹ฌ ํŒŒ์ดํ”„๋ผ์ธ(CD ํŒŒ์ดํ”„๋ผ์ธ)์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

Skillbox๋Š” ๋‹ค์Œ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์‹ค๊ธฐ ์ฝ”์Šค "๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ์ž PRO".

์•Œ๋ฆผ: "Habr"์˜ ๋ชจ๋“  ๋…์ž๋ฅผ ์œ„ํ•œ - "Habr" ํ”„๋กœ๋ชจ์…˜ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Skillbox ๊ณผ์ •์— ๋“ฑ๋กํ•  ๋•Œ 10 ๋ฃจ๋ธ” ํ• ์ธ.

์ง€์†์  ๋ฐฐํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” 3๊ฐ€์ง€ ๋„๊ตฌ(์ง€์†์  ๋ฐฐํฌ)

ํ๋ฆ„์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด ์œ ๋ฃŒ ๋ฐ ์™„์ „ ๋ฌด๋ฃŒ๋ฅผ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ์‚ฌ์—์„œ๋Š” ๋ชจ๋“  ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ฐœ๋ฐœ์ž๋“ค ์‚ฌ์ด์—์„œ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” ์„ธ ๊ฐ€์ง€ ์†”๋ฃจ์…˜์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์  ํ‚จ์Šค

์™„์ „ ๋…๋ฆฝํ˜• ์˜คํ”ˆ ์†Œ์Šค ์ž๋™ํ™” ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์ถ•, ํ…Œ์ŠคํŠธ, ๋ฐฐ์†ก ๋˜๋Š” ๋ฐฐํฌ์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ์ž‘์—…์„ ์ž๋™ํ™”ํ•˜๋ ค๋ฉด ํ˜‘๋ ฅํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์†Œ PC ์š”๊ตฌ ์‚ฌํ•ญ :

  • 256MB RAM, 1GB ํŒŒ์ผ ๊ณต๊ฐ„.

์ตœ์ :

  • 1GB RAM, 50GB ํ•˜๋“œ ๋“œ๋ผ์ด๋ธŒ.

์ž‘์—…ํ•˜๋ ค๋ฉด JRE(Java Runtime Environment) ๋ฒ„์ „ 8์ด๋ผ๋Š” ์ถ”๊ฐ€ ์†Œํ”„ํŠธ์›จ์–ด๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์•„ํ‚คํ…์ฒ˜(๋ถ„์‚ฐ ์ปดํ“จํŒ…)๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์ง€์†์  ๋ฐฐํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” 3๊ฐ€์ง€ ๋„๊ตฌ(์ง€์†์  ๋ฐฐํฌ)

Jenkins Server๋Š” GUI ํ˜ธ์ŠคํŒ…์€ ๋ฌผ๋ก  ์ „์ฒด ๋นŒ๋“œ ๊ตฌ์„ฑ ๋ฐ ์‹คํ–‰์„ ๋‹ด๋‹นํ•˜๋Š” ์„ค์น˜์ž…๋‹ˆ๋‹ค.

Jenkins ๋…ธ๋“œ/์Šฌ๋ ˆ์ด๋ธŒ/๋นŒ๋“œ ์„œ๋ฒ„ - ๋งˆ์Šคํ„ฐ(๋ฉ”์ธ ๋…ธ๋“œ)๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ๋นŒ๋“œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์น˜์ž…๋‹ˆ๋‹ค.

๋ฆฌ๋ˆ…์Šค์šฉ ์„ค์น˜

๋จผ์ € ์‹œ์Šคํ…œ์— Jenkins ์ €์žฅ์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

CD /tmp && wget -q -O โ€” pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key ์ถ”๊ฐ€ - echo 'deb pkg.jenkins.io/debian-stable ๋ฐ”์ด๋„ˆ๋ฆฌ/' | sudo tee -a /etc/apt/sources.list.d/je

ํŒจํ‚ค์ง€ ์ €์žฅ์†Œ ์—…๋ฐ์ดํŠธ:

sudo apt update

Jenkins๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

sudo apt ์„ค์น˜ ์  ํ‚จ์Šค

๊ทธ ํ›„์— Jenkins๋Š” ๊ธฐ๋ณธ ํฌํŠธ 8080์„ ํ†ตํ•ด ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ์„ ํ™•์ธํ•˜๋ ค๋ฉด ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ฃผ์†Œ๋ฅผ ์—ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ:8080. ๊ทธ๋Ÿฌ๋ฉด ์‹œ์Šคํ…œ์€ ๋ฃจํŠธ ์‚ฌ์šฉ์ž์˜ ์ดˆ๊ธฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” /var/lib/jenkins/secrets/initialAdminPassword ํŒŒ์ผ์— ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ๋ชจ๋“  ์ค€๋น„๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์œผ๋ฏ€๋กœ CI/CD ํ๋ฆ„ ์ƒ์„ฑ์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›Œํฌ๋ฒค์น˜์˜ ๊ทธ๋ž˜ํ”ฝ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ง€์†์  ๋ฐฐํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” 3๊ฐ€์ง€ ๋„๊ตฌ(์ง€์†์  ๋ฐฐํฌ)

์ง€์†์  ๋ฐฐํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” 3๊ฐ€์ง€ ๋„๊ตฌ(์ง€์†์  ๋ฐฐํฌ)

์  ํ‚จ์Šค์˜ ๊ฐ•์ :

  • ๋งˆ์Šคํ„ฐ/์Šฌ๋ ˆ์ด๋ธŒ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์ œ๊ณตํ•˜๋Š” ํ™•์žฅ์„ฑ
  • REST XML/JSON API์˜ ๊ฐ€์šฉ์„ฑ;
  • ํ”Œ๋Ÿฌ๊ทธ์ธ ๋•๋ถ„์— ์ˆ˜๋งŽ์€ ํ™•์žฅ ๊ธฐ๋Šฅ์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ™œ๋ฐœํ•˜๊ณ  ๋Š์ž„์—†์ด ๋ฐœ์ „ํ•˜๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ.

๋‹จ์  :

  • ๋ถ„์„ ๋ธ”๋ก์ด ์—†์Šต๋‹ˆ๋‹ค.
  • ๋งค์šฐ ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

TeamCity

JetBrains์˜ ์ƒ์šฉ ๊ฐœ๋ฐœ. ์„œ๋ฒ„๋Š” ๊ฐ„๋‹จํ•œ ์„ค์ •๊ณผ ๋›ฐ์–ด๋‚œ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ตฌ์„ฑ์—๋Š” ๋งŽ์€ ๊ธฐ๋Šฅ์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ˆ˜๊ฐ€ ์ง€์†์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

JRE(Java Runtime Environment) ๋ฒ„์ „ 8์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์„œ๋ฒ„ ํ•˜๋“œ์›จ์–ด ์š”๊ตฌ ์‚ฌํ•ญ์€ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • RAM - 3,2GB;
  • ํ”„๋กœ์„ธ์„œ - ๋“€์–ผ ์ฝ”์–ด, 3,2GHz;
  • 1Gb/s ์šฉ๋Ÿ‰์˜ ํ†ต์‹  ์ฑ„๋„.

์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋†’์€ ์„ฑ๋Šฅ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • 60๊ฐœ์˜ ๋นŒ๋“œ ๊ตฌ์„ฑ์„ ๊ฐ–์ถ˜ 300๊ฐœ์˜ ํ”„๋กœ์ ํŠธ;
  • ๋นŒ๋“œ ๋กœ๊ทธ์— 2MB ํ• ๋‹น;
  • ๋นŒ๋“œ ์—์ด์ „ํŠธ 50๊ฐœ;
  • ์›น ๋ฒ„์ „์—์„œ๋Š” 50๋ช…์˜ ์‚ฌ์šฉ์ž, IDE์—์„œ๋Š” 30๋ช…์˜ ์‚ฌ์šฉ์ž์™€ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์™ธ๋ถ€ VCS(์ผ๋ฐ˜์ ์œผ๋กœ Perforce ๋ฐ Subversion) ์—ฐ๊ฒฐ 100๊ฐœ. ํ‰๊ท  ๋ณ€๊ฒฝ ์‹œ๊ฐ„์€ 120์ดˆ์ž…๋‹ˆ๋‹ค.
  • ํ•˜๋ฃจ์— 150๊ฐœ ์ด์ƒ์˜ ์ˆ˜์ •;
  • ํ•œ ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…
  • JVM ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค ์„ค์ •: -Xmx1100m -XX:MaxPermSize=120m.

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

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

์ง€์†์  ๋ฐฐํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” 3๊ฐ€์ง€ ๋„๊ตฌ(์ง€์†์  ๋ฐฐํฌ)

๋ฆฌ๋ˆ…์Šค์šฉ ์„ค์น˜

Tomcat ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ์™€ ํ•จ๊ป˜ TeamCity๋ฅผ ์ˆ˜๋™์œผ๋กœ ์„ค์น˜ํ•˜๋ ค๋ฉด TeamCity ์•„์นด์ด๋ธŒ TeamCity .tar.gz๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์šด๋กœ๋“œ ์—ฌ๊ธฐ์„œ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [์‹œ์ž‘|์ค‘์ง€]

์ฒ˜์Œ ์‹œ์ž‘ํ•  ๋•Œ ์–ด์…ˆ๋ธ”๋ฆฌ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์œ ํ˜•์„ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ง€์†์  ๋ฐฐํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” 3๊ฐ€์ง€ ๋„๊ตฌ(์ง€์†์  ๋ฐฐํฌ)

๊ธฐ๋ณธ ๊ตฌ์„ฑ์€ ๋‹ค์Œ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ:8111/ ํ•˜๋‚˜์˜ ๋“ฑ๋ก๋œ ๋นŒ๋“œ ์—์ด์ „ํŠธ๊ฐ€ ๋™์ผํ•œ PC์—์„œ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

TeamCity์˜ ๊ฐ•์ :

  • ๊ฐ„๋‹จํ•œ ์„ค์ •;
  • ์‚ฌ์šฉ์ž ์นœํ™”์  ์ธ ์ธํ„ฐํŽ˜์ด์Šค;
  • ๋‹ค์ˆ˜์˜ ๋‚ด์žฅ ๊ธฐ๋Šฅ;
  • ์ง€์›ํ•˜๋‹ค;
  • RESTful API๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ข‹์€ ๋ฌธ์„œ;
  • ์ข‹์€ ๋ณด์•ˆ.

๋‹จ์  :

  • ์ œํ•œ๋œ ํ†ตํ•ฉ;
  • ์ด๊ฒƒ์€ ์œ ๋ฃŒ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
  • ์ž‘์€ ์ปค๋ฎค๋‹ˆํ‹ฐ(๊ทธ๋Ÿฌ๋‚˜ ์„ฑ์žฅ ์ค‘).

๊ณ ์”จ๋””

์„ค์น˜ ๋ฐ ์šด์˜์„ ์œ„ํ•ด JRE(Java Runtime Environment) ๋ฒ„์ „ 8์ด ํ•„์š”ํ•œ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ ์š”๊ตฌ ์‚ฌํ•ญ :

  • RAM - ์ตœ์†Œ 1GB, ๋งŽ์„์ˆ˜๋ก ์ข‹์Šต๋‹ˆ๋‹ค.
  • ํ”„๋กœ์„ธ์„œ - ์ฝ”์–ด ์ฃผํŒŒ์ˆ˜๊ฐ€ 2GHz์ธ ๋“€์–ผ ์ฝ”์–ด;
  • ํ•˜๋“œ ๋“œ๋ผ์ด๋ธŒ - ์ตœ์†Œ 1GB์˜ ์—ฌ์œ  ๊ณต๊ฐ„.

์—์ด์ „ํŠธ :

  • RAM - ์ตœ์†Œ 128MB, ๋งŽ์„์ˆ˜๋ก ์ข‹์Šต๋‹ˆ๋‹ค.
  • ํ”„๋กœ์„ธ์„œ - ์ตœ์†Œ 2GHz.

์„œ๋ฒ„๋Š” ์—์ด์ „ํŠธ์˜ ์ž‘๋™์„ ๋ณด์žฅํ•˜๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ํŽธ๋ฆฌํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ง€์†์  ๋ฐฐํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” 3๊ฐ€์ง€ ๋„๊ตฌ(์ง€์†์  ๋ฐฐํฌ)

๋‹จ๊ณ„/์ž‘์—…/๊ณผ์ œ:

์ง€์†์  ๋ฐฐํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” 3๊ฐ€์ง€ ๋„๊ตฌ(์ง€์†์  ๋ฐฐํฌ)

๋ฆฌ๋ˆ…์Šค์šฉ ์„ค์น˜

์—์ฝ” "deb download.gocd.org /โ€ | sudo ํ‹ฐ /etc/apt/sources.list.d/gocd.list

์ปฌ download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key ์ถ”๊ฐ€ -
์ถ”๊ฐ€-์ ํ•ฉ-์ €์žฅ์†Œ ppa:openjdk-r/ppa

apt-get์€ ์—…๋ฐ์ดํŠธ

apt-get ์„ค์น˜ -y openjdk-8-jre

apt-get ์„ค์น˜ go-server

apt-get ์„ค์น˜ go-agent

/etc/init.d/go-server [์‹œ์ž‘|์ค‘์ง€|์ƒํƒœ|๋‹ค์‹œ ์‹œ์ž‘]

/etc/init.d/go-agent [์‹œ์ž‘|์ค‘์ง€|์ƒํƒœ|๋‹ค์‹œ ์‹œ์ž‘]

๊ธฐ๋ณธ์ ์œผ๋กœ GoCd๋Š” ๋‹ค์Œ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ: 8153.

GoCd์˜ ๊ฐ•์ :

  • ์˜คํ”ˆ ์†Œ์Šค;
  • ๊ฐ„๋‹จํ•œ ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ;
  • ์ข‹์€ ๋ฌธ์„œ;

  • ํ›Œ๋ฅญํ•œ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค:

์ง€์†์  ๋ฐฐํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” 3๊ฐ€์ง€ ๋„๊ตฌ(์ง€์†์  ๋ฐฐํฌ)

  • ํ•˜๋‚˜์˜ ๋ณด๊ธฐ์—์„œ ๋‹จ๊ณ„๋ณ„ GoCD ๋ฐฐํฌ ๊ฒฝ๋กœ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ธฐ๋Šฅ:

์ง€์†์  ๋ฐฐํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” 3๊ฐ€์ง€ ๋„๊ตฌ(์ง€์†์  ๋ฐฐํฌ)

  • ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์กฐ์˜ ํƒ์›”ํ•œ ํ‘œ์‹œ:

์ง€์†์  ๋ฐฐํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” 3๊ฐ€์ง€ ๋„๊ตฌ(์ง€์†์  ๋ฐฐํฌ)

  • GoCD๋Š” Docker, AWS๋ฅผ ํฌํ•จํ•˜์—ฌ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ CD ์ž‘์—… ํ๋ฆ„์„ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ปค๋ฐ‹๋ถ€ํ„ฐ ๋ฐฐํฌ๊นŒ์ง€ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ถ”์ ํ•˜์—ฌ ํŒŒ์ดํ”„๋ผ์ธ์˜ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹จ์  :

  • ์ตœ์†Œํ•œ ํ•˜๋‚˜์˜ ์—์ด์ „ํŠธ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ์™„๋ฃŒ๋œ ๋ชจ๋“  ์ž‘์—…์„ ํ‘œ์‹œํ•˜๋Š” ์ฝ˜์†”์ด ์—†์Šต๋‹ˆ๋‹ค.
  • ๊ฐ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ ค๋ฉด ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์„ฑ์„ ์œ„ํ•œ ํ•˜๋‚˜์˜ ์ž‘์—…์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•˜๋ ค๋ฉด .jar ํŒŒ์ผ์„ ๋‹ค์Œ์œผ๋กœ ์ด๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. /plugins/external ๋ฐ ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  • ์ƒ๋Œ€์ ์œผ๋กœ ์ž‘์€ ์ปค๋ฎค๋‹ˆํ‹ฐ.

๊ฒฐ๋ก ์œผ๋กœ

์ด๊ฒƒ์€ ์„ธ ๊ฐ€์ง€ ๋„๊ตฌ์ผ ๋ฟ์ด๋ฉฐ ์‹ค์ œ๋กœ๋Š” ๋” ๋งŽ์€ ๋„๊ตฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ ํƒํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๋“œ์‹œ ์ถ”๊ฐ€์ ์ธ ์ธก๋ฉด์— ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋„๊ตฌ์˜ ์˜คํ”ˆ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋„๊ตฌ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ดํ•ดํ•˜๊ณ  ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๋” ๋น ๋ฅด๊ฒŒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ญ”๊ฐ€๊ฐ€ ํšจ๊ณผ๊ฐ€ ์—†๋‹ค๋ฉด ์ž์‹ ๊ณผ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๋„์›€์—๋งŒ ์˜์กดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์œ ๋ฃŒ ๋„๊ตฌ๋Š” ๋•Œ๋กœ๋Š” ์ค‘์š”ํ•  ์ˆ˜ ์žˆ๋Š” ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ณด์•ˆ์ด ์ตœ์šฐ์„  ์‚ฌํ•ญ์ด๋ผ๋ฉด ๋กœ์ปฌ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด SaaS ์†”๋ฃจ์…˜์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€ ์„ ํƒ์ž…๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ, ์ •๋ง ํšจ๊ณผ์ ์ธ ์ง€์†์  ๋ฐฐํฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณด์žฅํ•˜๋ ค๋ฉด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋„๊ตฌ ๋ฒ”์œ„๋ฅผ ์ขํž ์ˆ˜ ์žˆ๋Š” ๊ตฌ์ฒด์ ์ธ ๊ธฐ์ค€์„ ๊ณต์‹ํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Skillbox๋Š” ๋‹ค์Œ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€