(Mohon maaf sebelumnya atas kebodohan dalam pertanyaan ini. Saya biasanya seorang programmer, bukan sysadmin, tapi saya sendiri yang mengambilnya untuk mengotomatisasi beberapa hal, dan membersihkan beberapa hal lain yang otomatis tetapi tidak dengan cara yang tercantik) . :-)
Saya telah melihat-lihat berbagai alat untuk otomatisasi penyebaran perangkat lunak ke banyak server, seperti cfengine, Puppet, dan Chef. Sejauh ini, Wayang tampak paling menarik, tetapi saya belum berkomitmen untuk apa pun.
Alat-alat ini semua terlihat seperti mereka dapat melakukan pekerjaan yang bagus untuk menjaga sekelompok server tetap up-to-date dengan perangkat lunak yang sudah dikemas .
Yang tidak saya dapatkan adalah: bagaimana cara menggunakan alat (seperti Wayang) untuk mengelola penyebaran perangkat lunak internal kita sendiri? Saya pikir saya bingung karena saya sudah melihat ribuan tutorial yang menunjukkan bagaimana untuk menjaga Apache ensure => latest
(yang merupakan cukup keren), tapi tidak ada yang cukup bersesuaian dengan penggunaan-kasus saya saat ini, yang merupakan sesuatu yang lebih seperti:
- ketika seorang manusia menekan The Button,
- cabut cabang A dari repositori kontrol versi B
- jalankan perintah C untuk mengkompilasinya
- salin binari D ke server E1 hingga E10
- pada setiap server, jalankan perintah F untuk membuat semua perubahan berlaku
Wayang terdengar hebat, dan saya benar-benar melihat keuntungan dari deklaratif, konfigurasi idempoten atas beberapa skrip shell, tapi saya belum melihat tutorial untuk "Anda ingin memperbarui skrip shell Anda ke Wayang (atau Chef, atau cfengine) jadi inilah yang Anda harus dilakukan ". Apakah ada hal seperti itu? Apakah sudah jelas bagi orang lain bagaimana mengambil barang-barang yang disediakan dalam dokumen Wayang dan mereplikasi perilaku yang saya inginkan? Apakah saya tidak mengerti?
Apa yang terdengar bagi saya, sejauh ini, adalah bahwa manusia (# 1) akan secara manual mengemas perangkat lunak (# 2 dan # 3) eksternal untuk Wayang, secara manual memperbarui konfigurasi Wayang, yang akan memicu Wayang untuk memperbarui server. .. mungkin? (Aku agak bingung di sini, karena aku yakin kamu bisa tahu.)
Terima kasih!
Jawaban:
Kami menggunakan boneka, tetapi kami tidak menggunakannya untuk penyebaran aplikasi kami. Seperti yang Anda katakan, Anda dapat mengemas perangkat lunak Anda ke dalam debs atau rpms, mengkonfigurasi repositori pribadi Anda di mana-mana, dan menggunakan boneka untuk mengontrol versi, tetapi Anda masih menunggu menunggu refresh 30 menit berikutnya pada semua server Anda.
Apa yang akan saya lakukan (dan ini dekat dengan apa yang kami lakukan, tetapi kami menggunakan rel sehingga tidak ada langkah kompilasi):
Chef mungkin memiliki kemampuan push yang lebih nyata; Saya tidak terlalu terbiasa dengannya.
sumber
Langkah 1 hingga 3 biasanya otomatis dalam proses pembuatan. Biasanya, output dari proses ini akan melalui siklus uji. Saya mengemas output sehingga dapat digunakan untuk lingkungan uji integrasi. Hanya jika tes integrasi lolos, langkah 4 dan 5 harus terjadi.
Langkah 5 Anda menyiratkan pemadaman penyebaran. Untuk sesuatu seperti apache, ini dapat ditangani dengan shutdown dan restart selama rotasi log. Skrip crontab dapat menangani ini. Jika Anda dapat menangani perubahan bergulir selama satu jam atau lebih, cukup sertakan restart di langkah penyebaran 4. Wayang atau cfengine adalah alat yang tepat untuk langkah 4. Ini dapat dipicu dengan memperbarui repositori ketika tes integrasi lulus.
sumber
Cari resep boneka dan Anda akan menemukan banyak skrip siap produksi. Ya, Anda harus mengemas perangkat lunak secara manual. Jika Anda mengelola repositori pribadi Anda sendiri, maka Anda dapat menggunakan flag sure => terbaru. Kemudian tulis resep untuk memberi tahu boneka untuk menginstal perangkat lunak. Resep harus ditempatkan pada server master dari mana ia akan disebarkan ke budak.
sumber