Soru Sunucu yapılandırma dosyaları için revizyon kontrolünün kullanılmasına izin veren çözümler nelerdir? [kapalı]


Birden çok sistem yöneticisine sahip bir ortamda, sunucu yapılandırma dosyalarını bir revizyon kontrol sistemine eklemek için birkaç avantaj görüyorum. Bunların en önemlisi, değişiklikleri takip etme, bunları yapan ve elbette bilinen çalışma yapılandırmalarına geri dönme yeteneğidir.

Esas olarak Unix / Linux çözümleri ile ilgileniyorum, fakat Windows uygulamalarını da merak ediyorum.


85
2018-05-06 17:46


Menşei


Yinelenen veya bu soruyla çok ilgili gibi görünüyor serverfault.com/questions/3852/... - Zoredache


Cevaplar:


Bunu bir süredir evde (~ 3 ana bilgisayar) test ettim, farklı scms (RCS, Subversion, git). Şu anda benim için mükemmel olan kurulum şu setgitperms kancası.

Göz önünde bulundurmanız gereken şeyler:

Dosya izinlerinin ve sahipliğinin ele alınması

  • RCS: Bunu yerel olarak yapar
  • Subversion: son denedim, etrafına sarıcı lazım svn Bunu yapmak için
  • git: setgitperms Kanca bu saydam olarak ele alır (adil bir şekilde ihtiyaç duyar) için destek ile git son sürümü post-checkout kancalar olsa da)

Ayrıca, tüm /etc sürüm kontrolü altında, ancak sadece Gerçekten değiştirdiğiniz dosyaları (benim gibi), bu tür kullanımları destekler.

  • RCS: Her halükarda sadece tek dosyalarda çalışır.
  • Subversion: Bunu zor buldum.
  • git: probem yok, koy "*"en üst düzeyde .gitignore dosya ve sadece ekle kullanmak istediğiniz dosyalar git add --force

Sonunda, bazı sorunlu dizinler vardır. /etc paketlerin düşebileceği yerler Daha sonra bazı program veya daemon tarafından okunan snippet'leri yapılandırma/etc/cron.d, /etc/modprobe.d, vb.). Bu programların bazıları yok sayılacak kadar akıllı RCS dosyaları (ör., Cron), bazıları (örneğin modprobe) değildir. İle aynı şey .svn dizinleri. Yine git için büyük bir artı (sadece bir üst düzey oluşturur .git dizin).


52
2018-05-06 18:23



Subversion ihtiyacı asvn svn.collab.net/repos/svn/trunk/contrib/client-side/asvn. Arşiv SVN (asvn), normalde svn tarafından işlenmeyen dosya türlerinin kaydedilmesine izin verecektir. Şu anda bu cihazlar, symlinks ve dosya sahipliği / izinleri içerir. - Cristian Ciupitu
Kullandığınız kancaların nasıl kurulacağını gösteren herhangi bir yer var mı, vb. - GruffTech
Kısa bir yazışma burada: jottit.com/jg8h7 - 8jean
İşte burada Arch Linux ARM'da böyle bir şey kurma hakkında bir yazı var, burada da eşit olarak iyi uygulanmalıdır. zduck.com/2012/storing-your-raspberry-pi-config-in-git - silent__thought


Git ile gayri resmi olarak yaptım, ama aynı zamanda etckeeper Daha eksiksiz ve detaylı bir uygulama olan proje.


28
2018-05-06 17:47



Kaleci gerçekten iyi - izinleri geri yükleme (git, hg, vb tarafından desteklenmez) ve seçtiğiniz arka ucunu (git, hg, çarşı, vb.) destekler. Ayrıca APT'ye entegrasyon vardır, böylece her zaman bir apt-get işlemi yaparsınız, / etc deposu işlenir ve geceleme yapar. Bunu bir süredir kullandım ve genel olarak sadece izinler için bir vanilya VCS kullanmaktan çok daha iyi. - RichVel


Başka bir seçenek gibi otomatik bir sunucu yapılandırma aracı kullanmaktır Kukla veya Cfengine Sunucu yapılandırmalarınızı bildirimsel bir dilde komut vermek için.

Ön uçta ekstra çalışma var ama Kukla gibi bir yardımcı program kullanmak, çok az insan müdahalesiyle bir sunucuyu otomatik olarak yeniden oluşturmanıza ve yapılandırmanıza izin veriyor.


23
2018-05-06 18:03



Evet, ama aynı zamanda Kukla / CFengine konfigürasyonlarınızı revizyon kontrol etmelisiniz. Ayrıca, çıktıyı kontrol etmek için bir revizyon hayranıyım. oldu tarih x yapılandırması "" gibi "yapılandırmanın kuklaya göre ne yapması gerekir?", ve yapılandırma yönetiminde sorun giderme girişleri ile girişleri ilişkilendirir. - Rob Chanter


İle deniyorum etckeeper oldukça iyi çalışıyor gibi görünüyor. Bazı durumlarda önemli olabilecek merkezi bir sunucuya ihtiyacım yok. Birkaç farklı DVCS arka uç kullanabilirsiniz, böylece en tanıdık olanı seçebilirsiniz. Benim için çok iyi çalışıyor gibi gözüküyor, ama henüz kullanmaya başlamak için çalıştığım diğer teknolojileri almaya çalışmıyorum.


