์ํด๊ฐ ๋ค๊ฐ์ค๊ณ ์์์ต๋๋ค. ์ ๊ตญ์ ์์ด๋ค์ ์ด๋ฏธ ์ฐํํด๋ก์ค์๊ฒ ํธ์ง๋ฅผ ๋ณด๋ด๊ฑฐ๋ ์ค์ค๋ก๋ฅผ ์ํด ์ ๋ฌผ์ ๋ง๋ค์๊ณ , ์ฃผ์ ์๋งค์ ์ฒด ์ค ํ๋์ธ ๊ทธ๋ค์ ์ฃผ์ ์งํ์๋ ํ๋งค์ ์ ๊ฒฉํ๋ฅผ ์ค๋นํ๊ณ ์์์ต๋๋ค. XNUMX์์๋ ๋ฐ์ดํฐ ์ผํฐ์ ๋ถํ๊ฐ ๋ช ๋ฐฐ๋ก ์ฆ๊ฐํฉ๋๋ค. ๋ฐ๋ผ์ ํ์ฌ๋ ์๋น์ค ์๋ช ์ด ๋คํ ์ฅ๋น ๋์ ๋ฐ์ดํฐ ์ผํฐ๋ฅผ ํ๋ํํ๊ณ ์์ญ ๋์ ์ ์๋ฒ๋ฅผ ๊ฐ๋ํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ด๋ก์จ ์์ฉ๋์ด์น๋ ๋์ก์ด๋ฅผ ๋ฐฐ๊ฒฝ์ผ๋ก ์ด์ผ๊ธฐ๊ฐ ๋๋๊ณ ์ค๋ฆด๋ฌ๊ฐ ์์๋ฉ๋๋ค.
์ฅ๋น๋ ํ๋งค๊ฐ ์ต๊ณ ์กฐ์ ๋ฌํ๊ธฐ ๋ช ๋ฌ ์ ์ ํ์ฅ์ ๋์ฐฉํ์ต๋๋ค. ๋ฌผ๋ก ์ด์ ์๋น์ค๋ ์๋ฒ๋ฅผ ํ๋ก๋์
ํ๊ฒฝ์ผ๋ก ๊ฐ์ ธ์ค๊ธฐ ์ํด ์๋ฒ์์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ๊ณผ ๋ด์ฉ์ ์๊ณ ์์ต๋๋ค. ํ์ง๋ง ์ฐ๋ฆฌ๋ ์ด๋ฅผ ์๋ํํ๊ณ ์ธ์ ์์๋ฅผ ์ ๊ฑฐํด์ผ ํ์ต๋๋ค. ๋ํ ํ์ฌ์ ์ค์ํ SAP ์์คํ
์ธํธ๋ฅผ ๋ง์ด๊ทธ๋ ์ด์
ํ๊ธฐ ์ ์ ์๋ฒ๋ฅผ ๊ต์ฒดํ์ต๋๋ค.
์๋ก์ด ์๋ฒ์ ์์ด์ ์ ๋ง๊ฐ์ผ์ ์๊ฒฉํ๊ฒ ๋ฌถ์ฌ ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ์ด๋ํ๋ค๋ ๊ฒ์ ์์ญ์ต ๊ฐ์ ์ ๋ฌผ ๋ฐฐ์ก๊ณผ ์์คํ ๋ง์ด๊ทธ๋ ์ด์ ์ด ๋ชจ๋ ์ํ๋ก์์ง๋ ๊ฒ์ ์๋ฏธํ์ต๋๋ค. Frost ์ ๋ถ์ ์ฐํํด๋ก์ค๋ก ๊ตฌ์ฑ๋ ํ์กฐ์ฐจ๋ ๋ ์ง๋ฅผ ๋ณ๊ฒฝํ ์ ์์์ต๋๋ค. ์ฐฝ๊ณ ๊ด๋ฆฌ๋ฅผ ์ํด SAP ์์คํ ์ 31๋ ์ ํ ๋ฒ๋ง ์ด์ ํ ์ ์์ต๋๋ค. 1์ 20์ผ๋ถํฐ 15์ XNUMX์ผ๊น์ง ์ถ๊ตฌ์ฅ XNUMX๊ฐ ํฌ๊ธฐ์ ๋ฌํ๋ ์ด ์๋งค์ ์ฒด์ ๊ฑฐ๋ํ ์ฐฝ๊ณ ๋ XNUMX์๊ฐ ๋์ ์์ ์ ์ค๋จํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ์์คํ ์ ์ด๋ํ๋ ์ ์ผํ ๊ธฐ๊ฐ์ ๋๋ค. ์๋ฒ๋ฅผ ๋์ ํ ๋ ์ค์ํ ์ฌ์ง๊ฐ ์์์ต๋๋ค.
๋ถ๋ช
ํ ๋ง์๋๋ฆฌ์๋ฉด ์ ์ด์ผ๊ธฐ๋ ์ฐ๋ฆฌ ํ์์ ์ฌ์ฉํ๋ ๋๊ตฌ์ ๊ตฌ์ฑ ๊ด๋ฆฌ ํ๋ก์ธ์ค๋ฅผ ๋ฐ์ํฉ๋๋ค.
๊ตฌ์ฑ ๊ด๋ฆฌ ์ปดํ๋ ์ค๋ ์ฌ๋ฌ ์์ค์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ํต์ฌ ๊ตฌ์ฑ ์์๋ CMS ์์คํ
์
๋๋ค. ์ฐ์
์ด์์์ ์์ค ์ค ํ๋๊ฐ ์์ผ๋ฉด ํ์ฐ์ ์ผ๋ก ๋ถ์พํ ๊ธฐ์ ์ด ๋ฐ์ํ ๊ฒ์
๋๋ค.
OS ์ค์น ๊ด๋ฆฌ
์ฒซ ๋ฒ์งธ ์์ค์ ๋ฌผ๋ฆฌ์ ์๋ฒ์ ๊ฐ์ ์๋ฒ์ ์ด์ ์ฒด์ ์ค์น๋ฅผ ๊ด๋ฆฌํ๋ ์์คํ ์ ๋๋ค. ์ธ์ ์์๋ฅผ ์ ๊ฑฐํ์ฌ ๊ธฐ๋ณธ OS ๊ตฌ์ฑ์ ์์ฑํฉ๋๋ค.
์ด ์์คํ ์ ์ฌ์ฉํ์ฌ ์ถ๊ฐ ์๋ํ์ ์ ํฉํ OS๊ฐ ํฌํจ๋ ํ์ค ์๋ฒ ์ธ์คํด์ค๋ฅผ ๋ฐ์์ต๋๋ค. "์์์ง๋" ๋์ ๊ทธ๋ค์ ์ต์ํ์ ๋ก์ปฌ ์ฌ์ฉ์ ์ธํธ์ ๊ณต๊ฐ SSH ํค๋ ๋ฌผ๋ก ์ผ๊ด๋ OS ๊ตฌ์ฑ์ ๋ฐ์์ต๋๋ค. ์ฐ๋ฆฌ๋ CMS๋ฅผ ํตํด ์๋ฒ๋ฅผ ๊ด๋ฆฌํ ์ ์์๊ณ OS ์์ค์์ "์๋"์ ๋๋ผ์ด ์ผ์ด ์๋ค๊ณ ํ์ ํ์ต๋๋ค.
์ค์น ๊ด๋ฆฌ ์์คํ
์ "์ต๋" ์์
์ BIOS/ํ์จ์ด ์์ค์์ OS๊น์ง ์๋ฒ๋ฅผ ์๋์ผ๋ก ๊ตฌ์ฑํ๋ ๊ฒ์
๋๋ค. ์ฌ๊ธฐ์ ๋ง์ ๋ถ๋ถ์ ์ฅ๋น ๋ฐ ์ค์ ์์
์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ์ด๊ธฐ์ข
์ฅ๋น์ ๊ฒฝ์ฐ ๋ค์์ ๊ณ ๋ คํ ์ ์์ต๋๋ค.
๋ฌผ๋ฆฌ์ ์๋ฒ์ OS๋ฅผ ์ค์นํ๊ธฐ ์ํด ์ฐ๋ฆฌ๋ ์ด์ ์๋น์ค์ ํฉ์๋ ์ค์น ํ๋กํ ์ธํธ๋ฅผ ์ ์ํ๋ ์ ์๋ ค์ง Cobbler๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ์ธํ๋ผ์ ์ ์๋ฒ๋ฅผ ์ถ๊ฐํ ๋ ์์ง๋์ด๋ ์๋ฒ์ MAC ์ฃผ์๋ฅผ Cobbler์ ํ์ ํ๋กํ์ ์ฐ๊ฒฐํ์ต๋๋ค. ์ฒ์์ผ๋ก ๋คํธ์ํฌ๋ฅผ ํตํด ๋ถํ ํ ๋ ์๋ฒ๋ ์์ ์ฃผ์์ ์๋ก์ด OS๋ฅผ ๋ฐ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋์ VLAN/IP ์ฃผ์ ์ง์ ์ผ๋ก ์ ์ก๋์ด ๊ทธ๊ณณ์์ ๊ณ์ ์์ ํ์ต๋๋ค. ์, VLAN์ ๋ณ๊ฒฝํ๋ ๋ฐ๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ณ ์กฐ์ ์ด ํ์ํ์ง๋ง ํ๋ก๋์ ํ๊ฒฝ์ ์ค์๋ก ์๋ฒ๋ฅผ ์ค์นํ๋ ๊ฒฝ์ฐ๋ฅผ ๋๋นํด ์ถ๊ฐ์ ์ธ ๋ณดํธ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
Hashiะกorp Packer๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋น๋ ํ ํ๋ฆฟ์ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ ์๋ฒ๋ฅผ ๋ง๋ค์์ต๋๋ค. ์ด์ ๋ ๊ฐ์์ต๋๋ค. OS ์ค์น ์ ๋ฐ์ํ ์ ์๋ ์ธ์ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด์์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ฌผ๋ฆฌ์ ์๋ฒ์ ๋ฌ๋ฆฌ Packer๋ PXE, ๋คํธ์ํฌ ๋ถํ ๋ฐ VLAN ๋ณ๊ฒฝ์ด ํ์ํ์ง ์์ต๋๋ค. ์ด๋ก ์ธํด ๊ฐ์ ์๋ฒ๋ฅผ ๋์ฑ ์ฝ๊ณ ๊ฐ๋จํ๊ฒ ๋ง๋ค ์ ์๊ฒ ๋์์ต๋๋ค.
์. 1. ์ด์ ์ฒด์ ์ค์น๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
๋น๋ฐ ๊ด๋ฆฌ
๋ชจ๋ ๊ตฌ์ฑ ๊ด๋ฆฌ ์์คํ ์๋ ์ผ๋ฐ ์ฌ์ฉ์์๊ฒ ์จ๊ฒจ์ผ ํ๋ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋์ด ์์ง๋ง ์์คํ ์ ์ค๋นํ๋ ๋ฐ ํ์ํฉ๋๋ค. ์ด๋ ๋ก์ปฌ ์ฌ์ฉ์ ๋ฐ ์๋น์ค ๊ณ์ ์ ๋น๋ฐ๋ฒํธ, ์ธ์ฆ์ ํค, ๋ค์ํ API ํ ํฐ ๋ฑ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก "๋น๋ฐ"์ด๋ผ๊ณ ํฉ๋๋ค.
์ฒ์๋ถํฐ ์ด๋ฌํ ๋น๋ฐ์ ์ ์ฅํ ์์น์ ๋ฐฉ๋ฒ์ ๊ฒฐ์ ํ์ง ์์ ๊ฒฝ์ฐ ์ ๋ณด ๋ณด์ ์๊ตฌ ์ฌํญ์ ์ฌ๊ฐ๋์ ๋ฐ๋ผ ๋ค์๊ณผ ๊ฐ์ ์ ์ฅ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๊ตฌ์ฑ ์ ์ด ์ฝ๋ ๋๋ ์ ์ฅ์์ ํ์ผ์์ ์ง์ ;
- ์ ๋ฌธ ๊ตฌ์ฑ ๊ด๋ฆฌ ๋๊ตฌ(์: Ansible Vault)
- CI/CD ์์คํ (Jenkins/TeamCity/GitLab/๋ฑ) ๋๋ ๊ตฌ์ฑ ๊ด๋ฆฌ ์์คํ (Ansible Tower/Ansible AWX)
- ๋น๋ฐ์ "์๋์ผ๋ก" ์ ์ก๋ ์๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ง์ ๋ ์์น์ ๋ฐฐ์น๋ ๋ค์ ๊ตฌ์ฑ ๊ด๋ฆฌ ์์คํ ์์ ์ฌ์ฉ๋ฉ๋๋ค.
- ์์ ๋ค์ํ ์กฐํฉ.
๊ฐ ๋ฐฉ๋ฒ์๋ ๊ณ ์ ํ ๋จ์ ์ด ์์ต๋๋ค. ๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ ๋น๋ฐ์ ๋ํ ์ก์ธ์ค์ ๋ํ ์ ์ฑ ์ด ๋ถ์กฑํ๋ค๋ ๊ฒ์ ๋๋ค. ์ฆ, ๋๊ฐ ํน์ ๋น๋ฐ์ ์ฌ์ฉํ ์ ์๋์ง ๊ฒฐ์ ํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๊ฑฐ๋ ์ด๋ ต์ต๋๋ค. ๋ ๋ค๋ฅธ ๋จ์ ์ ์ก์ธ์ค ๊ฐ์ฌ์ ์ ์ฒด ์๋ช ์ฃผ๊ธฐ๊ฐ ๋ถ์กฑํ๋ค๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด ์ฝ๋ ๋ฐ ์ฌ๋ฌ ๊ด๋ จ ์์คํ ์ ์์ฑ๋ ๊ณต๊ฐ ํค๋ฅผ ์ ์ํ๊ฒ ๊ต์ฒดํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
์ฐ๋ฆฌ๋ ์ค์ ์ง์ค์ ๋น๋ฐ ์ ์ฅ์์ธ HashiCorp Vault๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฐ๋ฆฌ๋ ๋ค์์ ์ํํ ์ ์์์ต๋๋ค.
- ๋น๋ฐ์ ์์ ํ๊ฒ ์ ์งํ์ธ์. ์ด๋ ์ํธํ๋์ด ์์ผ๋ฉฐ ๋๊ตฐ๊ฐ๊ฐ Vault ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ก์ธ์ค ๊ถํ์ ์ป๋๋ผ๋(์: ๋ฐฑ์ ์์ ๋ณต์ํ์ฌ) ๊ทธ๊ณณ์ ์ ์ฅ๋ ๋น๋ฐ์ ์ฝ์ ์ ์์ต๋๋ค.
- ๋น๋ฐ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ํ ์ ์ฑ ์ ๊ตฌ์ฑํฉ๋๋ค. ์ฌ์ฉ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ "ํ ๋น๋" ๋น๋ฐ๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๋น๋ฐ์ ๋ํ ์ก์ธ์ค๋ฅผ ๊ฐ์ฌํฉ๋๋ค. ๋น๋ฐ์ด ํฌํจ๋ ๋ชจ๋ ์์ ์ Vault ๊ฐ์ฌ ๋ก๊ทธ์ ๊ธฐ๋ก๋ฉ๋๋ค.
- ๋น๋ฐ ์์ ์ ๋ณธ๊ฒฉ์ ์ธ "๋ผ์ดํ ์ฌ์ดํด"์ ๊ตฌ์ฑํฉ๋๋ค. ์์ฑ, ์ทจ์, ๋ง๋ฃ์ผ ์ค์ ๋ฑ์ด ๊ฐ๋ฅํฉ๋๋ค.
- ๋น๋ฐ์ ์ ๊ทผํด์ผ ํ๋ ๋ค๋ฅธ ์์คํ ๊ณผ ์ฝ๊ฒ ํตํฉํ ์ ์์ต๋๋ค.
- ๋ํ ์๋ ํฌ ์๋ ์ํธํ, OS ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ผํ์ฉ ๋น๋ฐ๋ฒํธ, ๊ณต์ธ ์ผํฐ ์ธ์ฆ์ ๋ฑ์ ์ฌ์ฉํฉ๋๋ค.
์ด์ ์ค์ ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ ์์คํ ์ผ๋ก ๋์ด๊ฐ๊ฒ ์ต๋๋ค. ๊ทธ๊ฒ ์์ด๋ ๊ฐ๋ฅํ์ง๋ง ๋ง์ ๊ด๋ จ ์์คํ ์์ ์ฌ์ฉ์๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ ๋๋ฌด ์ฝ์ง ์์ต๋๋ค. LDAP ์๋น์ค๋ฅผ ํตํด ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ๋ฅผ ๊ตฌ์ฑํ์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด Vault๋ ์ฌ์ฉ์์ ๋ํ ์ธ์ฆ ํ ํฐ์ ์ง์์ ์ผ๋ก ๋ฐํํ๊ณ ์ถ์ ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ์ฉ์๋ฅผ ์ญ์ ํ๊ณ ์ถ๊ฐํ๋ ๊ฒ์ "๋ด๊ฐ ์ด ์ฌ์ฉ์ ๊ณ์ ์ ๋ชจ๋ ๊ณณ์์ ์์ฑ/์ญ์ ํ์ต๋๊น?"๋ผ๋ ํ์คํธ๋ก ๋ฐ๋๊ฒ ๋ฉ๋๋ค.
์ฐ๋ฆฌ๋ ์์คํ ์ ๋น๋ฐ ๊ด๋ฆฌ ๋ฐ ์ค์ ์ธ์ฆ/๊ถํ ๋ถ์ฌ๋ผ๋ ๋ ๋ค๋ฅธ ์์ค์ ์ถ๊ฐํฉ๋๋ค.
์. 2. ๋น๋ฐ ๊ด๋ฆฌ.
๊ตฌ์ฑ ๊ด๋ฆฌ
์ฐ๋ฆฌ๋ ํต์ฌ์ธ CMS ์์คํ ์ ๋๋ฌํ์ต๋๋ค. ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ ์ด๋ Ansible๊ณผ Red Hat Ansible AWX์ ์กฐํฉ์ ๋๋ค.
Ansible ๋์ Chef, Puppet, SaltStack์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ช ๊ฐ์ง ๊ธฐ์ค์ ๋ฐ๋ผ Ansible์ ์ ํํ์ต๋๋ค.
- ์ฒซ์งธ, ๋ค์์ฑ์ด๋ค. ์ ์ด๋ฅผ ์ํด ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ง ๋ชจ๋ ์ธํธ
์ธ์์ ์ค๋ค . ์ถฉ๋ถํ์ง ์์ ๊ฒฝ์ฐ GitHub ๋ฐ Galaxy์์ ๊ฒ์ํ ์ ์์ต๋๋ค. - ๋์งธ, ๊ด๋ฆฌ๋๋ ์ฅ๋น์ ์์ด์ ํธ๋ฅผ ์ค์น ๋ฐ ์ง์ํ๊ณ , ๋ก๋๋ฅผ ๋ฐฉํดํ์ง ์๋๋ค๋ ๊ฒ์ ์ฆ๋ช ํ๊ณ , "๋ถ๋งํฌ"๊ฐ ์์์ ํ์ธํ ํ์๊ฐ ์์ต๋๋ค.
- ์ ์งธ, Ansible์ ์ง์ ์ฅ๋ฒฝ์ด ๋ฎ์ต๋๋ค. ์ ๋ฅํ ์์ง๋์ด๋ ์ ํ ์์ ์ฒซ๋ ๋ฌธ์ ๊ทธ๋๋ก ์์ ํ๋ ์ด๋ถ์ ์์ฑํฉ๋๋ค.
ํ์ง๋ง ํ๋ก๋์ ํ๊ฒฝ์์ Ansible๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ก์ธ์ค๋ฅผ ์ ํํ๊ณ ๊ด๋ฆฌ์์ ์์ ์ ๊ฐ์ฌํ๋ ๋ฐ ๋ง์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ ๊ทผ์ ์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ๊ฒฐ๊ตญ ๊ฐ ๋ถ์๋ "์์ฒด" ์๋ฒ ์ธํธ๋ฅผ ๊ด๋ฆฌ(์ฝ๊ธฐ: Ansible ํ๋ ์ด๋ถ ์คํ)ํด์ผ ํ์ต๋๋ค. ํน์ ์ง์๋ง ํน์ Ansible ํ๋ ์ด๋ถ์ ์คํํ๋๋ก ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ์๋๋ฉด Ansible์ ์คํํ๋ ์๋ฒ์ ์ฅ๋น์ ๋ํ ๋ง์ ํ์ง ์ง์์ ์ค์ ํ์ง ์๊ณ ๋๊ฐ ํ๋ ์ด๋ถ์ ์์ํ๋์ง ์ถ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
์ด๋ฌํ ๋ฌธ์ ์ ๋๋ถ๋ถ์ Red Hat์ ์ํด ํด๊ฒฐ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ CMS ์์คํ
์ ์ด์ํ๋ฅผ ํ ๋ฒ ๋ ํฐ์นํด ๋ณด๊ฒ ์ต๋๋ค. Ansible ํ๋ ์ด๋ถ์ ์ฝ๋ ์ ์ฅ์ ๊ด๋ฆฌ ์์คํ
์ ์ ์ฅ๋์ด์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๊ฐ์ง๊ณ ์๋ค
๋ฐ๋ผ์ ๊ตฌ์ฑ ์์ฒด๋ Ansible/Ansible AWX/GitLab์ ์กฐํฉ์ผ๋ก ๊ด๋ฆฌ๋ฉ๋๋ค(๊ทธ๋ฆผ 3 ์ฐธ์กฐ). ๋ฌผ๋ก AWX/GitLab์ ๋จ์ผ ์ธ์ฆ ์์คํ ์ผ๋ก ํตํฉ๋๊ณ , Ansible ํ๋ ์ด๋ถ์ HashiCorp Vault์ ํตํฉ๋ฉ๋๋ค. ๊ตฌ์ฑ์ ๋ชจ๋ "๊ฒ์์ ๊ท์น"์ด ์ง์ ๋๋ Ansible AWX๋ฅผ ํตํด์๋ง ํ๋ก๋์ ํ๊ฒฝ์ ๋ค์ด๊ฐ๋๋ค. ์ฆ, ๋๊ฐ ๋ฌด์์ ๊ตฌ์ฑํ ์ ์๋์ง, CMS์ฉ ๊ตฌ์ฑ ๊ด๋ฆฌ ์ฝ๋๋ฅผ ์ด๋์ ์ป์ ์ ์๋์ง ๋ฑ์ด ์ง์ ๋ฉ๋๋ค.
์. 3. ๊ตฌ์ฑ ๊ด๋ฆฌ.
ํ ์คํธ ๊ด๋ฆฌ
์ฐ๋ฆฌ์ ๊ตฌ์ฑ์ ์ฝ๋ ํ์์ผ๋ก ์ ๊ณต๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์์ ๋์ผํ ๊ท์น์ ๋ฐ๋ผ์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ํ๋ก๋์ ์๋ฒ์ ๋ํ ๊ตฌ์ฑ ์ฝ๋์ ๊ฐ๋ฐ, ์ง์์ ์ธ ํ ์คํธ, ์ ๋ฌ ๋ฐ ์ ์ฉ ํ๋ก์ธ์ค๋ฅผ ๊ตฌ์ฑํด์ผ ํ์ต๋๋ค.
์ด ์์ ์ด ์ฆ์ ์ํ๋์ง ์์ผ๋ฉด ๊ตฌ์ฑ์ ์ํด ์์ฑ๋ ์ญํ ์ ์ง์ ๋ฐ ์์ ์ด ์ค๋จ๋๊ฑฐ๋ ํ๋ก๋์ ์์ ์์์ด ์ค๋จ๋ฉ๋๋ค. ์ด ํต์ฆ์ ๋ํ ์น๋ฃ๋ฒ์ ์๋ ค์ ธ ์์ผ๋ฉฐ ์ด ํ๋ก์ ํธ์์ ์ ์ฆ๋์์ต๋๋ค.
- ๊ฐ ์ญํ ์ ๋จ์ ํ ์คํธ๋ก ๋ค๋ค์ง๋๋ค.
- ๊ตฌ์ฑ์ ๊ด๋ฆฌํ๋ ์ฝ๋๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ํ ์คํธ๊ฐ ์๋์ผ๋ก ์คํ๋ฉ๋๋ค.
- ๊ตฌ์ฑ ๊ด๋ฆฌ ์ฝ๋์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ชจ๋ ํ ์คํธ์ ์ฝ๋ ๊ฒํ ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ํต๊ณผํ ํ์๋ง ํ๋ก๋์ ํ๊ฒฝ์ ๋ฆด๋ฆฌ์ค๋ฉ๋๋ค.
์ฝ๋ ๊ฐ๋ฐ ๋ฐ ๊ตฌ์ฑ ๊ด๋ฆฌ๋ ๋์ฑ ์ฐจ๋ถํด์ง๊ณ ์์ธก ๊ฐ๋ฅํด์ก์ต๋๋ค. ์ง์์ ์ธ ํ
์คํธ๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํด GitLab CI/CD ํดํท์ ์ฌ์ฉํ๊ณ
๊ตฌ์ฑ ๊ด๋ฆฌ ์ฝ๋๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค GitLab CI/CD๋ Molecule์ ํธ์ถํฉ๋๋ค.
- ์ฝ๋ ๊ตฌ๋ฌธ์ ํ์ธํ๊ณ ,
- Docker ์ปจํ ์ด๋๋ฅผ ์ฌ๋ฆฌ๊ณ ,
- ์์ฑ๋ ์ปจํ ์ด๋์ ์์ ๋ ์ฝ๋๋ฅผ ์ ์ฉํ๊ณ ,
- ์ญํ ์ ๋ฉฑ๋ฑ์ฑ์ ํ์ธํ๊ณ ์ด ์ฝ๋์ ๋ํ ํ ์คํธ๋ฅผ ์คํํฉ๋๋ค(์ฌ๊ธฐ์ ์ธ๋ถ์ฑ์ Ansible ์ญํ ์์ค์ ์์ต๋๋ค. ๊ทธ๋ฆผ 4 ์ฐธ์กฐ).
์ฐ๋ฆฌ๋ Ansible AWX๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก๋์ ํ๊ฒฝ์ ๊ตฌ์ฑ์ ์ ๊ณตํ์ต๋๋ค. ์ด์ ์์ง๋์ด๋ ์ฌ์ ์ ์๋ ํ ํ๋ฆฟ์ ํตํด ๊ตฌ์ฑ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ์ต๋๋ค. AWX๋ ์ฌ์ฉ๋ ๋๋ง๋ค GitLab ๋ง์คํฐ ๋ธ๋์น์์ ์ต์ ๋ฒ์ ์ ์ฝ๋๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก "์์ฒญ"ํ์ต๋๋ค. ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ์ฐ๋ฆฌ๋ ํ๋ก๋์ ํ๊ฒฝ์์ ํ ์คํธ๋์ง ์์๊ฑฐ๋ ์ค๋๋ ์ฝ๋์ ์ฌ์ฉ์ ์ ์ธํ์ต๋๋ค. ๋น์ฐํ ์ฝ๋๋ ํ ์คํธ, ๊ฒํ ๋ฐ ์น์ธ ํ์๋ง ๋ง์คํฐ ๋ธ๋์น์ ์ ๋ ฅ๋์์ต๋๋ค.
์. 4. GitLab CI/CD์ ์ญํ ์๋ ํ
์คํธ.
์์ฐ ์์คํ ์ ์ด์๊ณผ ๊ด๋ จ๋ ๋ฌธ์ ๋ ์์ต๋๋ค. ์ค์ ๋ก CMS ์ฝ๋๋ง์ผ๋ก ๊ตฌ์ฑ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋งค์ฐ ์ด๋ ต์ต๋๋ค. ์์ง๋์ด๊ฐ ์ฝ๋ ํธ์ง, ํ ์คํธ, ์น์ธ ๋ฑ์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ "์ง๊ธ ์ฌ๊ธฐ" ๊ตฌ์ฑ์ ๋ณ๊ฒฝํด์ผ ํ๋ ๊ฒฝ์ฐ ๊ธด๊ธ ์ํฉ์ด ๋ฐ์ํฉ๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ์๋ ๋ณ๊ฒฝ์ผ๋ก ์ธํด ๋์ผํ ์ ํ์ ์ฅ๋น์์ ๊ตฌ์ฑ์ ๋ถ์ผ์น๊ฐ ๋ํ๋ฉ๋๋ค(์: sysctl ์ค์ ์ด HA ํด๋ฌ์คํฐ ๋ ธ๋์์ ๋ค๋ฅด๊ฒ ๊ตฌ์ฑ๋จ). ๋๋ ์ฅ๋น์ ์ค์ ๊ตฌ์ฑ์ด CMS ์ฝ๋์ ์ง์ ๋ ๊ตฌ์ฑ๊ณผ ๋ค๋ฆ ๋๋ค.
๋ฐ๋ผ์ ์ง์์ ์ธ ํ ์คํธ ์ธ์๋ ํ๋ก๋์ ํ๊ฒฝ์์ ๊ตฌ์ฑ ๋ถ์ผ์น๊ฐ ์๋์ง ํ์ธํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๊ฐ์ฅ ๊ฐ๋จํ ์ต์ ์ ์ ํํ์ต๋๋ค. ์ฆ, ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ์ง ์๊ณ ๊ณํ๋ ๊ตฌ์ฑ๊ณผ ์ค์ ๊ตฌ์ฑ ๊ฐ์ ๋ชจ๋ ๋ถ์ผ์น๋ฅผ ์๋ฆฌ๋ "๋ชจ์ ์คํ" ๋ชจ๋์์ CMS ๊ตฌ์ฑ ์ฝ๋๋ฅผ ์คํํ๋ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ํ๋ก๋์ ์๋ฒ์์ "-check" ์ต์ ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ Ansible ํ๋ ์ด๋ถ์ ์ฃผ๊ธฐ์ ์ผ๋ก ์คํํ์ฌ ์ด๋ฅผ ๊ตฌํํ์ต๋๋ค. ์ธ์ ๋ ๊ทธ๋ ๋ฏ์ด Ansible AWX๋ ํ๋ ์ด๋ถ์ ์์ํ๊ณ ์ต์ ์ํ๋ก ์ ์งํ๋ ์ญํ ์ ๋ด๋นํฉ๋๋ค(๊ทธ๋ฆผ 5 ์ฐธ์กฐ).
์. 5. Ansible AWX์์ ๊ตฌ์ฑ ๋ถ์ผ์น๋ฅผ ํ์ธํฉ๋๋ค.
ํ์ธ ํ AWX๋ ๋ถ์ผ์น ๋ณด๊ณ ์๋ฅผ ๊ด๋ฆฌ์์๊ฒ ๋ณด๋ ๋๋ค. ๋ฌธ์ ๊ฐ ์๋ ๊ตฌ์ฑ์ ์ฐ๊ตฌํ ๋ค์ ์กฐ์ ๋ ํ๋ ์ด๋ถ์ ํตํด ์์ ํฉ๋๋ค. ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ํ๋ก๋์ ํ๊ฒฝ์์ ๊ตฌ์ฑ์ ์ ์งํ๋ ๋ฐฉ๋ฒ์ด๋ฉฐ CMS๋ ํญ์ ์ต์ ์ํ๋ก ๋๊ธฐํ๋ฉ๋๋ค. ์ด๋ CMS ์ฝ๋๊ฐ "ํ๋ก๋์ " ์๋ฒ์์ ์ฌ์ฉ๋ ๋ ๋ถ์พํ "๊ธฐ์ "์ ์ ๊ฑฐํฉ๋๋ค.
์ด์ Ansible AWX/GitLab/Molecule์ผ๋ก ๊ตฌ์ฑ๋ ์ค์ํ ํ ์คํธ ๊ณ์ธต์ด ์๊ฒผ์ต๋๋ค(๊ทธ๋ฆผ 6).
์. 6. ํ
์คํธ ๊ด๋ฆฌ.
์ด๋ ค์ด? ๋๋ ๋ ผ์ํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ๋ณต์กํ ๊ตฌ์ฑ ๊ด๋ฆฌ๋ ์๋ฒ ๊ตฌ์ฑ ์๋ํ์ ๊ด๋ จ๋ ๋ง์ ์ง๋ฌธ์ ๋ํ ํฌ๊ด์ ์ธ ๋ต๋ณ์ด ๋์์ต๋๋ค. ์ด์ ์๋งค์ ์ฒด์ ํ์ค ์๋ฒ๋ ํญ์ ์๊ฒฉํ๊ฒ ์ ์๋ ๊ตฌ์ฑ์ ๊ฐ์ต๋๋ค. CMS๋ ์์ง๋์ด์ ๋ฌ๋ฆฌ ํ์ํ ์ค์ ์ ์ถ๊ฐํ๊ณ , ์ฌ์ฉ์๋ฅผ ์์ฑํ๊ณ , ์์ญ, ์๋ฐฑ ๊ฐ์ง์ ํ์ ์ค์ ์ ์ํํ๋ ๊ฒ์ ์์ง ์์ต๋๋ค.
์ค๋๋ ์๋ฒ ๋ฐ ํ๊ฒฝ ์ค์ ์๋ "๋น๋ฐ ์ง์"์ด ์์ต๋๋ค. ํ์ํ ๋ชจ๋ ๊ธฐ๋ฅ์ ํ๋ ์ด๋ถ์ ๋ฐ์๋์ด ์์ต๋๋ค. ๋ ์ด์ ์ฐฝ์์ฑ์ด๋ ๋ชจํธํ ์ง์นจ์ด ์์ต๋๋ค. โ์ผ๋ฐ Oracle์ฒ๋ผ ์ค์นํ์ง๋ง ๋ช ๊ฐ์ง sysctl ์ค์ ์ ์ง์ ํ๊ณ ํ์ UID๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๋ค. ์ด์ํ๋ ์ฌ๋๋คํํ ๋ฌผ์ด๋ณด๋ฉด ๋ค ์์์์".
๊ตฌ์ฑ ๋ถ์ผ์น๋ฅผ ๊ฐ์งํ๊ณ ์ฌ์ ์ ์์ ํ๋ ๊ธฐ๋ฅ์ ๋ง์์ ํํ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ตฌ์ฑ ๊ด๋ฆฌ ์์คํ ์ด ์์ผ๋ฉด ์ผ๋ฐ์ ์ผ๋ก ๋ค๋ฅด๊ฒ ๋ณด์ ๋๋ค. ์ด๋ ๋ ์์ฐ์ "์ดฌ์"๋ ๋๊น์ง ๋ฌธ์ ๊ฐ ๋์ ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ณด๊ณ ๊ฐ ์ํ๋๊ณ ๊ตฌ์ฑ์ด ํ์ธ๋๊ณ ์์ ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ฌ์ดํด์ ๋ค์ ๋ฐ๋ณต๋ฉ๋๋ค
๋ฌผ๋ก , ์ฐ๋ฆฌ๋ ์๋ฒ ์ถ์๋ฅผ ๋ฉฐ์น ์์ ๋ช ์๊ฐ์ผ๋ก ๊ฐ์ํํ์ต๋๋ค.
์, ์ํด ์ ์ผ์ ์์ด๋ค์ด ์ฆ๊ฒ๊ฒ ์ ๋ฌผ ํฌ์ฅ์ ํ๊ณ ์ด๋ฅธ๋ค์ด ์ข ์๋ฆฌ๋ฅผ ๋ค์ผ๋ฉฐ ์์์ ๋น๊ณ ์์ ๋ ์ฐ๋ฆฌ ์์ง๋์ด๋ค์ SAP ์์คํ ์ ์ ์๋ฒ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ์ต๋๋ค. ์ฐํํด๋ก์ค๋ ์ต๊ณ ์ ๊ธฐ์ ์ ์ ์ค๋น๋ ๊ธฐ์ ์ด๋ผ๊ณ ๋งํ ๊ฒ์ด๋ค.
์ถ์ : ์ฐ๋ฆฌ ํ์ ๊ณ ๊ฐ์ด ๊ตฌ์ฑ ๊ด๋ฆฌ ๋ฌธ์ ๋ฅผ ์ต๋ํ ๊ฐ๋จํ๊ฒ ํด๊ฒฐํ๊ธฐ๋ฅผ ์ํ๋ค๋ ์ฌ์ค์ ์์ฃผ ์ ํฉ๋๋ค. ์ด์์ ์ผ๋ก๋ ๋ง์น ๋ง์ ์ฒ๋ผ ํ๋์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. ํ์ง๋ง ์ธ์์์๋ ๋ชจ๋ ๊ฒ์ด ๋ ๋ณต์กํฉ๋๋ค(์, ๋ฌ์ฑ ์ ๋ค์ ์ ๊ณต๋์ง ์์์ต๋๋ค). ๊ณ ๊ฐ ํ์ ํธ๋ฆฌํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฒด ํ๋ก์ธ์ค๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
์ ์: Sergey Artemov, ๋ถ์ ์ค๊ณ์
์ถ์ฒ : habr.com