[請益] 自動化佈署(Chef, Ansible, Salt)

作者: Sanbeishuu (三杯鼠)   2016-09-18 00:48:06
請問主流的幾款自動化佈署軟體有無較適合單純的update某個web application的呢?
一開始試了Jenkins,發現他好像不是這樣的用途。後來才發現應該是其他的像是
Puppet, Chef, SaltStack, Ansible, Juju?
目前看起來1跟2是Ruby派,3跟4是Python派,小弟是純Java派,所以沒特別偏好。
但如果可以的話是傾向Py派,但其實各款的script好像也不一定是用Py或Ruby寫..
主要使用情境如下:
1. Standalone & portable
希望是可以單純locally的去run,run這一台機器本身的deployment。
貌似這類軟體都是為了cloud management,所以都有server/client的架構。
目前只先略略survey了Chef,應該是有單純Chef-client跑CookBook的功能。
SaltStack有看到masterless跟standalone的documentation的樣子。
另外還希望這是可以portable的,也就是我可以調整好script後打包起來,
然後交給客戶在on-premises的情境下,double click去完成deployment。
2. 只單純的deploy一個Java web application到tomcat
沒有要做複雜的server setup跟provisioning。想達到的其實只是單純的
upgrade某個web application而已。所以整個flow有點類似以下這樣
已經有一個application跑在tomcat。該application有a.xml跟b.properties檔案
a.xml的內容會類似如下
<Property>
<Name>ServerURL</Name>
<Value>192.168.1.2</Value>
</Property>
b.properties的內容會類似如下
database.host=192.168.112.25
database.port=5432
有一個新的版本出來了,當然他是一個war檔。war檔內一樣有a.xml跟b.properties
只是這時war檔內的這些configure値會是default狀態。例如:
<Property>
<Name>ServerURL</Name>
<Value>localhost</Value>
</Property>
database.host=127.0.0.1
database.port=5432
自動化的把war檔解壓,將a.xml跟b.properties內容與正在運行的
application有不同的地方做更改。然後可能必須在壓回去war包,
call tomcat的rest API去進行deploy,如此將web app upgrade,
又不需要人工去處理這些application properties的設定値。
3. Windows platform
Tomcat跑在Windows平台上(Win7, Win10, Win Server 2008, 2012 etc..)
所以等於是master跟client或者說standalone的運行是在Windows平台上。
Chef有Windows的msi安裝檔,還沒確定是否可以portable的包起來。
SaltStack的getting started doc都是Linux版本的範例..
4. Free~
目前看到Chef, Ansible, SaltStack都有付費版本或者提供SaaS。
但應該都有真正的freeware版吧? Ansible看不太出來
只有一個Ansible Tower Free trial
不知道有沒有大大可以建議一下哪一款比較適合簡單的達到這個的佈署呢?
感謝
作者: Dkr (野狗幼稚園大班)   2016-09-18 00:58:00
如果確定沒有要做 provision 的話那可以考慮用 fabric 就好
作者: AlanSung   2016-09-18 01:36:00
只要 masterless 的話,就 ansible 了
作者: Hevak (Arthow Eshes)   2016-09-18 01:47:00
docker不能滿足你的需求嗎@@?啊…我好像誤會了,當我沒說話orz
作者: derekx (let profit run)   2016-09-18 07:27:00
Puppet, Chef, SaltStack, Ansible 這四個我都用過我推薦使用 ansible, 學習門檻低,好用適合大部分的場景
作者: loseptt (loseptt)   2016-09-18 07:42:00
java就weblogic惹
作者: johnlinvc (阿翔)   2016-09-18 10:32:00
不用provision, 不用ssh, 又要windows就powershell 吧
作者: lovdkkkk (dk)   2016-09-18 11:25:00
要解壓 war, 換檔再包回去的話寫個 jar 就好惹 @@
作者: yyc1217 (somo)   2016-09-18 11:35:00
應該可以用gradle完成這些工作 然後用Jenkins執行grade build就好
作者: jlhc (H)   2016-09-18 15:35:00
推ansible... 最不推chef..
作者: Twinkling (哈囉)   2016-09-19 17:09:00
Chef難用但功能最強

Links booklink

Contact Us: admin [ a t ] ucptt.com