Web Uygulamaları için dağıtımı otomatikleştirmek?

9 Cevap ûnet

Ekibim şu anda. Net ve PHP web uygulamaları dağıtımını otomatik çalışıyor. Biz dağıtımları düzene ve güçlük ve elle yaparak neden olduğu baş ağrısı birçok önlemek istiyor.

Biz bize sağlayacak bir çözüm gerektirir:

  • Uygulamayı derlemek
  • Sürüm SVN sürüm numarası ile uygulama
  • Yedekleme Varolan site
  • Bir web çiftlik dağıtmak

All our apps are source controlled using SVN and our .Net apps use CruiseControl. We have been trying to use MSBuild and NAnt deployment scripts with limited success. We have also used Capistrano in the past, but wish to avoid using Ruby if possible.

Bize yardımcı olacak orada diğer dağıtım araçları var mı?

9 Cevap

Senin tür önerileriniz için teşekkür ederiz. Biz hepsini kontrol, ama dikkatli düşündükten sonra biz CruiseControl, NAnt, MSBuild ve MSDeploy bir kombinasyonu ile kendi rulo karar verdi.

This article has some great information: Integrating MSBuild with CruiseControl.NET

İşte bizim çözüm çalıştığını kabaca nasıl:

  • Geliştiriciler uygulama ve çalışma ünite testleri 'ayıklama' sürümü kurmak, sonra SVN için kontrol edin.
  • CruiseControl sees the updates and calls our build script...
    • Yapı veritabanı üzerinde herhangi bir yeni göçler çalıştırır
    • Yapı sunucu config yapılandırma dosyaları değiştirir
    • App 'ayıklama' yapılandırmasını oluşturur
    • Tüm birim ve entegrasyon testlerini çalıştırır
    • Builds the 'deploy' configuration of the app
      • Geçerli majör / minör sürüm ve SVN revizyonu ile, örneğin sürümler dll 1.2.0.423
      • Bizim yapı sunucu üzerinde bir 'serbest' klasörüne bu yeni yapı taşır
      • Gereksiz dosyaları siler
    • Gerekirse Güncellemeler yapı sunucu üzerinde IIS

Biz her şeyi / sahneleme yaşamak için gitmek için hazır olduğunu doğruladıktan sonra biz başka bir komut dosyasını çalıştırın:

  • Canlı / hazırlama sunucu üzerinde çalışan göçler
  • MSDeploy: arşiv mevcut canlı / hazırlama sitesi
  • MSDeploy: / hazırlama yaşamak için inşa den senkronizasyon sitesi

D: Bu oldukça bu aşamada elde değildi, ama çoğunlukla artık bir cazibe gibi çalışıyor

Şimdi SA birkaç benzer sorular var gibi görünüyor gibi ben, bizim sürecinde değişiklik yapmak olarak güncellenen bu cevabı denemek ve devam edeceğim.

I Visual Build Pro yıldır, oldukça kaygan ve kullanımı kolay ve yerleşik (Bahsettiğiniz olanlar gibi) birçok standart operasyonları vardır kullanmış

Ben RPMs oluşturmak için Puppet, Makefiles kullanın ve Bamboo Benim için bunu yapmak. Benim sistem doğrudan geçerli değildir, ve ben, Windows dünya ile tanıdık değilim, ancak bazı devredilemez desenler vardır.

Benim markası kurulum bana app makyaj her şeyin (php kütüphaneleri, php web siteleri, perl modülleri, C uygulamalar, vb) için RPM oluşturmanıza olanak verir. Bu elle veya bambu ile çağrılabilir. Ben bir yum repo içine bu RPM aktarmak ve kukla yazılımının en son (ya da doğru) sürümleri kümede yüklendiğinden emin olun işler.

Eğer MSI'ın içine yazılım paketlerini inşa otomatikleştirmek misiniz? Ben Kukla Windows yazılım paketleri ve sürümlerinin kurulumu yönetebilirsiniz düşünüyorum.

Bunun için MSDEPLOY kullanın. Bu mükemmel çalışır.

Ant Hakkında; . NET platformu için biz NAnt var ve MSDeploy ile birlikte kullanabilirsiniz; Eğer Nant-script MSDeploy aramak imkanınız var.

Edited: Just to make things clear; you can do everything with msdeploy. Using Nant is not a requirement.

MSDeploy ile sunuculara UNC adresleri ile dirpath komut: Aksine xcopy kullanmak yerine biz-kaynağını kullanmayı başardı. Anahtar MSDeploy dizesinde kullanıcı adı ve şifre ignoreAcls = true ve kaldırma çağrıları oldu:

msdeploy -verb:sync -source:dirpath=\\build\e$\app -dest:dirpath=\\live\d$\app,ignoreAcls=true

Örnek bizim canlı sunucuda D sürücüsüne bizim yapı sunucunun E sürücüsünden siteyi dağıtır. Açığa hisse veya canlı bir sunucu üzerinde disk erişimi bu seviyede bazı güvenlik hususlar vardır. Biz şu anda sınırlı erişim paylaşılan klasörü kullanarak içine arıyoruz.

Daha sonra başvurmak için yedek arşive taşınır bir log dosyasına Biz o boru bu çıkışı. Hangi dosyaların günlük dosyası kayıtları taşındı ve çıkış boru komutu ile yukarıdaki örnek when.Continuing edildi:

... > E:\archive\msdeploy.log

Final Builder sözü kimse http://www.finalbuilder.com. Görsel yapı Pro ile kendi par. Otomatik yapı dağıtım demetlerini oluşturmak için iyi bir GUI

Fabric. Küçük, basit usul gibi görünüyor. Ruby bir hayır-hayır (neden?) Olduğundan, Python ile yazılmış.

Setup Factory (indigo gül) göz atın. Bu ne yapabilirim oldukça sağlamdır. Bu Windows Installer API kullanır. Muhtemelen ihtiyacınız ne yapabilirim.

Biz dil. NET kümesini kullanarak görevler yazabilirsiniz hangi Ant benzer bir çerçeve var ki Nant bulunması gereken tek nedeni budur. Özel Görevler yazmak için saf. NET geliştiricisi almak istemiyorsanız, seni Ant kullanamazsınız herhangi bir neden göremiyorum. Eğer bir. NET dilinde uygulama yazmak Çünkü, bir. NET inşa aracı kullanmak zorunda anlamına gelmez.