Ansible๊ณผ Vagrant๋Š” ๋‘˜ ๋‹ค ๊ตฌ์„ฑ ๊ด€๋ฆฌ ๋ฐ ์ž๋™ํ™”์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์ด์ง€๋งŒ ์‚ฌ์šฉ ์‚ฌ๋ก€ ๋ฐ ์ž‘๋™ ๋ฐฉ์‹ ์ธก๋ฉด์—์„œ ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

Ansible

์„œ๋ฒ„ ๋ฐ ๊ธฐํƒ€ ๋„คํŠธ์›Œํฌ ์žฅ์น˜๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” Python ๊ธฐ๋ฐ˜์˜ ๊ตฌ์„ฑ ๊ด€๋ฆฌ ๋ฐ ์ž๋™ํ™” ๋„๊ตฌ

๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•˜๋ฉด ๋„คํŠธ์›Œํฌ ์ž๋™ํ™” ์‹œ์Šคํ…œ

์ฝ”๋“œ๋กœ ์ธํ”„๋ผ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ๋•Œ๋ฌธ์— IaC(Infrastructure as Code)๋ผ๊ณ  ๋ถˆ๋ฆฌ๊ธฐ๋„ ํ•จ

ํŠน์ง•

  • yaml ํ˜•์‹์˜ playbook๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ณ  ๋Ÿฌ๋‹ ์ปค๋ธŒ๊ฐ€ ๋‚ฎ์Œ
  • ์ œ์–ด ์‹œ์Šคํ…œ์ด ๊ตฌ์„ฑ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋Œ€์ƒ ์‹œ์Šคํ…œ์œผ๋กœ ํ‘ธ์‹œํ•˜๋Š” ํ‘ธ์‹œ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉ
  • ์†Œํ”„ํŠธ์›จ์–ด ์„ค์น˜, ์‚ฌ์šฉ์ž ๋ฐ ๊ทธ๋ฃน ๊ด€๋ฆฌ, ์„œ๋น„์Šค ์„ค์ • ๋ฐ ๊ตฌ์„ฑ๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ์ž๋™ํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ
  • ๋น„์Šทํ•œ ๋„๊ตฌ : Chef, Puppet

์žฅ์ 

  • ์—์ด์ „ํŠธ๊ฐ€ ์—†์Œ. ์ฆ‰, ๋Œ€์ƒ ๋จธ์‹ ์— ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์„ค์น˜ํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ ๋Œ€์ƒ ๋จธ์‹ ์—์„œ ์ž‘๋™ํ•˜๋ ค๋ฉด SSH ๋ฐ Python๋งŒ ํ•„์š”
  • ์˜คํ”ˆ ์†Œ์Šค ๋ฐ ๋ฒค๋” ์ง€์›์„ ์ œ๊ณตํ•˜๋Š” ๋Œ€๊ทœ๋ชจ ์ปค๋ฎค๋‹ˆํ‹ฐ ์žˆ์Œ

๋‹จ์ 

  • ๋งŽ์€ ์–‘์˜ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•  ๋•Œ ์†๋„๊ฐ€ ๋Š๋ ค์งˆ ์ˆ˜ ์žˆ๋‹ค. (์ด๋•Œ๋ฌธ์— Nornir๊ฐ€ ๊ฐœ๋ฐœ๋จ)

 

โœ…  ๊ณต์‹๋ฌธ์„œ

https://www.redhat.com/ko/technologies/management/ansible/what-is-ansible

 

Ansible์ด๋ž€? ๊ฐœ๋…, ์ž‘๋™ ๋ฐฉ์‹, ์•ค์„œ๋ธ” ์„ค์น˜, ์•ค์„œ๋ธ” ํ”Œ๋ ˆ์ด๋ถ

Ansible์€ ์˜คํ”ˆ์†Œ์Šค IT ์ž๋™ํ™” ํˆด์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๋น„์ €๋‹, ๊ตฌ์„ฑ ๊ด€๋ฆฌ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ, ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜, ๊ธฐํƒ€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ˆ˜๋™ IT ์—…๋ฌด ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž๋™ํ™”ํ•˜์—ฌ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

www.redhat.com

 

Vagrant

๊ฐ€์ƒ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ Ruby ๊ธฐ๋ฐ˜ ๋„๊ตฌ

์†Œ๊ทœ๋ชจ VM ์„ธํŠธ๋ฅผ ์ผ๊ด€๋œ ์ƒ์„ฑ์„ ์ž๋™ํ™”ํ•˜๋Š”๋ฐ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋„๊ตฌ

ํ”„๋กœ๋น„์ €๋‹(Provisioning) ๋„๊ตฌ๋ผ๊ณ  ํ•˜๊ธฐ๋„ ํ•จ

ํŠน์ง•

  • ์ƒ์„ฑํ•˜๋ ค๋Š” ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์„ค๋ช…ํ•˜๋Š” ๊ตฌ์„ฑ ํŒŒ์ผ์ธ Vagrantfile์„ ์‚ฌ์šฉ
  • ๊ฐ€์ƒ ๋จธ์‹ ์ด ์ œ์–ด ๋จธ์‹ ์—์„œ ๊ตฌ์„ฑ์„ ๊ฐ€์ ธ์˜ค๋Š” ํ’€ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉ
  • ๊ฐœ๋ฐœ ๋ฐ ํ…Œ์ŠคํŠธ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์ƒ ๋จธ์‹ ์„ ๋งŒ๋“ค๊ณ  ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ
  • Virtualbox, VMware ๋˜๋Š” Hyper-V์™€ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ๊ฐ€์ƒํ™” ์†Œํ”„ํŠธ์›จ์–ด์™€ ํ•จ๊ป˜ ์ž‘๋™
  • ์žฌํ˜„ ๊ฐ€๋Šฅํ•˜๊ณ  ์ด์‹ ๊ฐ€๋Šฅํ•œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉ

