Cara menguji skrip penyediaan VM tanpa ketentuan

10

Saat ini saya sedang dalam kondisi bahwa pengujian menghabiskan banyak uang dan banyak waktu ...

Latar Belakang: Saya menggunakan VM di softlayer dan menggunakan skrip pasca penempatan (bash) yang akan menginstal setiap perangkat lunak yang saya butuhkan setelah VM siap. Masalahnya adalah, saya hanya bisa menguji skrip ini dengan menggunakan satu VM, dan saat ini butuh sekitar 4 jam untuk menyelesaikan skrip ... Jadi setiap perubahan yang saya buat saya perlu membuat VM baru (biaya uang) dan menunggu sekitar 4 jam untuk melihat apakah skripnya rusak atau tidak ... Ini menjadi kacau dan saya tidak akan bisa bergerak maju jika tetap seperti ini.

Saya perlu cara baru untuk mendekati situasi semacam ini dan dapat menguji skrip penyediaan lebih cepat dan tanpa perlu menggunakan VM baru setiap saat.

Apakah Anda tahu beberapa alat untuk membantu saya dalam skenario ini?

Lucas Mattos
sumber
4
Apakah tidak mungkin untuk menguji skrip penyediaan (bash) Anda di VM dev lokal dengan menjalankannya secara lokal?
Rekovni
3
Ini adalah tempat di mana cloud pribadi akan bersinar. Membeli satu dan menyiapkannya bisa lebih murah dari apa yang Anda lakukan saat ini. Jalankan angkanya. Lihat apa yang masuk akal untuk Anda.
cewek

Jawaban:

10

Saya dapat melihat beberapa opsi:

  • Gunakan Vagrant untuk membuat VM Anda; itu memisahkan proses pembuatan VM (termasuk OS dasar) dan penyediaan aktual. Ia juga memiliki beberapa opsi untuk menjalankan langkah-langkah penyediaan tertentu pada keadaan tertentu saja.
  • Gunakan Ansible, Wayang atau sesuatu seperti itu untuk beralih ke mode penyediaan di mana Anda tidak melakukan hal yang sama setiap kali, tetapi hanya apa yang dibutuhkan. Ini berarti bahwa Anda dapat memulai pekerjaan, dan pada bagian yang gagal pertama, berhenti. Perbaiki bagian itu, lalu lanjutkan.
  • Gunakan Docker. Ini sedikit berbeda dari pendekatan Vagrant / Ansible karena menciptakan wadah (yang sebenarnya tidak Anda butuhkan, sejauh yang saya tahu). Ini memiliki manfaat, di luar pendekatan Ansible, yang memberi Anda proses pengembangan langkah demi langkah yang sangat baik. Yaitu, jika satu langkah gagal, Anda masih memiliki semua gambar yang mengarah ke sana, jadi selama pengembangan, dengan sedikit disiplin, Anda menjadi sangat, sangat cepat.

Semua alat ini melakukan lebih dari yang Anda butuhkan, tetapi semuanya memberi Anda cara untuk melakukan pekerjaan Anda secara bertahap. Vagrant, Ansible, dan Docker cukup mudah dipelajari, sejauh yang saya ketahui (selama Anda berada dalam mode Dev / Test, bagian-bagian yang "menarik" dimulai ketika Anda pergi ke produksi). Kemungkinan sangat minimalis dan tidak membutuhkan apa-apa selain koneksi ssh. Vagrant dan Docker mungkin tidak layak dalam infrastruktur Anda, Anda akan segera melihat.

AnoE
sumber
6

http://www.vagrantup.com

Anda bisa menggunakan gelandangan untuk menggunakan VM di laptop lokal.

Anda juga dapat memeriksa apakah skrip dapat dibagi menjadi beberapa bagian yang lebih kecil sehingga tidak akan memakan waktu empat jam untuk mengujinya.

030
sumber
5

Jika pengujian secara lokal bukanlah suatu pilihan, maka pendekatan yang paling mudah adalah dengan menggunakan snapshot / backup volume disk untuk keuntungan Anda. Ini masih akan dikenakan biaya $$$, tetapi akan menghemat waktu Anda dalam jangka panjang. Anda kemudian harus memisahkan skrip bash Anda menjadi segmen / skrip kerja yang berbeda yang dapat diuji secara individual. Setelah server Anda ditetapkan, jalankan skrip, lalu ambil snapshot. Jika berhasil, jalankan skrip berikutnya, ambil snapshot, lalu bilas dan ulangi. Jika skrip Anda gagal, ubah skripnya, kembalikan ke snapshot terakhir yang berhasil, lalu coba lagi.

CATATAN: Saya tidak yakin apakah Anda dapat mengambil snapshot dari disk mesin virtual di IBM Cloud / Softlayer, tetapi sepertinya Anda dapat membuat gambar VM dengan cukup mudah.

Mencadangkan gambar mesin virtual

Anda dapat mencadangkan gambar mesin virtual dalam instance Anda. Fungsi ini membuat salinan gambar mesin virtual dan konfigurasi cloud yang dapat dipulihkan nanti. Selain itu, Anda dapat mengelola gambar cadangan ini. Detail tentang gambar cadangan adalah sebagai berikut:

Gambar cadangan adalah salinan tepat dari gambar mesin virtual dan konfigurasi cloud. Tidak ada pembersihan gambar yang dilakukan.

  • Gambar cadangan tidak dapat digunakan sebagai contoh baru. Ini dapat digunakan hanya untuk mengembalikan gambar mesin virtual dan konfigurasi cloud yang terkait.

  • Hanya pemilik proyek (atau administrator) yang memiliki akses untuk memulihkan gambar mesin virtual cadangan dan mesin virtual cadangan.

  • Jika Anda menggunakan cloud OpenStack, hanya satu operasi cadangan yang diizinkan pada saat yang sama. Jika pengguna lain menjalankan cadangan dan Anda memulai satu pada contoh yang sama, Anda menerima kesalahan yang menyatakan ada permintaan yang bertentangan. Untuk melakukan pencadangan, Anda harus menunggu hingga pencadangan lainnya selesai.

  • Contoh OpenStack PowerVM® dan z / VM® tidak mendukung tindakan ini.

  • Jika mesin virtual tersebut dihapus dengan menggunakan IBM® Cloud Manager dengan OpenStack, cadangan yang terkait juga dihapus.

https://www.ibm.com/support/knowledgecenter/en/SST55W_4.1.0/liacb/liacbsaverestorevsvmw.html

PrestonM
sumber