自动设置和部署Django项目的好工具

oiv*_*vio 13 deployment django installation puppet fabric

我最初是一名独立的网络开发人员,最近我通过给一个相当简单的网站报价来吓跑客户,这个网站比他们预期的要高很多.基本上是宣传册,他们可以在像Wordpress.com或Google网站这样的托管解决方案中完成自己的工作.除了一个关键特性之外,这让我认为Django非常合适,并且可以激发一些适当的Web开发.

在查看我在粗略估计中列出的任务时,对我来说很明显,那里的大部分时间都不是特定于此客户网站的内容.这让我觉得我应该有一个脚本来自动化设置和部署新的Django项目的过程.

还有一些事情需要手动完成,如:

  • 设置新的VPS(或者在大多数情况下,只使用现有VPS上的虚拟主机).

  • 编辑DNS设置以将clientsdomain.com和test.clientsdomain.com指向新的VPS.

  • 设置SSH密钥

  • 编辑配置文件.

然后脚本会执行以下操作:

  • 在新VPS上安装一些必需的软件包

  • 在新VPS上安装默认的iptables防火墙

  • 为clientsdomain.com和test.clientsdomain.com添加nginx/apache配置

  • 设置新的数据库,用于生产和测试VPS以及在本地计算机上进行开发.

  • 创建一个新的Django项目并将其放在Bitbucket上.

  • 设置settings.py和local_settings.py进行生产,测试和开发

  • 为生产数据库和上传的文件目录设置异地备份例程.

  • 启用一些默认应用:flatpages,admin

  • 添加一些样板模板,几个样板平板和导航栏.

  • 添加960.gs CSS框架

  • 添加jQuery

  • 为搜索设置djapian或Haystack(包括用于自动更新的cron作业).

  • 设置新的Google分析个人资料.

  • 包括在生产,测试和开发之间复制数据库的可能性

  • 设置Pingdom监控

我过去曾经使用RakeFabric来做类似(但不那么雄心勃勃)的东西,我认为Fabric也可能非常适合这个任务,但我仍然喜欢你的输入.还有其他工具我应该研究一下吗?我听说过有关Puppet的好东西,但只是看着他们的网站(它包含了企业这个词)让我觉得这对于一个人操作可能有点过分.

mmr*_*ins 8

木偶似乎艰巨和矫枉过正的小项目,因为它是如此经常用于庞大的部署,我却用它来管理一台机器单机模式无需客户端服务器设置,这样我就不必处理SSL证书和多台机器,这让事情变得更简单,但仍然给我带来的好处,我可以做很快的灾难恢复或移动我的托管,而不需要很多努力.有一些很好的理由(幂等性,跨平台支持,完整的生命周期管理,抽象,简洁的DSL),使用现代配置管理系统而不是系统,这些系统本质上是在循环中进行ssh或依赖于锁定你的平台的脚本.

查看学习木偶的快速提升,包括示例和VM游乐场.您可以使用独立运行的简单Puppet脚本(清单)完成非常有用的操作,然后在需要时开始学习所有高级功能.

另一个好处是许多Puppet清单和模块已经由其他人编写,并且它们在Puppet Forge和许多其他高级Puppet用户上共享.


oji*_*jii 4

我们目前采用的是 Fabric+buildout 来实现。其他人说 Chef 或 Puppet 更适合(如果您想做服务器级别的事情,而不仅仅是应用程序级别,那么可能确实如此)。

另外,对于 Django,有一些专用的托管程序可以减轻您的负担,我特别喜欢http://ep.io ,我们用它来为django-cms的演示提供全自动部署,所以也许您应该看看也可以选择那些托管提供商,而不是将自己限制在 VPS 上,因为这对您来说开销更大。