[IaC] OpenTofu with GitLab #1

์•ˆ๋…•ํ•˜์„ธ์š”

๋ฐ”๋กœ ์ „ํŽธ์— ํ…Œ๋ผํผ์œผ๋กœ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌํ•ด๋ณด๊ฒ ๋‹ค๊ณ  ํ˜ธ๊ธฐ๋กญ๊ฒŒ ๊ธ€์„ ์ผ์—ˆ์Šต๋‹ˆ๋‹ค.

 

๊นƒ๋žฉ๊ณผ ์—ฐ๋™ํ•˜๊ฒ ๋‹ค๋ฉฐ ์‹ ๋‚˜์žˆ์—ˆ๋Š”๋ฐ์š”,

์Šฌํ”ˆ ์˜ˆ๊ฐ์€ ๋น—๋‚˜๊ฐ€์ง€ ์•Š๋Š”๋‹ค

deprecated..

์™œ ์ง€์› ์ค‘๋‹จ๋˜์—ˆ๋А๋ƒ๋ฅผ ์ฐพ์•„๋ณด์•˜๋”๋‹ˆ ํ•˜์‹œ์ฝ”ํ”„์—์„œ ํ…Œ๋ผํผ ๋ผ์ด์„ผ์Šค๋ฅผ ์˜คํ”ˆ์†Œ์Šค์—์„œ Business Source license๋กœ ๋ณ€๊ฒฝํ–ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๋ณธ๋ž˜ ์˜คํ”ˆ๋‘๋ถ€์”จ๋Š” ํ…Œ๋ผํผ์˜ fork ํ”„๋กœ์ ํŠธ์˜€๋Š”๋ฐ ์ง€์นจ์ด ๋ณ€๊ฒฝ๋จ์— ๋”ฐ๋ผ ๋ณ„๋„ ์˜คํ”ˆ์†Œ์Šค๋กœ ์‚ฌ์šฉ๋˜๊ธฐ ์œ„ํ•ด ๋ถ„๋ฆฌ๋œ ํ”„๋กœ์ ํŠธ๋กœ ๋“ฑ๋ก๋˜์—ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค

์‹ค์ œ๋กœ๋„ ์จ๋ณด๋‹ˆ ํ…Œ๋ผํผ์˜ ๋ช…๋ น์–ด์™€ ์ƒ๋‹นํžˆ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. (๊ทธ๋ƒฅ ํ…Œ๋ผํผ์— ํ† ํ‘ธ๋กœ ๋ฐ”๊ฟ”์น˜๊ธฐ ํ•˜๋ฉด ๋จ)

 

์•”ํŠผ ์ €ํฌ์˜ ๊นƒ๋žฉ์ด ํ…Œ๋ผํผ ํ…œํ”Œ๋ฆฟ์ด ์ง€์› ์ค‘๋‹จ๋˜๋Š” ๋ฒ„์ „์— ํ•ด๋‹นํ•˜๊ธฐ๋„ ํ•˜๊ณ , ์ด์™• ๊ตฌ์ถ•ํ•ด๋ณด๋Š”๊ฑฐ ์˜คํ”ˆํ† ํ‘ธ๋กœ cicd ๊นŒ์ง€ ํ•ด๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์„œ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

์•„์ง ์ €๋„ ๋šฑ๋•…๊ฑฐ๋ฆฌ๋ฉด์„œ ํ•˜๋Š” ์ค‘์ด๊ณ  ์ดˆ๋ณด์—ฌ์„œ ๊ธ€์ด ๋ถ€์กฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค ^^

 

https://gitlab.com/components/opentofu

 

GitLab components / OpenTofu · GitLab

This project is home to the OpenTofu CI/CD component and it's related assets, like the gitlab-tofu wrapper script and OCI images containing that script together with an OpenTofu...

gitlab.com

 

