跳转到主要内容

一个基于Fabric的工具,用于在Ubuntu/Nginx/Supervisord/Gunicorn堆栈上部署WSGI应用程序。

项目描述

概述

Silk是一个基于Fabric的工具,用于在所谓的SNUG堆栈上设置Python WSGI应用程序。

  • Supervisord用于启动进程并保持其运行。

  • Nginx用于在您的WSGI应用程序和大型网络之间进行代理。

  • Ubuntu作为首选操作系统,通过apt解决系统依赖关系。Debian也可能适用,但尚未经过测试。

  • Gunicorn用于托管您的WSGI应用程序。

(我想它也可以是GUNS堆栈,但这个名字听起来不够友好。)

主要功能

  • 使用单个命令(“silk push”)将您的网站部署到一台或多台服务器。

  • 自动配置Nginx、Supervisord和Gunicorn,以便使您的网站运行。

  • 将每个网站隔离到单独的Virtualenv

  • 根据您部署到的角色支持不同的应用程序配置(例如,在测试和生产中使用不同的数据库)。

安装

使用pip

pip install silk-deployment

您还可以直接从Bitbucket安装当前的开发版本

pip install hg+http://bits.btubbs.com/silk-deployment#egg=silk-deployment

命令

以下大多数命令都需要您指定一个角色名称,例如“silk dosomething -R dev”。

通常可以从网站根目录或其任何子目录中运行命令。

push

silk push -R rolename

此命令是Silk存在的主要原因。它执行在site.yaml中指定的配置和所选角色.yaml文件中指定的配置下在主机(或主机集)上运行应用程序所需的工作。‘push’执行以下操作

  1. 通过SSH连接到角色配置中指定的远程服务器。

  2. 将本地机器上的站点复制到远程服务器上的临时目录。

  3. 为站点创建一个 virtualenv。

  4. 将 Python 依赖项安装到 virtualenv 中。

  5. 为 nginx 和 supervisord 编写配置文件包含项。

  6. 为站点编写 supervisord 配置文件并启动它。

  7. 向主页发送请求以确保站点正在运行。

  8. 告诉 nginx 将流量路由到新实例而不是旧实例。

运行

silk run -R rolename

此命令从本地机器上的端口 8000 运行站点。(不会推送或复制任何内容。)site.yaml 文件中的 static_dirs 部分列出的静态目录也将被提供。(这里使用 CherryPy 来实现这一功能。)

骨架

silk skel sitename

创建一个包含基本 Silk 文件和目录结构的目录。

布局

一个启用 Silk 的项目应该布局如下

mysite.com
├── fabfile.py
├── membrane.py
├── requirements.txt
├── roles
│   ├── dev.yaml
│   ├── staging.yaml
│   └── production.yaml
├── site.yaml
└── my-django-project

其中一些文件/文件夹是必需的,其他是可选的

必需

  1. site.yaml - 这是主要的配置文件(类似于 Google App Engine 中的 app.yaml)

  2. requirements.txt - 一个与 pip 兼容的 Python 包名称和版本列表。

  3. roles/*.yaml - 一个或多个包含根据部署上下文传递给您的应用程序的配置的 'role' 文件。

使用 'silk skel' 命令将创建所有必需文件。

可选

  1. membrane.py - 对于 Django 项目,有一个小型的 shim 来将项目公开为 WSGI 应用程序很有用。我喜欢称它为 membrane.py。您可以使用任何您喜欢的名称,或者根本不使用任何名称,这取决于您的设置。

  2. my-django-project - Silk 不限于 Django;您的 Python 路径上的任何有效 WSGI 应用程序都应可提供。但在我看来,对于 Django 项目来说,将其放在那里是有意义的。

  3. fabfile.py - 一个与 Fabric 兼容的 fabfile,它导入 Silk 的 Fabric 函数。您可以在其中自定义 Silk 的 'push' 函数(我这样做是为了在推送时运行 Django 的 "collectstatic"),或者添加您自己的 Fabric 任务。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。

源分布

silk-deployment-0.3.14.tar.gz (527.1 kB 查看哈希值)

上传时间

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面