2017-10-10 75 views
0

假設我們有一個節點,名爲mycomputer。它在run_list中有一個作用,如myrole節點如何讀取角色文件?

現在,MYCOMPUTER想訪問和讀取文件的作用,這是目前在它的run_list。

有沒有辦法做到這一點?


我試圖

knife role show myrole 

,因爲它不具備knife.rb和用戶key.pem文件(.chef目錄),因此它不能訪問它。


請讓我知道是否有方法來訪問角色文件, myrole

回答

1

正如你所寫的那樣,節點「我的電腦」在其應用的運行列表中具有給定的作用,所包含的信息有種「自動」可用。確切地說,屬性(和其他運行列表條目)會自動與其他屬性(從環境,食譜等)合併。

因此,如果您的角色「myrole」定義以下屬性:通過

node['apache2']['listen_ports'] 

屬性

default_attributes 'apache2' => { 
    'listen_ports' => [ '80', '443' ] 
} 

這將是您的節點上的廚師運行期間訪問的是廚師的基本概念並且應該解決你的問題,以便在一個角色中定義一些信息,並在某個節點上運行的主廚期間讀取它。

您可以在關於Attribute Precedence的文檔中找到關於該概念的更多信息。沒有真正的方法來閱讀純文件 - 如果你真的認爲你需要這樣做,你用錯誤的方式使用廚師。更好的狀態與你的下一個問題,你的最終目標是什麼。

+0

我的要求是從角色文件訪問屬性。是的,你是對的,它們會與* node *中的屬性合併。我忽略了這部分,確實使用了「廚師以錯誤的方式」。感謝您耐心地幫助我:) – srajappa