Konuşlandırma komut dosyası derlemenin bir ürünü olmalı mı?


13

Bu, Java ile yazılmış bir web projesidir.

Bu yüzden derleme ve konuşlandırma komut dosyalarını yazıyorum. Yapıyı oluşturmak için karınca kullandım. Sürekli yapı Jenkins ile yapılır.

Yapı 3 farklı eser üretir:

  1. Savaş dosyası
  2. Düzeni olan bir zip
  3. Resimli zip

Şimdiye kadar, çok iyi, ama şimdi dağıtmak komut dosyası yazmak gerekir, ki:

  • Sunucuda çalışan tomcat savaş (eser 1) dağıtın
  • Objeyi yerleştirin 2 de sunucudan 1 belirli bir dizindeki
  • Objeyi yerleştirin 3 de sunucunun 2 belirli bir dizindeki

Bu yüzden meslektaşımla konuşuyordum ve doğru sunucuya yerleştirildiğinde bu eserleri dağıtan bir eser (belki de deploy.xml ) üretmemiz gerektiğini söyledi .

Yani başka bir senaryo olacaktı, bu:

  • Jenkins eserlerini indirin
  • her sunucuya scp yazın ve deploy.xml dosyasını buraya yerleştirin
  • deploy.xml dosyasını uzaktan çağırır

Beni biraz rahatsız eden şey, deploy.xml dosyasının bir yapı artefaktı olmasıdır. Bunun arkasındaki motivasyon, VCS depolarına erişmeye gerek kalmadan bir konuşlandırma yapabilmek olacaktır, bu nedenle bir yapı kendi kendine yetecek, yani herhangi bir yapı yalnızca Jenkins tarafından üretilenle üretime girebilir.

Konuşlandırma komut dosyaları nereye yerleştirilmelidir? Onlar olmalı sadece VCS veya onlar da inşa eserler olmalıdır?


bu soru iyi / bize artı-bir / istiyorum cevap verebilir diliyorum
amara

Yanıtlar:


6

Benim deneyim bu her şeydir edebilirsiniz olmalıdır otomatik hale. Adım 1, adım 2, .... olarak tanımlayabilirseniz , bir komut dosyası olmalıdır. Komut dosyası, yapıya özgü bilgileri (ör. Revizyon etiketi) içerecek şekilde otomatik olarak oluşturulabilirse, yapmanız gereken budur. Bu tembel olma uğruna değil, öngörülebilir ve tekrarlanabilir olma uğruna içindir .

Not bene: Ayrıca , otomatik olarak oluşturulan dağıtım komut dosyasının bat * t çılgın hale gelmesi ve üretim sunucusunu hortumlaması durumunda, takımdaki herkes tarafından kullanılabilecek otomatik olarak oluşturulmuş bir geri döndürme komut dosyanız olmalıdır.


3

Peter Rowell'in yazdığı her şey doğrudur, buna ek olarak:

Konuşlandırma komut dosyası için

  • biri tarafından yazılmışsa, sürüm kontrolünde olması gerekir.
  • oluşturulduysa ve tekrar oluşturulabiliyorsa, genellikle sürüm denetimine girmez.

Dağıtım işlemi için:

  • Eserlerinizin bağımsız olmasını istiyorsanız ve kolayca yapılabilirse, dosya bir yapı artefaktı olabilir, yani yapı ile paketlenmiş olması, dağıtım için kullanılabilir olacak şekilde sonuçlanır.
  • Öte yandan, dağıtımlar gittikçe daha karmaşık hale gelir veya er ya da geç dağıtımı yapan özel bir programa (bazı kodu okuyun) ihtiyacınız olacaktır ve Jenkins derleme artefaktı artık kendi kendine yetmez.

Bu, işleminize ve dağıtımları nasıl işlemek istediğinize bağlıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.