DevOps

๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜์œผ๋กœ ์ง€์†์ ์ธ CI/CD ๊ฐœ์„  ํ™˜๊ฒฝ ๋งŒ๋“ค๊ธฐ

์ €๋Š” ์˜ฌํ•ด 6์›”์— LINE์— ์ž…์‚ฌํ•ด LINE ๋ฉ”์‹ ์ € ํด๋ผ์ด์–ธํŠธ์™€ ๊ด€๋ จ๋œ CI(Continuous Integration)/CD(Continuous Delivery) ์—…๋ฌด๋ฅผ ์ง€์†์ ์œผ๋กœ ๊ฐœ์„ ํ•˜๊ณ  ์ž๋™ํ™”ํ•˜๋Š” DevOps ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ง€์†์ ์ธ CI/CD ๊ฐœ์„ ์„ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๊ณ  ํ™œ์šฉํ•ด ๋‚˜๊ฐ„ ๊ฒฝํ—˜์„ ๊ณต์œ ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ๋น„์ €๋‹ ์ž๋™ํ™”๋ฅผ ์œ„ํ•œ Ansible AWX, ์„ค์น˜๋ถ€ํ„ฐ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ํ™˜๊ฒฝ ์ ์šฉ๊นŒ์ง€ – 2

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๊ณ ๊ธ‰ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๋‚ด์šฉ์„ ์†Œ๊ฐœํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 1๋ถ€์—์„œ ๊ธฐ๋ณธ ์„ค์น˜๋ฅผ ํ•ด๋ณด์…จ๋‚˜์š”? ํฌ๊ฒŒ ์–ด๋ ต์ง€ ์•Š๊ฒŒ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์—ˆ์„ ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ๊ธฐ์—… ํ™˜๊ฒฝ์—์„œ ์‹ค์ œ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์žฅ์•  ๋ฐœ์ƒ์— ๋Œ€ํ•œ ๋Œ€๋น„์™€ ๋Œ€๋Ÿ‰์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ํด๋Ÿฌ์Šคํ„ฐ๋ง ํ™˜๊ฒฝ ๋“ฑ์„ ์ œ๊ณตํ•ด์•ผ ํ•˜๋Š”๋ฐ ์•„์‹œ๋‹ค์‹œํ”ผ ์ด๋Ÿฌํ•œ ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋Š” ์ •๋ณด๊ฐ€ ๋งŽ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ๋น„์ €๋‹ ์ž๋™ํ™”๋ฅผ ์œ„ํ•œ Ansible AWX, ์„ค์น˜๋ถ€ํ„ฐ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ํ™˜๊ฒฝ ์ ์šฉ๊นŒ์ง€ – 1

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Ansible์ด ์ฃผ์ œ์ธ๋ฐ์š”. ์–ธ์–ด์˜ ๊ตฌ๋ฌธ์„ ์„ค๋ช…ํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์ €๋Š” ์ด๋ฒˆ ๊ธ€์—์„œ Ansible๋กœ ๋งŒ๋“ค์–ด์ง„ ํ”„๋กœ๋น„์ €๋‹ ์ฝ”๋“œ๋ฅผ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•œ ํ™˜๊ฒฝ(ํ”Œ๋žซํผ)์„ ์ง€์›ํ•˜๋Š” AWX(Ansible Worker)๋ฅผ ์†Œ๊ฐœํ•˜๊ณ , ๊ธฐ์—… ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ํ™˜๊ฒฝ(๊ถŒํ•œ ๊ด€๋ฆฌ, ๊ฐ์‚ฌ, ๊ณ ๊ฐ€์šฉ์„ฑ, ํด๋Ÿฌ์Šคํ„ฐ๋ง ๋“ฑ)์„ ๊ตฌ์ถ•ํ•˜๋ฉด์„œ ๊ณ ๋ฏผํ•˜๊ณ  ๊ณต๋ถ€ํ–ˆ๋˜ ๋‚ด์šฉ๊ณผ, ์ง„ํ–‰์ค‘ ๊ฒช์—ˆ๋˜ ์–ด๋ ค์›€์„ ์—ฌ๋Ÿฌ๋ถ„๊ณผ ๋‚˜๋ˆ„๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.