Chef/Fabric/Puppet用于简单LAMP开发的替代方案?

you*_*ian 10 php lamp puppet chef-infra

我终于承诺真正学习软件设计过程,以提高我的技能和发展我的业务.这意味着采用版本控制(git),设置开发阶段生产环境并尽可能保持这些环境的配置.

在选择自动化和同步我的服务器设置的解决方案时,我真的赶上了最后一步.我看过Chef,Puppet&Fabric,但就我的目的而言,它们看起来都过于复杂.我是:

  • 在单个服务器上开发小型Web应用程序
  • 将在具有中级PHP和UNIX技能的LAMP环境中开发
  • 不会大量修改环境变量(主要是php.ini,apache configs)

对于比掌握复杂的Chef环境或学习Python使用Fabric更容易实现的解决方案,我将不胜感激.如果有必要,我可以这样做,但我希望有一个更基本/更优雅的解决方案,因为我非常简单的需求.

Cle*_*man 8

在我工作的公司,我们或多或少有相同的需求,我们只设置了几个bash脚本.

基本上它设置了git repo(本地和远程裸),安装apache2和PHP5(和一些php扩展),配置apache的vhost,php.ini,安装框架和bootstrap项目,如果需要(对我们来说是symfony).

我们有另一个脚本,可以激活一些EC2实例,运行前面提到的脚本,启动测试套件,然后下载这些脚本的报告.

Chef&Puppet工作得很好,但它有点矫枉过正,除非你有很多项目在同一时间运行.

编辑:

如果要在提交/推送后运行脚本(例如部署到登台/预生产服务器,启动持续集成构建等),可以使用git调用来实现此目的post-hook,请参阅使用Git push部署项目


som*_*off 5

我强烈建议您为此目的查看Ansible.

它是一个完整的解决方案,这意味着它可以处理配置管理,部署等.但是,根据我的经验,比Chef或Puppet更容易学习,因为您可以从执行基本的shell命令开始并从那里继续前进.

没有必要学习一门新语言; 您将要做的所有配置和规范都是在YAML中完成的,YAML只是结构化文本.

总的来说,Ansible将为您提供大部分Chef或Puppet将在您的级别上的内容,并希望您会发现它更容易入门.