2015-12-22 30 views
0

我寫了一個Puppet(3.6.2)模塊,它通過extlookup函數從CSV文件中讀取數據字段,我無法弄清楚如何告訴extlookup第一行是標題字段。 extlookup支持這個嗎?如果沒有,任何人都可以推薦一個我可以導入和使用的外部函數?Puppet - CSV文件標題

感謝,

PS - 是的,我知道hiera,並具有YAML或JSON文件中的數據,但我的要求是CSV文件只。

布蘭登

回答

1

extlookup()的行爲是相當不錯documented。它沒有特別規定列標題,這絕不是CSV格式的固有特徵。事實上,如果您的標題行不可讀爲數據行,那麼您的文件根本不是CSV。

假設您的文件確實是有效的CSV文件,絕對最簡單的解決方案就是忽略該問題。只有在第一列標題重複實際或潛在的數據名稱時,它纔會出現問題。如果沒有,那麼你永遠不會查找或使用第一行代表的僞值。

如果您的文件實際上因爲其第一行而不是CSV,或者如果第一個列名與實際數據名衝突,那麼看起來下一個最佳替代方案就是刪除該行或避免首先創建它。我認爲沒有任何理由說明爲什麼不應該這樣做。

我知道heira,並有YAML或JSON文件中的數據,但我的要求是隻有CSV文件。

有多難過。請注意,extlookup()早已被棄用,並且已從Puppet 4中刪除。

我傾向於建議您實施從CSV轉換爲Hiera友好型YAML的翻譯器,並在您的模塊中使用Hiera。或者,Hiera支持自定義後端,編寫一個並不難。我不知道Hiera現有的CSV後端,但你可以寫一個。忽略標題行將在您的控制之下,並且您將同時實現一種面向未來的措施。