2011-10-16 8 views
20

Tôi đã cố gắng tìm ra cách lấy tên của nút (knife bootstrap -N) thành một mẫu. Tôi đã thử hàng chục ý tưởng khác nhau và chưa tìm thấy bất kỳ thứ gì có hiệu quả. Có ai biết làm thế nào để truy cập này từ một công thức đầu bếp?Tên nút trong Mẫu đầu bếp?

Ngoài ra - có cách nào để liệt kê tất cả các biến có sẵn cho công thức Đầu bếp không?

Trả lời

30

Bạn có thể sử dụng Chef::Config[:node_name] trong công thức của mình. Tôi tìm thấy điều này trong cuốn sách nấu ăn đầu bếp-khách hàng từ Opscode.

+2

Tôi đồng ý với @anaudmeuret, giải pháp này làm việc cho tôi trong Shef và trong công thức, nơi câu trả lời được chấp nhận không. – jslatts

+1

Câu hỏi ban đầu là cách truy cập tên nút trong mẫu. Câu trả lời này không làm việc cho điều đó. Trên thực tế, <% = node.name%> là cú pháp hoàn chỉnh cho tệp .erb và là cách truy cập tên nút trong mẫu. – Andrew

+0

Dường như cú pháp mẫu và cú pháp công thức khác nhau. Tôi có một mẫu sử dụng cú pháp <% = node.name%> Và chỉ cần sử dụng cú pháp Đầu bếp :: Config [: node_name] ở trên trong công thức – jorfus

34

Một cách ngắn gọn hơn sạch hơn được hiển thị trên trang Attributes wiki: "nút"

node.name 
+1

Điều này cho phép FQDN. Bất kỳ cách nào để có được tên ngắn? –

+2

Tôi không biết cách đầu bếp để làm điều đó, nhưng node.name.split ('.') [0] hoạt động ok –

+2

Bạn nên luôn sử dụng cú pháp nút [: attribute] khi nhận các thuộc tính của đầu bếp. Thuộc tính ohai ohai nằm ở nút [: tên máy chủ] –

4

Để xem tất cả lệnh nút cụ thể thuộc tính loại

knife node edit <name> -a 

phím mức đầu tiên tiếp cận với tiếp đầu ngữ.

{ 
    "name": "n1", 
    ... 
    "hostname": "chef-n1", 
    "fqdn": "chef-n1.dan.lan", 
    "domain": "dan.lan", 
    "ipaddress": "192.168.4.4", 
    "macaddress": "52:54:00:72:E7:C5",