首页 > 代码库 > Django 1.6 最佳实践: django项目的服务器自动化部署(转)

Django 1.6 最佳实践: django项目的服务器自动化部署(转)

原文:http://www.weiguda.com/blog/41/

当我们设置服务器时, 不应该每次都使用ssh登录服务器, 再按照记忆一步一步的配置. 因为这样实在是太容易忘记某些步骤了.

服务器设置应当自动化, 并写成文档. 在django用户中, Ansible, SaltStack, Puppet和Chef是最流行的四款自动化部署工具. 这些工具似乎都需要长时间学习才能使用, 因为这些工具不是为一台服务器设置的, 而是针对多台服务器的. 以下是这些工具的基本功能:

  • 远程通过apt-get或其他包管理系统安装软件包
  • 远程运行命令
  • 远程启动, 重启各项服务
  • 记录远程运行的命令和其结果
  • 创建或更新服务配置文件
  • 为不同服务器载入不同的配置文件
  • 部署和更新项目代码

比较表:

工具优势劣势
SaltStack主要用push模式; 使用0mq传输快; 许多例子; 庞大的社区支持; 开源; 由Python写成较复杂
Ansible主要用push模式; 可使用Fireball模式加速传输; 不需要远程进程运行; 使用YAML语言设置; 开源; 由Python写成新项目, 例子较少, 没有官方WSGI和Django配置例子
Chef有许多例子; 庞大的社区支持; 开源难学; 由ruby写成, 配置也是ruby语言;
Puppet庞大的社区支持; 开源较难学; 由ruby写成; 配置文件由自定义DSL设置
   

Fabric和Invoke则是专注于远程运行命令, 常可以和以上四个工具配合使用.

现在的趋势是更多的使用SaltStack或Ansible, 因为使用Python写成的, 所以更利于Python用户深入了解. 但需要注意的是, 这些趋势会变化, 如果想了解最新的趋势, 需要我们多关注相关的博客.

Django 1.6 最佳实践: django项目的服务器自动化部署(转)