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

看板Soft_Job作者 (三杯鼠)時間9年前 (2016/09/18 00:48), 9年前編輯推噓8(806)
留言14則, 10人參與, 最新討論串1/4 (看更多)
請問主流的幾款自動化佈署軟體有無較適合單純的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 不知道有沒有大大可以建議一下哪一款比較適合簡單的達到這個的佈署呢? 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.194.224.251 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1474130889.A.EE7.html ※ 編輯: Sanbeishuu (123.194.224.251), 09/18/2016 00:48:44 ※ 編輯: Sanbeishuu (123.194.224.251), 09/18/2016 00:50:48

09/18 00:58, , 1F
如果確定沒有要做 provision 的話那可以考慮用 fabric 就好
09/18 00:58, 1F

09/18 01:36, , 2F
只要 masterless 的話,就 ansible 了
09/18 01:36, 2F

09/18 01:47, , 3F
docker不能滿足你的需求嗎@@?
09/18 01:47, 3F

09/18 01:48, , 4F
啊…我好像誤會了,當我沒說話orz
09/18 01:48, 4F

09/18 07:27, , 5F
Puppet, Chef, SaltStack, Ansible 這四個我都用過
09/18 07:27, 5F

09/18 07:28, , 6F
我推薦使用 ansible, 學習門檻低,好用
09/18 07:28, 6F

09/18 07:28, , 7F
適合大部分的場景
09/18 07:28, 7F

09/18 07:42, , 8F
java就weblogic惹
09/18 07:42, 8F

09/18 10:32, , 9F
不用provision, 不用ssh, 又要windows就powershell 吧
09/18 10:32, 9F

09/18 11:25, , 10F
要解壓 war, 換檔再包回去的話寫個 jar 就好惹 @@
09/18 11:25, 10F

09/18 11:35, , 11F
應該可以用gradle完成這些工作 然後用Jenkins執行grade b
09/18 11:35, 11F

09/18 11:35, , 12F
uild就好
09/18 11:35, 12F

09/18 15:35, , 13F
推ansible... 最不推chef..
09/18 15:35, 13F

09/19 17:09, , 14F
Chef難用但功能最強
09/19 17:09, 14F
文章代碼(AID): #1NtNF9xd (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1NtNF9xd (Soft_Job)