2017-02-22 69 views
0

想象詹金斯產生3個不同的分佈 - 一個上的NodeJS運行JavaScript,另一對與Python模塊運行Apache蟒蛇,另一個在Java中使用Springboot。你如何編寫一份Chef烹飪書,將它們全部安裝在僅有最少Linux ubuntu發行版的本地基礎架構上。問題的範圍涉及從Jenkins捕獲觸發器,然後啓動Chef書籍來部署這3個應用程序。根據配置,所有3個應用程序都應該部署在相同或不同的部署基礎架構上。如何寫一個廚師食譜多種應用

+0

歡迎來到StackOverflow。請閱讀[我如何問一個好問題](http://stackoverflow.com/help/how-to-ask)。你的廣泛程度令人難以置信,我會說「好吧,就這麼做,問題在哪裏」?你應該清楚地說明你面臨的問題。 – StephenKing

+0

P.S:這些_playbooks_在廚師術語中稱爲_cookbooks_。我已更新你的問題。 – StephenKing

回答

0

那麼幾件事情:

  1. 你怎麼寫的食譜是你的全部。我在Python,Ruby和Node上有http://github.com/poise/application_examples的一些例子,但這只是我對這個主題的看法。每當你問「我如何與廚師做X?」答案總是「如果沒有廚師,你會怎麼做X,然後自動化」。

  2. 如何從詹金斯觸發展開時比已經非常模糊的回答更模糊一點。最簡單的答案是讓Jenkins SSH進入每臺機器並運行chef-client。但是,這可能會導致您不喜歡的安全隱患。您可以查看更多專用的命令推送系統,如MCollective,SaltStack或Chef推送作業(儘管我會跳過最後一個)。您也可以將節點設置爲每5分鐘自動收斂一次,這樣所有Jenkins都會更新Chef Server中的某些內容來說明要部署哪個版本,然後等待10分鐘。

0

我和你有類似的情況,使用TeamCity而不是Jenkins。 (但你可以複製類似的行爲)

在我來說,我使用policy_files來管理我的基礎設施,在這裏我通過在屬性中生成信息,所以我可以在配方下載文物。 主要的竅門是有這是由你所提到的服務引發了構建(Python和Java的...等等),更新的屬性(版本ID,假象的名字......)在policy_file,承諾GIT結果的時候。

這樣概括:

爲您服務
  1. 構建完成。
  2. 一個建立你的policy_files被觸發更新假象下載信息。
  3. 您平時的構建工作流程。

爲了下載文物,您可以使用remote_file chef資源,進行校驗和驗證,以避免每個廚師跑上下載相同的文件。