4

這可能是我在stackoverflow上提出的最複雜的問題,但我認爲所有持續集成newbs都可能從中受益。首先,我已經閱讀了大量的文檔和許多「入門」內容來理解這一切,但我錯過了將它們連接在一起的大局。AWS,Packer,Vagrant和Chef他們怎麼能一起工作?

我對更高層次的解釋感興趣,可以幫助指導某人圍繞AWS,Packer,Vagrant和Chef設置完整的堆棧CI工作流程。額外的好處是可以讓它與NodeJS,Express服務器配合使用。

這裏有幾個陷阱我很難從所有主題的所有文檔中找到。

  1. 封隔器/流浪者 - 用戶Packer的AWS構建的流浪後處理器生成一個流浪盒......是那個盒子是獨立的嗎?我可以在AWS上刪除實例,並且該框仍可在本地工作嗎?
  2. 有沒有辦法設置上面提到的Vagrant Box,您可以在本地使用廚師進行測試,然後使用相同的打包器/廚師腳本在AWS上生成相同的AMI?我的想法是,你可以確信結果是一樣的。

任何有用的教程也會超級有用。

回答

1

我或多或少和你在同一條船上,剛開始涉足devops世界,但我會盡我所能地盡力回答。

  1. 您應該能夠刪除您的AWS實例,並且您創建的Vagrant框仍然可以工作;您甚至不需要配置AWS實例並只創建一個Vagrant框。

  2. 您可以使用Packer安裝開發包並使用相同的配置與Packer進行部署;從我的理解中,這是Packer正在試圖解決的問題。

要添加多一點這些問題的答案,帕克將創建「黃金映像」,這是在這個意義上,你需要的一切已經下載並配置迅速。該硬幣的另一面甚至是對配置文件的小改動可能意味着創建並上傳了一個全新的Box,可能是700+ MB。

一個好的中間基礎可能是使用Packer創建一個基本的Vagrant Box(比如像Nginx和gcc那樣很可能保持不變的東西),並使用Vagrant與Chef配置一起配置該Box,包括設置節點和安裝要求。

然後,當您準備部署時,可以使用Packer和相同的Chef配置啓動AWS實例。當然,這將創建一個新實例,而不是重新配置現有實例;我不確定Packer是否可以做到這一點,但Chef非常適合配置管理的角色。

有一點額外的,如果你還沒有,你應該考慮控制你的Vagrant配置的版本。此外,它從來沒有傷害開始小和工作的方式。

+0

你有任何教程或樣本可以分享嗎?我一直在尋找嗨和低,似乎無法找到一個顯示使用廚師獨奏作爲提供者的Packer。封裝者文檔中的半頁實際上是不夠的。 – iDVB

+0

我在學習時遵循的教程只是官方文檔,我對Packer並沒有太多的瞭解,所以很遺憾我沒有提供任何教程或示例。 – Crimson

+0

結帳本[演示](https://speakerdeck.com/ndemoor/phoenix-servers-with-packer) – mestachs

相關問題