Ini adalah proyek web yang ditulis dalam Java.
Jadi, saya menulis skrip build dan deploy. Untuk membuat build, saya menggunakan semut. Pembangunan berkelanjutan dilakukan dengan Jenkins.
Membangun menghasilkan 3 artefak yang berbeda:
- File perang
- Zip dengan layout
- Zip dengan gambar
Sejauh ini, sangat bagus, tapi sekarang saya perlu menulis skrip deploy, yang seharusnya:
- Menyebarkan perang (artefak 1) ke kucing jantan yang berjalan di server 1
- Tempatkan artefak 2 di server 1 dalam direktori tertentu
- Tempatkan artefak 3 di server 2 dalam direktori tertentu
Jadi saya berbicara dengan kolega saya dan dia berkata bahwa kita juga harus membuat artefak (mungkin deploy.xml ) yang menyebarkan artefak ini ketika ditempatkan di server yang benar.
Jadi akan ada skrip lain, yaitu:
- Unduh artefak jenkins
- scp ke setiap server dan letakkan deploy.xml di sana
- panggil deploy.xml dari jarak jauh
Yang membuat saya sedikit tidak nyaman adalah tindakan memiliki deploy.xml sebagai artefak build. Motivasi di balik ini adalah untuk dapat membuat penyebaran tanpa perlu memiliki akses ke repositori VCS, sehingga membangun akan mandiri, yaitu, setiap bangunan bisa masuk ke produksi hanya dengan apa yang dihasilkan oleh Jenkins.
Di mana skrip penempatan harus ditempatkan? Haruskah mereka hanya di VCS atau haruskah mereka membangun artefak juga?
sumber
Jawaban:
Pengalaman saya adalah bahwa segala sesuatu yang dapat diotomatisasi seharusnya. Jika Anda dapat menggambarkannya sebagai langkah 1, langkah 2, .... maka itu harus berupa skrip. Jika skrip dapat dibuat secara otomatis untuk menyertakan info bangunan tertentu (misalnya tag revisi), maka itulah yang harus Anda lakukan. Ini bukan demi menjadi malas, tetapi demi menjadi dapat diprediksi dan direproduksi .
Catatan di bawah: Anda juga harus memiliki skrip pemulihan yang dihasilkan secara otomatis yang dapat digunakan oleh siapa saja di tim jika skrip penyebaran yang dihasilkan secara otomatis menjadi gila dan membuat server produksi terputus.
sumber
Semua yang ditulis Peter Rowell, benar, selain itu saya akan:
Untuk menyebarkan file skrip
Untuk proses penyebaran:
Ini agak tergantung pada proses Anda dan bagaimana Anda ingin menangani penyebaran.
sumber