【发布时间】:2011-07-26 00:21:43
【问题描述】:
2021 年更新
今天我使用 Ansible 来完成这个和其他 devops 任务。在此过程中,我尝试过使用 Chef、Puppet、Saltstack 和 Docker 镜像,但我发现,作为一名在较小项目中工作的独立开发人员,像 Ansible 这样的轻量级工具非常适合。
原始问题(从 2011 年开始)
我刚开始是一名独立的 Web 开发人员,最近我通过提供一个相当简单的报价吓跑了一位客户 网站比他们预期的要高很多。基本上是 他们可以在托管解决方案中自己完成的宣传册软件 像 Wordpress.com 或 Google 网站。除了一个关键功能外, 让我觉得 Django 会很合适,还有一些合适的网络 可以促进发展。
查看我在粗略估计中列出的任务时,它很漂亮 对我来说很明显,那里的大部分时间都不是 特定于该客户网站。这让我想到我应该 有一个脚本来自动化设置和部署新的过程 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 监控
我过去曾使用Rake 和Fabric 来处理一些类似(但不那么雄心勃勃)的东西,我认为 Fabric 可能也非常适合这项任务,但我仍然会喜欢你的输入。还有其他我应该研究的工具吗?我听说不错 关于Puppet 的事情,但仅查看他们的网站(其中包含 Enterprise 一词)就让我觉得这对于单人操作来说可能是矫枉过正。
【问题讨论】:
标签: django deployment installation fabric puppet