Ini adalah pertanyaan yang sangat luas tentang metode dan saran mengenai variabel / struktur lingkungan. Tetapi pada akhirnya saya mencari jawaban untuk pertanyaan yang sangat spesifik tentang 'Bagaimana saya harus menyimpan variabel lingkungan saya?'
Pertama beberapa klarifikasi:
- Lingkungan bagi saya bisa dari 3 hingga 10 server dan merupakan cara untuk memuat infrastruktur pelanggan tertentu.
- Di dalam setiap lingkungan ada beberapa variabel yang sebagian besar secara otomatis dihasilkan dari beberapa input kunci (nama, ukuran dll).
Seperti yang ada sekarang kita menyimpan semua variabel lingkungan kita dalam struktur seperti:
<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
Sekarang konfigurasi diinisialisasi sebagai submodule di repositori git di atas. Karena variabel file berubah agak sering hal ini menyebabkan masalah dengan perubahan data, sekali, dua kali atau bahkan tiga kali antara komitmen membuat perubahan semakin sulit dilacak.
Seperti yang saya secara pribadi melihatnya maju, kita harus mencari untuk menyimpan semua variabel pelanggan kami secara terpusat / scalable dan kemudian menghubungkannya dengan inventaris dinamis dengan memungkinkan .
Saya mengerti ada beberapa teknologi yang tampaknya melakukan bagian dari apa yang mungkin diperlukan seperti Konsul tetapi mereka tampaknya bekerja paling baik di lingkungan yang melayani satu aplikasi besar daripada banyak yang lebih kecil yang sedikit berbeda.
Saya pada dasarnya melihat kami harus menulis skrip inventaris dan kemudian hanya mendorong semua data kami ke dalam beberapa basis data yang dibuat untuk tujuan dan kemudian terus berjalan seolah-olah tidak ada yang berubah. Saya melihat ini sebagai cara untuk mengurangi banyak data yang saat ini kami simpan dan mungkin mencari cara-cara yang berbeda untuk menyimpan data, bukan hanya meningkatkan apa yang berfungsi lagi.
Saya berharap seseorang memiliki semacam pengalaman dalam mengimplementasikan infrastruktur sebagai kode ketika harus berurusan dengan banyak lingkungan yang lebih kecil dibandingkan dengan satu, dua atau tiga yang besar.
Ada saran?