[请益] 自动化布署(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