Tôi đang sử dụng opscode nginx cookbook để định cấu hình máy chủ nginx trên các nút của tôi. Sách nấu ăn nginx có một số thuộc tính mặc định tôi muốn ghi đè trong vai trò của mình ("web_server").Chef: Làm thế nào để ghi đè lên các thuộc tính mặc định trong các vai trò?
Đây là những thuộc tính tôi muốn ghi đè lên:
default['nginx']['version'] = "1.2.2" # in cookbooks/nginx/attributes/default.rb
default['nginx']['source']['prefix'] = "/opt/nginx-#{node['nginx']['version']}" # in cookbooks/nginx/attributes/source.rb
Trong vai trò của tôi/file web_server.rb Tôi có một cái gì đó như thế này:
name "web_server"
description "Setup a web server"
run_list "role[base]", "recipe[nginx]"
override_attributes 'nginx' => {
'install_method' => "source",
'version' => "1.2.3",
'source' => { "prefix" => "/opt/nginx", "checksum" => nil }
}
Tuy nhiên, khi chạy chef- khách hàng công thức nginx bỏ qua phần ghi đè của tôi và sử dụng các giá trị mặc định.
Tôi đang làm gì sai ở đây?
Cảm ơn!
Bạn chưa quên tải vai trò lên đầu bếp-máy chủ (nếu bạn đang sử dụng nó)? –
Bạn có đang chạy đầu bếp-khách hàng có hoặc không có danh sách chạy tùy chỉnh (-o) không? Hôm nay tôi đã học được (sau 2-3 giờ gỡ lỗi) các thuộc tính được đặt trong vai trò/nút không được sử dụng khi ghi đè danh sách chạy. –
Tôi gặp phải vấn đề tương tự:/Tôi khá chắc chắn rằng tôi thiết lập override_attributes trong vai trò, và tôi chỉ sử dụng mặc định trong tập tin thuộc tính của tôi. Tôi cá là đây là loại đầu bếp hay cái gì đó. –