10
2018-05-06 18:10





İçine baktım Şef Son zamanlarda. Sadece tutmak değil Templatable (.erb) sürüm denetiminde yapılandırır, ancak eylemleri gerçekleştirmenizi sağlar (örneğin hizmetin yeniden başlatılması yapılandırmaları düğüme yükledikten sonra). Şef paket yönetimi ile yardımcı olur, böylece yapabilirsiniz bağımlılıkları doğrula ile arabirim oluşturduğunuz herhangi bir düğüme (yani, sudo paketinin yüklü olması gerekir). Şef, Ruby'de kolayca genişletilebilir gibi görünüyor, bu yüzden herhangi bir özel işleminiz varsa, verilen çerçeve içerisinde betimleyebilirsiniz.

Ama yine de denemedim ve Ruby'yi istemciye ve sunucuya uygun mücevherlerle yüklemelisin (bu gerçekten zor değil). Genel olarak birçok sunucuyu bir kerede yönetmek gerçekten çok kolay görünüyor.


6
2018-05-27 20:49



Şefi ağır bir şekilde (60+ sunucu) oldukça başarılı bir şekilde kullanıyoruz. Tüm tarifler ve yapılandırma dosyaları Subversion içine kontrol edilir. - organicveggie


Kukla'yı altyapımız boyunca uygulama aşamasındayım ve verilerini sürüm kontrolünde tutmaya oldukça elverişliyim.

Mercurial'ı tercih ediyorum, çünkü sadece gizli dizinlerde saklanan bazı meta veriler içeren bir dosya koleksiyonu (yönetimi kolay, anlaşılması kolay, kullanımı kolay).

Kukla dosyalarım / usr / local / etc / puppet / (FreeBSD 7.1). Tüm bu Mercurial eklemek için aldı:

> cd /usr/local/etc/puppet
> hg init

Tüm değişiklikler basit bir "hg commit" ile gerçekleştirilir. Bir değişiklik bir şey hortumlarsa, tek bir komutla her bir sunucuyu dosyanın belirli bir sürümüne (örneğin, sudoers) geri alabilirim.

Mercurial'a harika giriş


3
2018-05-06 19:59





Yönetdiğim sunucularda Subversion kullanıyordum. İyi çalışıyor. Ayrıca bir de Trac Örneğin, bir zaman çizelgesi görünümü, biletleme sistemi, göz atma vb. var.

Symlinks, cron ve subversion kullanarak, ayrıca, her Linux sunucusunun bir depoyu kullanarak bir depoyu güncellediği subversion deposuna dayalı otomatik yapılandırma dağıtımı da kurdum. svn update komut dosyaları ile (ör. güvenlik duvarı komut dosyaları).


3
2018-05-07 16:19





İşte gerçek bir yaşam kullanma vakası: Yapılandırma dosyalarını 4 farklı sunucuda yönetmek için Subversion kullanıldı. Konfigürasyon dosyaları için kod kullanarak kullanmanız için aynı sebepten dolayı sürüm kontrolü kullanmanızı tavsiye ederim - hepsi bir arada bir yedekleme ve geri alma düğmesi. Çok daha büyük miktarda sunucu yönetiyor olsaydım ve konfigürasyon açısından çok daha yakın olsaydım, berberich'in cevabında ayrıntılı olarak Kukla gibi bir şey kullanırdım.

Buradaki fikir, sunucularda belirli klasörleri kontrol edebilmeniz için bir depoya sahip olmanızdır (örn. / Var / named /), böylece hem bir geçmişim hem de yapılandırma dosyalarının bir yedeği var (eğer hata yaparsanız yedekleme bir bonustur) El düzenlenmiş eklemeler siliyor bir GUI yapılandırma uygulaması kullanarak öksürük Mac OS X Server'da Sunucu Yöneticisi öksürük). Bunu bir test sunucusunda test etmek ve daha sonra dosyaları elle kopyalamaksızın çalışan dosyalar ile üretim sunucusunu güncellemek kolaydır.


2
2018-05-06 19:11





Tam olarak bunu yapmak için birkaç yıl önce bir proje oluşturdum: Savon

Dosyaları depolamak için subversion kullanır ve sahipliğin, izinlerin ve SELinux içeriğinin izlenmesi gibi bazı ek özelliklere sahiptir. Ayrıca, dosya sistemindeki değişikliklerin katmanlara mantıksal olarak bölünmesini sağlar, böylece tüm web sunucularınıza ayrı ayrı gitmesi gereken değişiklikleri izleyebilirsiniz.


1
2018-05-12 07:13





Subversion kurulumu ve kullanımı çok kolaydır ve çok fazla kaynak vardır:

Temel Nasıl Yapılır

SVN Kitap

Belge Yönetimine Genel Bakış


0
2018-05-06 17:58



Kabul ediyorum, eğer windows checkout kullanıyorsanız svn, kullanımı çok basit. - Element