這系列文章預計依序分享 Vagrant,Packer ,salt(saltstack)和chocolatey 等open source tool
希望能讓與我有相同需求的 Programmer 或 IT 能夠因此節省不少時間
現在的技術更新神速,東西永遠學不完啊
嘆 ~
So ~ 在開始學習這些tool之前,先看看你是否與我有相同的問題吧?
小弟我身為一個測試人員,軟體本身支援的平台都要能夠隨時取得並測試。以敝公司軟體為例,它支援windows, freebsd, linux, solaris, mac等platform。對於測試的環境而言,不止不同的平台,同個平台不同的版本也必須測試。你可以很容易想像,當 platform數*版本數*其他環境變數(如windows SP1, SP2) 隨便計算都會有三四十種環境必須要能夠隨時取得。如果平常沒有準備好這些環境,要測試時再去安裝,這...會被fire吧XD
以前一個問題而言,使用Public Cloud 如 AWS, Azure 其實就可以解決隨時取得平台的問題。
最理想的狀況當然就是只挑一種公有雲來使用,更有許多公司的服務是完全依賴AWS的。但現實狀況是,公司中已經有 Vsphere 的環境,也投資了許多實體機器,放著不用浪費。而且大量檔案的傳輸當然還是公司內部的網路快。再者,windows 8, windows 7等以我目前所知只有Azure可以建立。所以,每朵雲各有好壞,成本也各有不同。以我而言,我要大量建立windows vm時會用Azure,有急迫需求的用vphere 或是 vmware workstation/fusion。平常沒事就多用AWS (菸~) 同時要使用這麼多不同的服務,有一個統一的管理是非常方便的。而 Vagrant 就是有這麼強大的功能。
在使用Vsphere,或是你的Virtualbox,Vmware Workstation/fusion。我們都會建立一個基本的範本 VM(template),然後需要時再用Clone 的方式建立。這樣對於大量建立機器才會方便。問題是範本 VM仍然要維護啊,經常又要打開,run windows update,安裝需要的軟體,再存回snapshot,每次總是一兩天又過去了。本系列文章教你如何用Packer + CI(Jenkins) 讓建立範本VM 自動化。
開vm越來越方便,機器越來越多。如果你要管五十台機器還要一台一台機器ssh進去管理我想你應該會...
所以我們需要一個可以同時對大量機器跑 script 的工具。如果你是IT,我想你一定早就聽過**Chef**, Puppet, **Ansible**等等。
我想要介紹的 Salt,其實是同樣功能的 provision tool。
不一定值得學,只是如果你喜好的程式語言是python,Salt會是你的首選。
最後,讓我們來看看官方網站的"Why"
Vagrant site source code
“Create and configure lightweight, reproducible, and portable development environments.”
輕巧,好複製是Vagrant的重點。之後的文章就能體會到。
Packer site source code
“Packer is an open source tool for creating identical machine images for multiple platforms from a single source configuration.”
Packer 就是一套用來建立"機器映像檔"的工具。我相信很多人用過ghost 吧?Packer 其實一樣,只是更強大,更輕巧。
Salt site source code
“Salt is a new approach to infrastructure management. Easy enough to get running in minutes, scalable enough to manage tens of thousands of servers, and fast enough to communicate with them in seconds.”
Salt 強調他們的tool 是贏在速度,我沒有花時間去比較。若有興趣請參考連結
Chocolatey site source code
“Chocolatey NuGet is a Machine Package Manager, somewhat like apt-get, but built with Windows in mind.”
就是屬於windows 平台的apt-get,你如果大量使用windows 環境不能不知道的工具!!這個超簡單,不要等我介紹直接用吧XD
===============
如何?有提起你的興趣嗎?
下篇文章開始介紹Vagrant
Stay tuned!
===============
附註
圖片來源: http://bbs.kaspersky.com.cn/forum.php?mod=viewthread&tid=614845