์žฅ์ 

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

๋‹จ์ 

  • ์ธํ”„๋ผ ๋ณ€๊ฒฝ์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค.

Vagrant๋ฅผ ์™œ ์‚ฌ์šฉํ• ๊นŒ?

Vagrant๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด

๋ฒ„์ถ”์–ผ๋ฐ•์Šค์—์„œ ๊ฐ๊ฐ์˜ ๊ฐœ๋ณ„ ๊ฐ€์ƒ๋จธ์‹ ์„ ์ƒ์„ฑํ•˜๊ณ  ํ•œ๋Œ€์”ฉ ์„ค์ •์„ ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

Vagrant๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด

Vagrantfile์—์„œ ๊ฐ€์ƒ๋จธ์‹ ์— ๋Œ€ํ•œ ์„ค์ •๊ณผ ์„ธํŒ…์„ ๋ฏธ๋ฆฌ ํ•ด๋†“์„ ์ˆ˜ ์žˆ์–ด

Provisioning ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๐Ÿ’ก Provisioning ์ด๋ž€?

๋”๋ณด๊ธฐ

์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์— ๋งž๊ฒŒ ์‹œ์Šคํ…œ ์ž์›์„ ํ• ๋‹น, ๋ฐฐ์น˜, ๋ฐฐํฌํ•ด ๋‘์—ˆ๋‹ค๊ฐ€ ํ•„์š”์‹œ ์‹œ์Šคํ…œ์„ ์ฆ‰์‹œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ๋กœ ๋ฏธ๋ฆฌ ์ค€๋น„ํ•ด๋‘๋Š” ๊ฒƒ

 

์˜ˆ) CentOS๋ฅผ ์„ค์น˜ํ•  ๋•Œ, ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋œ ํ›„์— ip ๋“ฑ ์„ค์ •์„ ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ๋ฒ ์ด๊ทธ๋ŸฐํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์„ค์น˜ํ•  ๋•Œ ์ž๋™์œผ๋กœ ์ •๋ณด ๋‹ค ๊ฐ€์ ธ๊ฐ€์„œ ํ•œ๋ฒˆ์— ์„ธํŒ…๊นŒ์ง€ ํ•ด์คŒ. ์ฆ‰, ์‰ฝ๊ฒŒ ํ”„๋กœ๋น„์ ธ๋‹์ด ๋จ.

 

โœ…  ๊ณต์‹๋ฌธ์„œ

https://developer.hashicorp.com/vagrant/downloads

 

Install | Vagrant | HashiCorp Developer

Explore Vagrant product documentation, tutorials, and examples.

developer.hashicorp.com

 

์ •๋ฆฌ

๋ถ„๋ฅ˜๋ฅผ ํ•ด๋ณด์ž๋ฉด Ansible์€ "์„œ๋ฒ„ ๊ตฌ์„ฑ ๋ฐ ์ž๋™ํ™”", Vagrant๋Š” "๊ฐ€์ƒ ๋จธ์‹  ๊ด€๋ฆฌ" ์ž…๋‹ˆ๋‹ค.

 

Ansible์€ ์„œ๋ฒ„ ๋ฐ ๊ธฐํƒ€ ๋„คํŠธ์›Œํฌ ์žฅ์น˜์˜ ๊ตฌ์„ฑ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์ธ ๋ฐ˜๋ฉด Vagrant๋Š” ๊ฐ€์ƒ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์„œ๋กœ๋ฅผ ๋ณด์™„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ Ansible์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ๋ณธ ์ด๋ฏธ์ง€๋ฅผ ํ”„๋กœ๋น„์ €๋‹ํ•  ์ˆ˜ ์žˆ๊ณ  Vagrant๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ์ด๋ฏธ์ง€ ์œ„์—์„œ ํ…Œ์ŠคํŠธ ๋ฐ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Ansible๊ณผ Vagrant๋Š” ๋‹ค๋ฅธ ๋ถ„๋ฅ˜์—ฌ์„œ ๋‘๊ฐœ๋ฅผ ์™œ ๋น„๊ต๋ฅผ ํ•˜์ง€? ํ• ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ์ธํ”„๋ผ ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉด์„œ ๋‘ ๊ฐœ๋…์ด ์–ด๋–ค ํŠน์ง•์ด ์žˆ๊ณ  ์–ด๋Š ์ƒํ™ฉ์—์„œ ์“ฐ๋Š”๊ฑด์ง€ ํ™•์‹คํžˆ ์•Œ๊ณ  ์‹ถ์–ด์„œ ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค ๐Ÿ˜Š

 

 

๐Ÿ”œ ๋” ์•Œ์•„๋ณผ ๋‚ด์šฉ

  • Terraform

 

 

์ฐธ๊ณ 

https://junior-developer.tistory.com/73

https://ganbarujoy.tistory.com/27

https://www.daddyprogrammer.org/post/7369/ansible-vagrant/

https://www.techtarget.com/searchnetworking/tip/Ansible-vs-Terraform-vs-Vagrant-Whats-the-difference

+ Recent posts