νΌλλ‘ λμκ°κΈ°
Dev.toDevOps
μλ¬Έ μ½κΈ°
1,200λ μλ² κ·λͺ¨μ μ μ§λ³΄μ ν¨μ¨μ κ²°μ μ§λ Ansible Role κΈ°λ° λͺ¨λν μ€κ³
π When to choose ansible roles over playbooks
AI μμ½
Context
λ¨μΌ Playbook κΈ°λ°μ Flat ꡬ쑰λ μλΉμ€ νμ₯ μ Task μ€λ³΅κ³Ό μ€μ νΌμ¬λ‘ μΈν κ΄λ¦¬ 볡μ‘λ μ¦κ° μ΄λ. νΉν λκ·λͺ¨ μΈλ²€ν 리 νκ²½μμ Ad-hoc λ°©μμ μμ μνμ λλ²κΉ μκ° μ¦κ° λ° κ΅¬μ± μΌκ΄μ± κ²°μ¬λΌλ κΈ°μ μ λΆμ± μ λ°.
Technical Solution
- Separation of Concerns μμΉμ λ°λΌ Task, Variables, Handlersλ₯Ό 물리μ λλ ν λ¦¬λ‘ κ²©λ¦¬ν Role ꡬ쑰 μ±ν
- 'What to do(Role)'μ 'Where to do it(Playbook)'μ λΆλ¦¬νμ¬ νκ²½λ³ μ€μ λ³κ²½ μμλ ν΅μ¬ λ‘μ§μ μΌκ΄μ± μ μ§
- meta/main.yml λ΄ Dependency μ μΈμ ν΅ν μ ν μꡬ μ¬νμ Deterministic Setup μμ 보μ₯
- Role κΈ°λ° μΊ‘μνλ₯Ό ν΅ν΄ μ€λ³΅ μ½λλ₯Ό μ κ±°νλ DRY(Don't Repeat Yourself) μμΉ κ΅¬ν
- Thin Wrapper ννμ Playbook μ€κ³λ₯Ό ν΅ν μΈλ²€ν 리 νκ²ν λ° λ³μ μ£Όμ μ΅μ ν
μ€μ² ν¬μΈνΈ
- μ¬μ¬μ© κ°λ₯μ±μ΄ μλ κ΅¬μ± μμμΈκ°? - 1,000λ μ΄μμ λκ·λͺ¨ μλ² μΈλ²€ν 리λ₯Ό κ΄λ¦¬νλκ°? - 볡μ‘ν μλΉμ€ κ° μμ‘΄μ± κ΄κ³(Dependency)κ° μ‘΄μ¬νλκ°? - νκ²½λ³(Dev/Prod)λ‘ λμΌν λ‘μ§μ 곡μ νλ©° λ³μλ§ λ€λ₯΄κ² μ μ©ν΄μΌ νλκ°?