2015-11-27 40 views
1

我剛剛開始在工作中使用CHEF,並且我被要求將包下載到Linux主機,將其解壓縮,應用許可證並啓動它。在CHEF中插入並修飾ini文件中的文本

作爲解包的一部分,創建的ini文件應包含許可證信息。許可證文件本身與ini文件[許可證]部分相同,但其他章節中還包含更多詳細信息。

我想要做的是搜索ini文件的許可證塊,然後將許可證文件中的詳細信息插入到它。

所以ini文件看起來像這樣最初

[Licence] 
;You have to complete this section to start 

[users] 
admin=admin 

[roles] 
admin = admin, operate, user 

[modules] 

我的許可文件會是這樣

[licence] 
Serial=123456789 
baa=3 bags full 
Key=123456789 
ExpireDate=2016-06-10 00-00-00r 

我不知道廚師做到這一點的最好辦法。我有幾個問題

  1. 我應該使用具有值的模板並在我的配方中創建它嗎?
  2. 我可以使用Ruby來做到這一點嗎?我將如何將它帶入我的食譜?
  3. 如何檢查已存在的行並確保不覆蓋它?

感謝您的幫助

回答

2

要做到這一點是廚師,最好的辦法是管理整個文件,並使用template resource。如果您真的想嘗試第二或第三個項目符號點,請查看line cookbook以獲取就地文件編輯的一些示例(並使用not_if來防止附加行兩次)。

重新迭代,儘管 - 使用模板管理與廚師的整個文件。這是Chef中最常用的方式。