Bu, ortam değişkenleri / yapısı ile ilgili yöntemler ve tavsiyeler hakkında çok geniş bir sorudur. Ama sonuçta 'Ortam değişkenlerimi nasıl saklamalıyım?' Sorusunun cevabını arıyorum.
Öncelikle bazı açıklamalar:
- Benim için bir ortam 3 ila 10 sunucu olabilir ve belirli bir müşterinin altyapısını içermenin bir yoludur.
- Her ortamın içinde, çoğunlukla birkaç tuş girişinden (ad, boyut vb.) Otomatik olarak üretilen birkaç değişken vardır.
Şu anda olduğu gibi tüm çevre değişkenlerimizi şöyle bir yapıda saklıyoruz:
<playbook>.yml # Various playbooks for deployment
roles/windows # Ansible role for Ubuntu
roles/ubuntu # Ansible role for Ubuntu
config/hosts/<name>.yml # Ansible inventory
config/hosts/vars/<name>.json # Environment specific variables
Şu anda yapılandırma yukarıdaki git deposunda bir alt modül olarak başlatıldı. Değişkenler dosyası oldukça sık değiştiğinden, bu, verilerin değişmesiyle ilgili sorunlara neden olmuştur, değişiklikler arasında izleri gittikçe zorlaştıran bir kez, iki veya üç kez.
Şahsen ilerlediğini gördüğüm gibi, tüm müşteri değişkenlerimizi merkezi / ölçeklenebilir bir şekilde saklamalı ve daha sonra ansible ile dinamik bir envantere bağlanmalıyız .
Konsül gibi gerekebilecek bir parçayı yapıyor gibi görünen birkaç teknoloji olduğunu anlıyorum, ancak çok daha küçük farklılıklar yerine çok büyük bir uygulamaya hizmet eden bir ortamda en iyi şekilde çalışıyor gibi görünüyorlar.
Temelde bize bir envanter betiği yazmak ve sonra sadece tüm amaç dışı inşa edilmiş veritabanına tüm verilerimizi kıpırdamak ve sonra hiçbir şey değişmiş gibi devam etmek zorunda görmek. Bunu, şu anda sakladığımız birçok veriyi potansiyel olarak kısaltmanın bir yolu olarak görüyorum ve belki de tekrar tekrar neyin hizmet verdiğini ölçeklendirmek yerine verileri depolamanın farklı yollarına bakıyorum.
Birinin, bir, iki veya üç büyük olanın aksine daha küçük ortamlarla uğraşmak zorunda kalırken, altyapıyı kod olarak uygulamada bir tür deneyime sahip olmasını umuyorum.
Herhangi bir öneri?