Menggunakan git untuk mengatur / etc?

14

Saya sedang berpikir tentang suatu sistem, di mana /etcdilacak pada repositori git jarak jauh. Saya berpikir tentang alur kerja git, di mana setiap mesin host di mana cabang yang berbeda.

Setiap versi sebelumnya pada setiap mesin dapat dengan mudah dilacak, dibandingkan, digabungkan.

Jika /etcmodifikasi harus dilakukan pada banyak mesin, itu dapat dengan mudah dilakukan oleh beberapa skrip penggabungan.

Jika ada /etcperubahan "yang tidak diinginkan" , ini bisa terlihat dengan baik (bahkan skrip alarm dapat disetel untuk menontonnya).

Adakah yang sudah menggunakan konfigurasi seperti itu? Apakah ada masalah keamanan dengannya?

peterh - Pasang kembali Monica
sumber
6
Ada etckeeperyang sudah digunakan di banyak sistem. Itu tidak menawarkan semua fitur yang Anda minta. Misalnya ia memiliki satu repositori per host, bukan yang sentral.
jofel
File apa yang Anda minati atau file apa yang telah diubah sebelumnya yang tidak diinginkan? Saya bertanya karena saya pikir Git bukan cara yang tepat untuk menyelesaikan masalah yang disebabkan pada titik lain dalam alur kerja Anda. Lebih lanjut: jika seseorang lupa untuk melakukan beberapa perubahan, Git tidak berharga. Bisakah Anda jelaskan lingkungan Anda? Apakah Anda memiliki lingkungan pengujian dan QA yang identik dengan produksi? Apakah Anda memiliki lebih dari dua atau tiga host dengan tipe / tujuan yang sama atau apakah heterogen? Apa yang lebih penting: membandingkan konfigurasi host atau melacak konfigurasi satu host dari waktu ke waktu?
coba-tangkap-akhirnya

Jawaban:

6

Program ini etckeepertidak berhasil /etcdi git, Anda hanya perlu mengubah default vcs backend dari bzrke gitdalam /etc/etckeeper/etckeeper.conf.

Ini diinstal secara default di Ubuntu Linux, dan menangani kasus-kasus umum kapan harus melakukan secara otomatis.
Itu dilakukan sebelum menginstal paket jika ada perubahan manual yang tidak dikomit, dan setelah menginstal.

Volker Siegel
sumber
5

Masalah dengan konfigurasi pelacakan untuk /etcdi gitadalah bahwa semua Anda benar-benar mendapatkan dengan melakukannya adalah kontrol versi (kebanyakan gitpemula bahkan tidak tahu bagaimana tagdan branchbenar, jadi tidak mungkin pada saat itu) dan kemampuan untuk mengembalikan (lagi, jika Anda tidak t taggingbenar, Anda tidak mendapatkan apa pun selain log untuk menyalahkan orang); tetapi Anda kehilangan template (cant templat karena git tidak menyediakan itu), dan scaling out (Anda tidak dapat menerapkan konfigurasi di tempat lain; terutama jika Anda menggunakan database terdistribusi seperti Elasticsearch), dan manajemen sistem otomatis (sekali lagi, git tidak menyediakan ini ).

Dengan itu dikatakan, apa yang Anda mungkin cari adalah manajemen konfigurasi ; bahwa hubungan di template , gitdan scripting dasar untuk mengelola konfigurasi. Ini, tentu saja akan turun ke arah DevOps dan Infrastruktur sebagai Kode .

Untuk menambah ini; Ansible memiliki ansible-pullyang dapat menarik repo terbaru dari playbook Anda dari git; hal yang sama juga berlaku untuk Chef. Pada dasarnya, administrator Linux modern tidak boleh menggunakan sesuatu seperti etckeeper. Chef juga memiliki modus client-server di mana Anda dapat mengatur semua sistem dengan chef-clientberdasarkan environment, rolesdan buku resep versi; hal-hal yang tidak dapat Anda lakukan githanya dengan skala.


sumber
Bukan hanya rollback yang membuat saya dengan git. Saya mendapatkan juga komparabilitas (baik antar mesin dan antar waktu), dan juga sinkronisasi. Tapi saya pikir ide tentang beberapa alat yang lebih bertarget berguna.
peterh