Chef - Mẫu

Trong cơ sở hạ tầng, configuration managementlà tất cả về cách một người cấu hình máy chủ tốt như thế nào. Nói chung, tất cả các cấu hình được thực hiện bằng cách sử dụng các tệp cấu hình. Chef sử dụng các mẫu để có thể điền vào tệp cấu hình với các giá trị động.

Chef cung cấp các mẫu như một tài nguyên có thể được sử dụng trong công thức nấu ăn. Giá trị động của tệp cấu hình có thể được truy xuất từ ​​các túi dữ liệu, thuộc tính hoặc thậm chí tính toán chúng bằng cách chuyển chúng vào mẫu.

Làm thế nào để sử dụng nó?

Step 1 - Thêm mẫu vào công thức.

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 - Thêm ERB Tệp mẫu.

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

Step 3 - Tải sách nấu ăn đã sửa đổi lên máy chủ 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 - Xác thực nội dung của tệp tải lê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!

Quy trình làm việc

Chef sử dụng Erubis làm ngôn ngữ mẫu của nó. Nó cho phép nhúng mã Ruby thuần túy bên trong các ký hiệu đặc biệt trong các mẫu.

  • <% =%> được sử dụng nếu bạn muốn in giá trị của một biến hoặc biểu thức Ruby vào tệp được tạo.

  • <% -%> được sử dụng nếu bạn muốn nhúng logic Ruby vào tệp mẫu của mình. Chúng tôi sử dụng nó để lặp lại biểu thức của chúng tôi bốn lần.