2015-01-09 29 views
0

這是我的knife.rb文件。在這我想將node_name設置爲該本地機器的fqdn。我不想手動鍵入它。
因爲我必須在n臺機器上使用它。我只寫了默認屬性來獲取機器的fqdn。
它給紅寶石語法錯誤如何在knife.rb中設置本地機器的fqdn

log_level    :info 

log_location    STDOUT 

client_key    '/etc/chef/client.pem' 

node_name    '#node['fqdn']' 

chef_server_url   'myserverurl' 


SyntaxError: /root/.chef/knife.rb:5: syntax error, 
unexpected tIDENTIFIER, expecting end-of-input 
node_name    '#node['fqdn']' 
            ^

相關文件內容:

4: client_key    '/etc/chef/client.pem' 

    5: node_name    '#node['fqdn']' 

    6: chef_server_url   'myserverurl' 
+0

而不是'#node ['fqdn']'也嘗試使用<%= node ['fqdn']%>它也顯示相同的語法錯誤。 – VVijay

回答

0

我同意Tensibai和coderanger,這是不是你的最好的辦法,但如果你真的想這樣做的話,我會建議你伸出機器問問。

node_name `hostname --fqdn` 

OR

node_name `hostname` 

取決於你是否希望FQDN與否。當然,這兩種都假設你在主機上設置了一個有效的主機名。

0

節點屬性是一個廚師配方的事情,他們不存在的配置(一般上無效的Ruby語法的頂部)。對你來說幸運的是,FQDN已經是默認的node_name了,所以不要指定一個!

+0

如果我沒有指定節點名稱,則會顯示分配節點名稱的錯誤。如何使它工作這個knife.rb文件 – VVijay

0

按照評論:

生成與廚師knife.rb文件,如果你真的想要它。

在食譜中使用模板資源,該模板資源將從.erb文件生成knife.rb,您將在其中包含<%= node['fqdn'] %>,如coderanger所述。

但我強烈建議不要這樣做,因爲您的配置系統應該已經處理了一個節點的銷燬/重新創建,所以它更像是管理主廚中的節點和客戶端而不是節點本身的地方。

老:

爲什麼你想用刀子所有節點上?

刀應該是在工作站上使用的管理節點,cookbboks等

請解釋一下你的使用情況的管理工具,所以我們可以編輯和指導你試圖達到的目的。這是一個XY存在的問題(關於這個問題的一個工具,而不是問題的問題)

+0

其實我想從該節點本身刪除我的節點。所以我寫這個knife.rb文件。如果我把我的fqdn放在那個node_name中,它可以正常工作。但是對於n個節點,我怎麼能做到這一點? – VVijay

+0

爲我們的案例編輯答案,即使我認爲這是一個概念錯誤有一個節點刪除自己。 – Tensibai

+0

刀節點刪除-y $(主機名-f)。當我從該節點本身執行這項工作很好,只是我設置機器 – VVijay

相關問題