Szef kuchni - szablony

W infrastrukturze, configuration managementchodzi o to, jak dobrze konfiguruje się hosty. Ogólnie rzecz biorąc, wszystkie konfiguracje są wykonywane przy użyciu plików konfiguracyjnych. Szef kuchni korzysta z szablonów, aby móc wypełnić plik konfiguracyjny wartościami dynamicznymi.

Szef kuchni udostępnia szablony jako zasoby, które można wykorzystać w przepisie. Dynamiczne wartości plików konfiguracyjnych można pobrać z worków danych, atrybutów, a nawet obliczyć je, przekazując je do szablonu.

Jak tego użyć?

Step 1 - Dodaj szablon do przepisu.

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 - Dodaj ERB Plik szablonu.

vipin@laptop:~/chef-repo $ subl cookbooks/<Cookbook Name>/templates/default/test.erb 
<%- 4.times do %> 
<%= @hi %>, <%= @world %> from <%= @from %>! 
<%- end %>

Step 3 - Prześlij zmodyfikowaną książkę kucharską na serwer Chef.

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 - Sprawdź zawartość przesłanego pliku.

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!

Przepływ pracy

Szef kuchni używa Erubis jako języka szablonu. Umożliwia osadzanie czystego kodu Ruby w specjalnych symbolach w szablonach.

  • <% =%> jest używane, jeśli chcesz wydrukować wartość zmiennej lub wyrażenia Rubiego w wygenerowanym pliku.

  • <% -%> jest używane, jeśli chcesz osadzić logikę Rubiego w pliku szablonu. Używamy go do czterokrotnego zapętlenia wyrażenia.