Junior
Yapılandırma için Ansible'da roller ve playbook'lar yazmak konusunda ne kadar aktif oldunuz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Oldukça aktif. Ana görev, sunucuların tutarlı yapılandırmasını sağlamak ve uygulamaların dağıtımını otomatikleştirmekti.
Hem Ansible Galaxy'den hazır roller hem de projelerin ihtiyaçlarına özel olarak geliştirilmiş roller kullanıldı. Playbook'lar, görevleri düzenlemek, roller arasındaki bağımlılıkları yönetmek ve yürütme sırasını belirlemek için kullanıldı.
Ansible ile çözülen görev örnekleri:
- Web sunucularının (NGINX, Apache) kurulumu ve yapılandırması.
- Veritabanlarının (PostgreSQL, MySQL) yapılandırması.
- Mikroservislerin dağıtımı.
- Kullanıcılar ve grupların yönetimi.
- Güvenlik duvarlarının yapılandırılması.
- Paketlerin ve bağımlılıkların yönetimi.
- Uygulama dağıtımlarının derlenmesi ve dağıtılması.
Rol ve playbook yazarken aktif olarak kullanıldı:
- Dinamik yapılandırma dosyaları oluşturmak için Jinja2 şablon sistemi.
- Yapılandırma değişikliklerinden sonra işlemleri gerçekleştirmek için Handler'lar.
- Belirli parametreleri yönetmek için değişkenler (group_vars, host_vars).
- Farklı kaynaklardan bilgi almak için Lookup eklentileri.
- Koşullara bağlı görevleri yürütmek için Koşullar.
Basit bir rol yapısına örnek:
// handlers/main.yml
---
# my_role için handlers dosyası
// tasks/main.yml
---
# my_role için görevler dosyası
Basit bir playbook örneği:
// playbook.yml
---
- Web sunucusunu yapılandır
hosts: webservers
become: evet # Görevleri süper kullanıcı haklarıyla yürüt
roller:
- my_web_server_role
Versiyon kontrol sistemleri, pull request'ler ve kod incelemeleriyle birlikte çalışıldı. Ayrıca, rollerin test edilmesi için Molecule gibi araçlar da kullanıldı.
| Ansible bileşeni | Kullanım |
|---|---|
| Roller | Kodun organizasyonu ve tekrar kullanımı |
| Playbook'lar | Görevlerin ve rollerin orkestrasyonu |
| Değişkenler | Yapılandırmanın deklaratif yönetimi |
| Handlers | Değişikliklere tepki |
| Jinja2 Şablonları | Dosyaların dinamik oluşturulması |