Praktik terbaik untuk menguji resep koki?

18

Tim saya telah menciptakan sejumlah besar buku masak koki. Saya bertanya-tanya metode dan kerangka kerja apa yang harus saya perhatikan sehingga kita dapat mulai membuat tes untuk memastikan bahwa node kita sudah terkonfigurasi dengan benar?

linusthe3rd
sumber
Kedengarannya seperti milik cooking.se;)
Mark Henderson
Sejenak saya pikir Anda berbicara tentang Chef: en.wikipedia.org/wiki/Chef_%28programming_language%29
Janne Pikkarainen

Jawaban:

7

Anda mungkin (juga) mencari Vagrant untuk ini.
Sebuah video menunjukkan cara menggunakan combo buku masak Vagrant dan Chef. Dan ada halaman khusus untuk Vagrant dan Chef di situs Opscode (pembaruan 2015-01-23: halaman telah hilang ...).

Henk
sumber
3

Ada cucumber-chefpermata ruby ​​dan buku yang baru-baru ini dirilis Nelson-Smith et al - "Infrastruktur yang digerakkan oleh tes dengan Chef" yang memanfaatkan permata itu - http://www.cucumber-chef.org/

Baru ingat ini dari daftar pantauan github saya: https://github.com/gregretkowski/vmth/

VMTH (Virtual Machine Test Harness) menyediakan mekanisme untuk menguji unit otomasi infrastruktur Anda - kebijakan boneka, resep koki, rilis skrip penyebaran, dll. Menggunakan fitur monitor VM modern (seperti qemu) untuk memotret kondisi sistem, dan kemudian mengatur ulang Keadaan itu setelah setiap tes, sehingga serangkaian tes dapat dilakukan pada instance VM secara berurutan

pfo
sumber
1

Ada sejumlah opsi.

Opscode memiliki peta jalan pengembangan Chef "no-op" yang akan membantu pengujian. Kami berpendapat bahwa "no-op" tidak selalu melakukan apa yang Anda inginkan, tetapi pahami keinginan untuk fitur tersebut.

jtimberman
sumber
1

Beberapa jawaban di sini sepertinya agak lama. Untuk CI dan pengujian lokal saya akan mencari cara memanfaatkan alat uji harness seperti Test Kitchen yang juga mendukung Vagrant jika Anda sudah menggunakannya.

Ini akan memungkinkan Anda untuk menjalankan coobkook Anda terhadap banyak solusi cloud dan virtualisasi di luar sana hari ini: EC2, Digital Ocean, Vagrant, Docker, dll.

Ini juga memiliki plugin untuk memungkinkan Anda menjalankan salah satu dari banyak alat uji infrastruktur yang ada di sana hari ini:

  • serverspec - Kerangka pengujian paling populer.
  • goss - YAML, sederhana, biner mandiri, sangat cepat.
  • inspec - menganggapnya sebagai serverpec ditingkatkan (ditulis oleh para koki).
  • testinfra - framework pengujian server berbasis Python.
Ahmed Elsabbahy
sumber
0

Dalam pengalaman saya, satu-satunya cara untuk benar-benar melakukan ini adalah dengan lingkungan pementasan dan praktik pembangunan yang cermat. Mengejek pekerjaan yang sebenarnya harus dilakukan sangat berantakan dan rapuh, dan suite tes CI yang dijalankan berdasarkan komit atau dorong adalah banyak upaya untuk menulis dan memelihara (meskipun Chef mungkin jauh lebih baik dalam hal ini daripada Wayang, yang merupakan pengalaman utama saya ), dan luangkan waktu untuk menjalankannya.

EDIT

Tepat setelah saya menulis ini, saya tiba-tiba menyadari mungkin ada cara untuk melakukan pengujian "unit" yang cukup efisien dari resep Chef / Puppet dengan sistem file gabungan dan sejumlah besar perancah. Namun, saya tidak dapat menemukan apa pun di luar sana yang dilakukan orang di area ini. Saya mungkin baru saja menemukan diri saya sebuah proyek.

womble
sumber
Menguji infrastruktur itu sendiri sangat penting. Secara alami, ada sejumlah metodologi, yaitu fungsional dan nonfungsional, yang diperlukan untuk mengimplementasikannya sedikit berbeda dari metodologi perangkat lunak.