Şef - Şablonlar
Altyapıda, configuration managementtamamen kişinin ana bilgisayarları ne kadar iyi yapılandırdığıyla ilgilidir. Genel olarak, tüm konfigürasyonlar konfigürasyon dosyaları kullanılarak yapılır. Şef, yapılandırma dosyasını dinamik değerlerle doldurabilmek için şablonlar kullanır.
Şef, tarifte kullanılabilecek bir kaynak olarak şablonlar sağlar. Yapılandırma dosyalarının dinamik değerleri veri çantalarından, özniteliklerinden alınabilir veya hatta bunları şablona geçirerek hesaplanabilir.
Bu nasıl kullanılır?
Step 1 - Şablonu tarife ekleyin.
vipin@laptop:~/chef-repo $ subl cookbooks/<Cookbook Name>/recipes/default.rb
template '/tmp/message' do
source 'Test.erb'
variables(
hi: 'Tesing',
world: 'Welt',
from: node['fqdn']
)
end
Step 2 - Ekle ERB Şablon dosyası.
vipin@laptop:~/chef-repo $ subl cookbooks/<Cookbook Name>/templates/default/test.erb
<%- 4.times do %>
<%= @hi %>, <%= @world %> from <%= @from %>!
<%- end %>
Step 3 - Değiştirilmiş yemek kitabını Şef sunucusuna yükleyin.
vipin@laptop:~/chef-repo $ knife cookbook upload <Cookbook Name>
Uploading my_cookbook [0.1.0]
Run Chef Client on your node:
user@server:~$ sudo chef-client
...TRUNCATED OUTPUT...
[2017-01-14T20:41:21+00:00] INFO: Processing template[/tmp/
message] action create (my_cookbook::default line 9)
[2017-01-14T20:41:22+00:00] INFO: template[/tmp/message] updated
content
Step 4 - Yüklenen dosyanın içeriğini doğrulayın.
user@server:~$ sudo cat /tmp/message
Hallo, Welt from vagrant.vm!
Hallo, Welt from vagrant.vm!
Hallo, Welt from vagrant.vm!
Hallo, Welt from vagrant.vm!
İş akışı
Chef Erubis'i şablon dili olarak kullanıyor. Saf Ruby kodunun şablonlardaki özel sembollerin içine gömülmesine izin verir.
Bir değişkenin veya Ruby ifadesinin değerini oluşturulan dosyaya yazdırmak istiyorsanız <% =%> kullanılır.
Şablon dosyanıza Ruby mantığını gömmek istiyorsanız <% -%> kullanılır. İfademizi dört kez döngülemek için kullanırız.