๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

DevOps/IaC ์ž๋™ํ™”8

[Ansible] ํŒจํ‚ค์ง€ ์ •๋ณด ์ด์šฉํ•˜๊ธฐ Package_facts ์‚ฌ์šฉ Package Facts Ansible์—์„œ๋Š” ๋…ธ๋“œ์˜ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” Fact๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. gather_facts ํ•„๋“œ์˜ ๊ฐ’์„ no๋กœ ์„ค์ •ํ•ด์„œ ํ•ด๋‹น ์ •๋ณด๊ฐ€ ํ•„์š”์—†์„ ๋•Œ, ์„ฑ๋Šฅ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์ฃ . package์˜ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ด์ฃผ๋Š” fact๋„ ansible์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Ansible์€ ์—ฌ๋Ÿฌ ์šฉ๋„๋กœ ์‚ฌ์šฉ์ด๋˜๋Š”๋ฐ... ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์šฉ๋„๋Š” ํŒจ์น˜๋ฅผ ์ž๋™ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋  ๊ฒ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ package์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” package fact๋ฅผ ํŒจ์น˜ํ•˜๋Š”๋ฐ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Package Facts๋ฅผ ์ด์šฉํ•ด์„œ ํŒจํ‚ค์ง€๋“ค์˜ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋“ค์ด ๋ชจ๋‘ ํŒจํ‚ค์ง€ํ˜•ํƒœ๋กœ ๊ด€๋ฆฌ๋˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋“ค์„ ๋„์šฐ๋Š” ์„œ๋ฒ„๊ฐ€ .. 2021. 5. 25.
[Ansible] Serial ๋ณ‘๋ ฌ์‹คํ–‰ ์ง€์ •ํ•˜๊ธฐ Ansible Serial ์˜ต์…˜ Ansible์˜ task ์‹คํ–‰์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ณ‘๋ ฌ๋กœ ์ฒ˜๋ฆฌ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์‹คํ–‰์ด ํ•„์š”ํ•œ ํ˜ธ์ŠคํŠธ์— ๋™์‹œ ์‹คํ–‰์ด ๋˜๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค. task๋ฅผ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰๋˜์—ˆ์„ ๋•Œ... ๋Œ€ํ‘œ์ ์œผ๋กœ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋Š” ์‹ค์‹œ๊ฐ„์œผ๋กœ ์„œ๋น„์Šค๊ฐ€ ์•ˆ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์  ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 3๊ฐœ์˜ ๋…ธ๋“œ์—์„œ HA ๊ตฌ์„ฑ๋˜์–ด ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์›น์„œ๋ฒ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด feature๊ฐ€ ์ถ”๊ฐ€๋˜์–ด ํŒจ์น˜๋ฅผ ํ•˜๋ ค๊ณ ํ•˜๋Š”๋ฐ ansible๋กœ ์ง„ํ–‰ํ•˜๋ฉด ๋ณ‘๋ ฌ๋กœ ํŒจ์น˜๋˜์–ด ์–ด๋Š ํ•œ ์ˆœ๊ฐ„์— ์„œ๋น„์Šค๊ฐ€ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ansible์—์„œ๋Š” serial ํ•„๋“œ๋กœ ํ•œ๋ฒˆ์— task๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋…ธ๋“œ์˜ ์ˆ˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์–ด rolling update๊ฐ€ ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค. --- - hosts: all gather.. 2021. 5. 23.
[Ansible] gather_facts ์„ฑ๋Šฅํ–ฅ์ƒ ๋ฐฉ๋ฒ• Ansible gather_facts ์„ฑ๋Šฅ ํ–ฅ์ƒ Ansible์—์„œ default๋กœ Node์˜ Fact ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. Fact๋Š” Anisible Node์˜ OS, Resource, IP ๋“ฑ ํ˜ธ์ŠคํŠธ์˜ ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ๋ณ€์ˆ˜๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐํ•œ Fact์˜ ์ •๋ณด๋ฅผ Provisioningํ•˜๋Š” ๊ณผ์ •์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด... ๋…ธ๋“œ์˜ ์ˆ˜์— ๋น„๋ก€ํ•ด์„œ ์„ฑ๋Šฅ์ด ์ €ํ•˜ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด.... ๋‹จ์ˆœํ•˜๊ฒŒ ๋ชจ๋“  ๋…ธ๋“œ์— ํŒŒ์ผ์„ ํ•˜๋‚˜ ์ƒ์„ฑํ•˜๋Š”๋ฐ ๊ตณ์ด Node์˜ ์ •๋ณด๋“ค์„ ์ˆ˜์ง‘ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. 3๋Œ€์˜ ๋…ธ๋“œ์—๋งŒ Provisioningํ•œ๋‹ค๋ฉด ํฌ๊ฒŒ ๋ฌธ์ œ๊ฐ€ ์—†๊ฒ ์ง€๋งŒ... 100๋Œ€, 1000๋Œ€๊ฐ€ ๋„˜์–ด๊ฐ€๋Š” ๋…ธ๋“œ๋“ค์„ ๊ด€๋ฆฌํ•˜๋‹ค๋ฉด ์„ฑ๋Šฅ์— ๋Œ€ํ•œ ์ฐจ์ด๋ฅผ ํ™•์—ฐํ•˜๊ฒŒ ๋Š๋‚„ ์ˆ˜ ์žˆ์„ ๊ฒƒ ์ž…๋‹ˆ๋‹ค. --- - hosts: all # facts๋ฅผ ์ˆ˜.. 2021. 5. 23.
[Puppet] ํผํŽซ ์‹คํ–‰ Resource, Class, Manifest, Node ์‚ฌ์šฉ๋ฒ• Puppet ์‹คํ–‰ Puppet์€ ์ž์ฒด์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. ์ž‘์„ฑํ•œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ๋Š” Host์— ๋ช…๋ น์„ ๋‚ด๋ฆฌ๊ณ  ์ธํ”„๋ผ๋ฅผ ์ฝ”๋“œํ™”ํ•˜์—ฌ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. Puppet ์Šคํฌ๋ฆฝํŠธ๋Š” .pp ํ™•์žฅ์ž๋ฅผ ๊ฐ–๊ณ  Manifest ํŒŒ์ผ์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Puppet Script์—์„œ ์‚ฌ์šฉ๋˜๋Š” Resource, Class, Manifest ๊ทธ๋ฆฌ๊ณ  Node์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ์•Œ์•„๋ณด๊ณ  Nginx๋ฅผ ์„ค์น˜ํ•˜๊ณ  Nginx ํ™ˆํŽ˜์ด์ง€์˜ htmlํŒŒ์ผ์„ ๋ฐ›์•„์™€์„œ index๋กœ ์ •์˜ํ•˜๋Š” ์˜ˆ์ œ๋ฅผ ์ง„ํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Puppet์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ๊ฐœ๋…์ด ํ•„์š”ํ•˜๊ฑฐ๋‚˜ Puppet์„ค์น˜๊ฐ€ ์•ˆ๋˜์–ด์žˆ์œผ๋ฉด ์‹ค์Šตํ™˜๊ฒฝ์„ ์œ„ํ•ด ์•„๋ž˜ ๊ธ€์„ ํ†ตํ•ด ์„ค์น˜๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. [Puppet] ํผํŽซ ์†Œ๊ฐœ ๋ฐ ์„ค์น˜ Puppet์ด๋ž€? Puppet์€.. 2021. 1. 11.
[Puppet] ํผํŽซ ์†Œ๊ฐœ ๋ฐ ์„ค์น˜ Puppet์ด๋ž€? Puppet์€ ruby๋กœ ๋งŒ๋“ค์–ด์ง„ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ ์ž๋™ํ™” ํˆด์ด๋‹ค. ์ฃผ๋กœ ์„ค์ •, ๊ด€๋ฆฌ, ๋ฐฐํฌ, orchestrate์™€ ๊ฐ™์€ ์ผ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. puppet์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋ฐ˜๋ณต๋˜๋Š” ์—…๋ฌด๋ฅผ ์ž๋™ํ™”ํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํŒจํ‚ค์ง€๋ฅผ 5๊ฐœ์˜ ์„œ๋ฒ„์— ์„ค์น˜ํ•ด์•ผํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด... ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ์ง€ ์•Š์•„ ๋ฐ˜๋ณต๋˜๋Š” ์ž‘์—…์„ ์ง์ ‘ ๋ถ™์–ด์„œ ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ, ๋งŒ์•ฝ 100๊ฐœ, 1000๊ฐœ ์ด์ƒ์˜ ์„œ๋ฒ„์— ๊ฐ™์€ ์ž‘์—…์„ ํ•ด์•ผํ•œ๋‹ค๋ฉด? ์ง์ ‘ ํ•˜๊ธฐ์—๋Š” ์†Œ์š”๋˜๋Š” ๋น„์šฉ์ด ๋„ˆ๋ฌด ํฝ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ ์ธํ”„๋ผ, ๋ฐ๋ธŒ์˜ต์Šค ์—”์ง€๋‹ˆ์–ด๊ฐ€ ์กฐ์ง์˜ ์—…๋ฌด๋ฅผ ์ž๋™ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค. puppet ์ฃผ์š” ํŠน์ง• Master Agent Pull ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ ํˆด์€ Pull๊ธฐ๋ฐ˜๊ณผ Push๊ธฐ๋ฐ˜์œผ๋กœ ๋‚˜๋‰œ๋‹ค. Puppet์€ Pull๊ธฐ.. 2021. 1. 10.
[Vagrant] SSH ๊ณต๊ฐœํ‚ค ์ž๋™ ๋“ฑ๋ก ํ™˜๊ฒฝ ์„ค์ •, Ansible ์‚ฌ์šฉ ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Vagrant๋ฅผ ์ด์šฉํ•ด์„œ ansible์„ ์‚ฌ์šฉํ•  ๋•Œ ์ธ์ฆ ์ž‘์—…์„ ์ƒ๋žตํ•˜๊ธฐ ์œ„ํ•ด SSH ๊ณต๊ฐœํ‚ค๋ฅผ ์ž๋™์œผ๋กœ ๋“ฑ๋กํ•˜๋Š” ์‹ค์Šต๋‹ˆ๋‹ค. Vagrant๋ฅผ ์ด์šฉํ•ด์„œ provisioningํ•  ๋•Œ Ansible์„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ansible์€ ssh๋ฅผ ํ†ตํ•ด ํ†ต์‹ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ansible hosts์— ์ง์ ‘ ๊ณ„์ •์ •๋ณด๋ฅผ ๋“ฑ๋กํ•ด์ฃผ์ง€ ์•Š๋Š” ์ด์ƒ -k ์˜ต์…˜์„ ์ด์šฉํ•ด์•ผํ•˜์ง€๋งŒ... vagrant์—์„œ ํ™˜๊ฒฝ ์„ธํŒ…์„ ์œ„ํ•ด -k ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ์ด๋Ÿฐ ๋ถˆํŽธํ•จ์„ ํ•ด์†Œํ•˜๊ธฐ ์œ„ํ•ด ๊ณต๊ฐœํ‚ค๋ฅผ vagrant์—์„œ ์ง์ ‘ ๋“ฑ๋กํ•˜์—ฌ provisioning์„ ํŽธํ•˜๊ฒŒ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Vagrantfile # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant_API_Version = "2" .. 2020. 12. 20.
[Vagrant] ์‚ฌ์šฉ๋ฒ• ๋ฐ CentOS Provisioning ๊ธฐ๋ณธ ๊ตฌ์ถ•, Vagrant๋ž€? Vagrant? Provisioning? Vagrant๋Š” Provisioning์„ ์œ„ํ•œ ํˆด์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ Provisioning์ด ๋ญ˜๊นŒ์š”? ์ œ๊ฐ€ ์ •์˜ํ•˜๋Š” Provisioning์€ ์‹œ์Šคํ…œ์„ ๋ฏธ๋ฆฌ ์ฝ”๋“œํ™”ํ•˜์—ฌ ์–ธ์ œ๋“ ์ง€ ์ฆ‰์‹œ ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Virtual box๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐ€์ƒ๋จธ์‹ ์„ ์ƒ์„ฑํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ, cpu, ๋„คํŠธ์›Œํฌ๋ฅผ ์ •์˜ํ•˜๊ณ  ์‹œ์Šคํ…œ์— ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ ํ˜น์€ ํ™˜๊ฒฝ์„ค์ •์„ ๋ฏธ๋ฆฌ ์ฝ”๋“œํ™”ํ•˜์—ฌ ์„œ๋ฒ„๋ฅผ ์ƒ์„ฑํ•  ์ค€๋น„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Vagrant๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ฃผ๊ธฐ์ ์œผ๋กœ ์„œ๋ฒ„๋ฅผ ๋ฐฐํฌํ•˜๊ณ  ์ƒˆ๋กญ๊ฒŒ ํ™˜๊ฒฝ์€ ์ ์šฉํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ฐ ๋‹ค๋ฅธ ์„œ๋น„์Šค์˜ ํ…Œ์ŠคํŠธํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๊ฑฐ๋‚˜, ํ•™์Šต์ด๋‚˜ ๋‹จ๊ธฐ์ ์œผ๋กœ ์‚ฌ์šฉ์— ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Vagrant ์„ค์น˜ Vagran.. 2020. 12. 19.
[Ansible] ์„ค์น˜ ๋ฐ ์‹ค์Šต ํ™˜๊ฒฝ ๊ตฌ์ถ•, Ansible์ด๋ž€? ์™œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ธ๊ฐ€? Ansible์€ ๋ฌด์—‡์ด๊ณ  ์™œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ธ๊ฐ€? Ansible์— ๋Œ€ํ•œ ๊ฒ€์ƒ‰์„ ํ•˜์…จ๋‹ค๋Š” ๊ฒƒ์€ ์ž๋™ํ™”๋‚˜ DevOps๋ฅผ ์ด๋ฏธ Researching ํ–ˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐ๋ฉ๋‹ˆ๋‹ค. ์ฃผ๋ณ€์—์„œ Ansible, Puppet, Chef ํ˜น์€ Salt์™€ ๊ฐ™์€ ๋ฐฐํฌ ์ž๋™ํ™” ๊ด€๋ฆฌ ํˆด์„ ๋“ค์–ด๋ณด์…จ์„ํ…๋ฐ ๋„๋Œ€์ฒด ์–ด๋–ค ๊ธฐ๋Šฅ์„ ํ•  ์ˆ˜ ์žˆ๊ณ  ์™œ ์‚ฌ์šฉํ•˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•ฉ์‹œ๋‹ค. ์‹œ์Šคํ…œ์„ ์ด๋ฃจ๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์„œ๋น„์Šค๊ฐ€ ๋ชจ์—ฌ ํ•˜๋‚˜์˜ ์‹œ์Šคํ…œ์œผ๋กœ ์šด์˜์ด ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฐฐ๋‹ฌ์•ฑ ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์„œ๋น„์Šค๋“ค์„ ๋‚˜์—ดํ•ด๋ณด๋ฉด... ๊ณ ๊ฐ ๋ฐ ๋ฐฐ๋‹ฌ์›๋“ค์ด ์•ฑ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋กœ๊ทธ์ธ ์„œ๋น„์Šค, ๊ณ ๊ฐ๋“ค์˜ ์ฃผ๋ฌธ ์„œ๋น„์Šค, ๋ฐฐ๋‹ฌ์›๋“ค์ด ๋ฐฐ๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์„œ๋น„์Šค, ์ฃผ๋ฌธ ๊ฒฐ์ œ ์„œ๋น„์Šค, DB ์„œ๋น„์Šค ๋“ฑ... ์—ฌ๋Ÿฌ๊ฐœ์˜ ์„œ๋น„์Šค๊ฐ€ ์šด์˜๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๊ฐ๊ฐ ์„œ๋น„์Šค๋“ค์€ .. 2020. 12. 6.