Saya perhatikan bahwa beberapa orang merekomendasikan menggunakan etckeeper untuk menerapkan kontrol versi ke direktori / etc saya.
Tampak bagi saya bahwa instalasi default menempatkan repositori pada mesin yang sama dengan / etc yang Anda coba kelola. Ini berfungsi dengan baik untuk kontrol versi, tetapi tidak memberikan manfaat tambahan untuk membuat cadangan di luar server file - atau memungkinkan saya untuk menggandakan bagian dari / etc dari satu mesin sumber ke yang lain.
Apakah mungkin untuk berbagi repositori git tunggal pada mesin admin pusat, sehingga penjaga etc pada setiap server menyimpan datanya di tempat yang sama?
(Saya melakukan hal yang sama sekarang dengan svn dan beberapa skrip khusus untuk melakukan dan mengembalikan file, tetapi saya harus ingat untuk melakukan mereka ketika saya membuat perubahan.)
sumber
git push
bekerja ke git repo yang Anda buat? mungkin Anda perlu membuat repo telanjang di somedir hook di bawah commit.d adalah ide yang sangat bagus, saya menyukainyaDimungkinkan untuk menambahkan konfigurasi cabang jarak jauh untuk memetakan cabang utama repositori etckeeper dari setiap server ke cabang pada repositori jarak jauh. Untuk melakukan itu, Anda dapat menjalankan perintah berikut di setiap server:
Setelah pengaturan ini, selanjutnya
git push
akan mengirim perubahan dari setiap cabang master server ke cabang server khusus pada repositori pusat.Meskipun cabang tidak memiliki titik awal yang sama, ini memungkinkan untuk dengan mudah membandingkan file yang sama dari dua cabang yang berbeda, mewakili dua server yang berbeda, dengan menjalankan:
Ini dapat dikombinasikan dengan pengaturan otomatis yang disarankan oleh jojoo .
sumber
Cara melakukannya secara otomatis, cerita lengkapnya:
Buat file /etc/etckeeper/commit.d/60-push (jangan lupa untuk chmod + x itu) pada klien.
central_server didefinisikan dalam konfigurasi ssh, lihat di bawah. /var/git/client_name.git adalah direktori di server pusat, berisi repo git.
~ / .Ssh / config dari root (!) Harus berisi sesuatu seperti ini:
Maka Anda perlu init git repo di central_server
Uji dengan edit kecil di / etc dan kemudian penjaga etc melakukan "test push'ing".
sumber
Itu bukan intinya. Jika Anda ingin mendistribusikan konfigurasi secara luas, Anda mengatur repositori lain sebagai tambahan dari repo lokal masing-masing mesin, dan minta setiap mesin memilih dari yang diperlukan. Apa yang dilakukan adalah memungkinkan setiap mesin untuk menyimpang (cabang, sebenarnya) dan mempertahankan kontrol revisi.
sumber
Anda benar-benar tidak ingin membuat dan lain-lain menjaga kebijakan cadangan Anda. Walaupun memiliki salinan file konfigurasi Anda akan menyenangkan, itu hampir tidak cukup untuk memenuhi syarat sebagai rencana pemulihan bencana.
Fokuslah untuk memiliki cadangan nyata dari sistem Anda sebagai gantinya. Simplist bisa menjadi cronjob untuk memberi makan tarball untuk direkam ... oh, benar. Tidak ada yang menggunakan kaset lagi. Oke, cronjob untuk rsync semua file Anda ke NAS khusus . Untuk solusi cadangan yang lebih kuat, lihat Amanda dan Bacula .
Dan untuk kasus akademisi, saya bisa mendorong repo penjaga restoran saya ke github sama seperti repo git lainnya.
sumber