Chef - Menguji Buku Masak
Jika buku masak langsung disebarkan dan dijalankan di server produksi, ada kemungkinan besar buku masak tersebut dapat rusak dalam produksi. Cara terbaik untuk mencegah hal ini terjadi adalah, menguji buku masak di lingkungan penyetelan.
Berikut langkah-langkah pengujiannya.
Step 1 - Instal buku masak menggunakan perintah berikut.
vipin@laptop:~/chef-repo $ knife cookbook site install <cookbook name>
Step 2 - Jalankan perintah tes buku masak pisau pada buku masak yang berfungsi.
vipin@laptop:~/chef-repo $ knife cookbook test VTest
checking ntp
Running syntax check on ntp
Validating ruby files
Validating templates
Step 3 - Pecahkan sesuatu di buku masak dan uji lagi.
vipin@laptop:~/chef-repo $ subl cookbooks/VTest/recipes/default.rb
...
[ node['ntp']['varlibdir']
node['ntp']['statsdir'] ].each do |ntpdir|
directory ntpdir do
owner node['ntp']['var_owner']
group node['ntp']['var_group']
mode 0755
end
end
Step 4 - Jalankan kembali perintah uji pisau.
vipin@laptop:~/chef-repo $ knife cookbook test ntp
checking ntp
Running syntax check on ntp
Validating ruby files
FATAL: Cookbook file recipes/default.rb has a ruby syntax error:
FATAL: cookbooks/ntp/recipes/default.rb:25: syntax error,
unexpected tIDENTIFIER, expecting ']'
FATAL: node['ntp']['statsdir'] ].each do |ntpdir|
FATAL: ^
FATAL: cookbooks/ntp/recipes/default.rb:25: syntax error,
unexpected ']', expecting $end
FATAL: node['ntp']['statsdir'] ].each do |ntpdir|
FATAL:
Metode Kerja
Tes buku masak Knife menjalankan pemeriksaan sintaks Ruby pada semua file Ruby di dalam buku masak serta semua templat ERB. Ia melakukan loop melalui file Ruby dan menjalankan Ruby–cmelawan mereka masing-masing. Rubi–c memeriksa sintaks skrip dan berhenti tanpa menjalankannya.
Setelah melalui semua file Ruby, tes buku masak pisau melewati semua template dan pipa ERB, versi redundan yang dibuat oleh –x melalui Ruby –c.
Batasan
Uji buku masak Knife hanya melakukan pemeriksaan sintaks sederhana pada file Ruby dan template ERB. Kami dapat melanjutkan pengujian sepenuhnya dengan menggunakan ChefSpec dan dapur uji.