์šฐ์„  ๊นƒ๋žฉ์— ์˜คํ”ˆํ† ํ‘ธ๋ฅผ ์–ด๋–ป๊ฒŒ ์“ฐ๋Š”์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฌธ์„œ๋ฅผ ๋“ค์–ด๊ฐ€๋ณด๋‹ˆ CI/CD ์ปดํฌ๋„ŒํŠธ๋กœ ์‚ฌ์šฉํ•˜๋Š”๊ตฐ์š”!

CI/CD ์ปดํฌ๋„ŒํŠธ๋Š” ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ์žฌ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“  ํŒŒ์ดํ”„๋ผ์ธ์˜ ๊ตฌ์„ฑ ์œ ๋‹›์ž…๋‹ˆ๋‹ค.

 

include:
  - component: $CI_SERVER_FQDN/components/opentofu/full-pipeline@[ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์„ฑ ๋ฒ„์ „]
    inputs:
      version: 0.1.0
      opentofu_version: 1.8.3

stages: [validate, test, build, deploy, cleanup]

 

 

  • include ์ง€์‹œ๋ฌธ: ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ๋ฏธ๋ฆฌ ์ •์˜๋œ OpenTofu์˜ ๊ตฌ์„ฑ์„ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    • ์ปดํฌ๋„ŒํŠธ ๊ฒฝ๋กœ๋Š” GitLab CI ์„œ๋ฒ„์—์„œ ์ œ๊ณตํ•˜๋Š” OpenTofu ํŒŒ์ดํ”„๋ผ์ธ์˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.
    • inputs๋Š” OpenTofu ๋ฒ„์ „๊ณผ ํ•จ๊ป˜ ๋‹ค๋ฅธ ๊ด€๋ จ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๋Š” ํ•„๋“œ๋กœ ํ˜„์žฌ ๋ฒ„์ „์„ ๊ธฐ์ž…ํ•ฉ๋‹ˆ๋‹ค.
  • ์Šคํ…Œ์ด์ง€ ์„ค์ •: ํŒŒ์ดํ”„๋ผ์ธ์— ์‚ฌ์šฉํ•  ์Šคํ…Œ์ด์ง€๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
    • stages: [validate, test, build, deploy, cleanup]๋Š” ๊ฐ๊ฐ์˜ ๋‹จ๊ณ„๊ฐ€ ๋ฌด์—‡์„ ํ•˜๋Š”์ง€ ์ •์˜ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

stages์— ์„ ์–ธ๋œ validate, test, build, deploy, cleanup๋Š” GitLab์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฏธ๋ฆฌ ์ •์˜๋œ ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ๋“ค์„ ์ฐธ์กฐํ•˜์—ฌ ๋™์ž‘ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ์š”, ์š”๊ฑด ์œ„์— ์˜คํ”ˆํ† ํ‘ธ ๋งํฌ์˜ ํ…œํ”Œ๋ฆฟ ํด๋”์— ๋“ค์–ด๊ฐ€์‹œ๋ฉด ๊ฐ ์•ผ๋ฏˆ ํŒŒ์ผ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํ…œํ”Œ๋ฆฟ๋“ค์€ ์ผ๋ฐ˜์ ์ธ CI/CD ์›Œํฌํ”Œ๋กœ์šฐ์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ž‘์—…๋“ค์„ ๋ฏธ๋ฆฌ ์ •์˜ํ•œ ๊ฒƒ์ด๋ฉฐ ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ํ•ด๋‹น ๋‹จ๊ณ„๋ฅผ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

 

ํ…œํ”Œ๋ฆฟ์— ์žˆ๋Š” ์•ผ๋ฏˆ ํŒŒ์ผ๋„ ํ™œ์šฉํ•˜๊ณ  ์˜คํ”ˆ์Šคํƒ ์ž์ฃผ ์šด์˜ํ•˜๋Š” ์ž‘์—…๋“ค์€ ์ปค์Šคํ…€ํ•˜๊ฒŒ ์•ผ๋ฏˆ๋กœ ์ž‘์„ฑํ•ด์„œ ์ฐธ์กฐํ•˜๊ฒŒ ํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๊ตฐ์š”!