Thanks to visit codestin.com
Credit goes to github.com

Skip to content

YunanJeong/packer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

24 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

packer

IaC ๋ฐฉ์‹์œผ๋กœ EC2 ์ด๋ฏธ์ง€ ๋งŒ๋“ค๊ธฐ

packer ์šฉ๋„

  • AWS AMI๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Docker ์ด๋ฏธ์ง€, VMware, VirtualBox, Google Cloud, Azure ๋“ฑ ์—ฌ๋Ÿฌ ํ”Œ๋žซํผ์—์„œ '์ด๋ฏธ์ง€'๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ๊ฒƒ๋“ค์„ ๋นŒ๋“œ(pack)ํ•  ์ˆ˜ ์žˆ์Œ
    • ๋‹น์—ฐํžˆ ๊ทธ๋ƒฅ ๊ฐ ํ”Œ๋žซํผ ์ž์ฒด ๋นŒ๋“œ๋„๊ตฌ๋ฅผ ์จ๋„ ์ƒ๊ด€์—†์Œ
    • ํŠนํžˆ docker ์ด๋ฏธ์ง€๋Š” ์ž์ฒด ๋นŒ๋“œ๋„๊ตฌ๊ฐ€ ๊ฐ•๋ ฅํ•˜๊ณ  ์›Œ๋‚™ ๋„๋ฆฌ ์“ฐ์ด๊ธฐ ๋•Œ๋ฌธ์— packer ์•ˆ์“ฐ๋Š”๊ฒŒ ๋” ์ข‹์•„๋ณด์ด๊ธฐ๋„? ์• ์ดˆ์— docker๋Š” DockerFile ํ…์ŠคํŠธ๋กœ ํ‘œํ˜„์ด ๋˜๋‹ˆ๊นŒ
  • ์ด๋ฏธ์ง€๋ฅผ ์ผ๊ด€๋œ IaC ๋ฐฉ์‹์œผ๋กœ ๊ด€๋ฆฌ&๊ณต์œ ํ•  ๋•Œ packer๊ฐ€ ์œ ์šฉํ•œ ๊ฒƒ
    • ami๋ฅผ ํƒ€ ๊ณ„์ •, ํƒ€ ์œ ์ €์—๊ฒŒ ๊ณต์œ ํ•˜๊ธฐ ์ข‹์Œ
    • ํŠนํžˆ, ์š”์ฆ˜์€ IaC์™€ LLM์ด ์‹œ๋„ˆ์ง€๊ฐ€ ์ฐธ ์ข‹์€ ๋“ฏ. ์ธํ”„๋ผ ์ฃผ์ œ๋กœ ๋Œ€ํ™”์‹œ, ๊ทœ๊ฒฉํ™”๋œ ์ฝ”๋“œ๋กœ ์ฒ˜๋ฆฌํ•˜๋‹ค๋ณด๋‹ˆ ๊ฐ„๊ฒฐํ•˜๊ณ  ์˜ค๋ฅ˜๋„ ์ ๋‹ค.
  • packer๋Š” ์ด๋ฏธ์ง€ ๋นŒ๋“œ๋งŒ ์ˆ˜ํ–‰ํ•˜๊ณ , ์ดํ›„ ๊ด€๋ฆฌ๋Š” ๊ด€์—ฌ์น˜ ์•Š๋Š”๋‹ค. ๋นŒ๋“œ ํ›„ ์ด๋ฏธ์ง€ ํ™•์ธ, ์‹คํ–‰, ์‚ญ์ œ ๋“ฑ์€ ๊ฐ ๊ฐœ๋ณ„ ํ”Œ๋žซํผ์—์„œ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค.
  • packer๋กœ ์ด๋ฏธ์ง€ ๋นŒ๋“œ์‹œ, ํ•ด๋‹น ํ”Œ๋žซํผ์˜ ์‚ฌ์ „์„ค์น˜๊ฐ€ ์š”๊ตฌ๋  ์ˆ˜ ์žˆ์Œ
    • docker ์ด๋ฏธ์ง€: docker ๋Ÿฐํƒ€์ž„ ์„ค์น˜ ํ•„์š”
    • AWS-ami: awscli ์žˆ์œผ๋ฉด ํŽธํ•œ๋ฐ ์—†์–ด๋„๋˜๊ณ , credentials๋Š” ํ•„์š”

install

# Linux
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
sudo apt-get update && sudo apt-get install packer

json vs. HCL

  • packer ํ…œํ”Œ๋ฆฟ์€ json ๋˜๋Š” HCL๋กœ ๊ฐ€๋Šฅ
  • ํฌ๋งท๋งŒ ๋‹ค๋ฅผ ๋ฟ ๊ฑฐ์˜ ๋™์ผํ•œ ๋‚ด์šฉ์œผ๋กœ ์ž‘์„ฑ๋จ
  • ๋‘˜ ๋‹ค ๋งŽ์ด ์“ฐ์ด์ง€๋งŒ HCL์ด ๋” ์ตœ์‹  ์‚ฌ์–‘์ด๊ณ  ์ผ๋ถ€ ๋ถ€๊ฐ€๊ธฐ๋Šฅ ๋” ์žˆ์Œ
  • HCL์ด ๋” human-level์ด๋ผ ์“ฐ๊ณ  ์œ ์ง€๋ณด์ˆ˜ํ•˜๊ธฐ๋„ ๋‚ซ๋‹ค.
  • .pkr.hcl์€ HCL๋กœ ์“ฐ์ธ packer ํ…œํ”Œ๋ฆฟ์˜ ์ „์šฉ ํ™•์žฅ์ž
  • json์€ ๊ทธ๋ƒฅ .json

packer๋กœ AWS AMI ๋งŒ๋“ค ๋•Œ ํ…Œ์ŠคํŠธ ๋ฐฉ๋ฒ•

  • terraform์ด๋ž‘ ๋น„์Šท
  • ์ธ์Šคํ„ด์Šค ๋„์šฐ๊ณ , inline ์‰˜์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰๋˜๊ณ , ํ•„์š”ํ•œ ์•ฑ๋“ค์ด ์ •์ƒ์„ค์น˜๋˜๊ณ , ... ์ „์ฒด ์‹คํ–‰ ์ง€์ผœ๋ด์•ผ ๋จ
  • packer validate {ํ…œํ”Œ๋ฆฟ}, packer inspect {ํ…œํ”Œ๋ฆฟ}์œผ๋กœ syntax,๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋“ฑ์„ ์‚ฌ์ „์ฒดํฌ ๊ฐ€๋Šฅ
  • ํ…œํ”Œ๋ฆฟ์„ ์—ฌ๋Ÿฌ ๊ฐœ ์ž‘์„ฑํ•ด๋†“๊ณ , ๊ฐ ์ธ์Šคํ„ด์Šค๋ฅผ ๋™์‹œ์— ๋ณ‘๋ ฌ๋กœ ๋„์›Œ์„œ ํ…Œ์ŠคํŠธํ•ด๋ณด๋Š” ๊ฒƒ์ด ์š”๋ น์ด๋ผ๋ฉด ์š”๋ น
  • github action, CI/CD ๋„๊ตฌ ๋“ฑ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์žˆ์ง€๋งŒ, ๊ฒฐ๊ตญ ์ตœ์ข…ํ™•์ธ์„ ์œ„ํ•ด์„  ํ•œ์ฐธ ๊ธฐ๋‹ค๋ ค์•ผํ•˜๋Š” ๊ฑด ๊ฐ™์Œ!

์ปค๋งจ๋“œ

# ์ดˆ๊ธฐํ™”. packer ๋ธ”๋ก์— ์ง€์ •๋œ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋‹ค์šด๋กœ๋“œ
packer init template.pkr.hcl

# ํ…œํ”Œ๋ฆฟ indent ์—…๋ฐ์ดํŠธ (๊ฐ€๋…์„ฑ, ์ผ๊ด€์„ฑ ๊ฐœ์„ )
packer fmt template.pkr.hcl

# syntax ๋ฐ ์„ค์ • ๊ฒ€์ฆ
packer validate template.pkr.hcl

# variables ํ• ๋‹น, ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๊ฒ€์ฆ
packer inspect template.pkr.hcl
# ๋นŒ๋“œ
packer build template.pkr.hcl

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages