使用 Puppet 部署 Python 代码

val*_*lya 6 python puppet amazon-ec2

我正在尝试基于 Puppet 为我的 Web 应用程序实现部署系统。

该应用程序由几个服务组成(几个 Web 服务器:基于 Django 和 Tornado 以及一个基于 Celery 的工作程序)。它们位于不同的git存储库中,托管在 github 上。

我在以前的项目中使用过 Chef。在 Chef 的情况下,部署这样的东西会很容易:我只是使用git资源来检查这个特定节点的必要代码,然后设置其他一切。

但是,我不明白它是如何在 Puppet 中完成的。我还没有git在文档中找到类型。我试过在谷歌上搜索它,但从我发现的情况来看,git从 Puppet检出和更新代码似乎不是一项通常的任务。

显然,我假设的工作流程对于 Puppet 来说有些不寻常。我可以试试别的。使用 Puppet 部署此类应用程序的自然方式是什么?

Dan*_*ral 1

我会使用Fabric来部署 Python 代码——事实上,我就是这么做的。但如果你想要的只是 git 的东西,下面是我使用vcsrepo 模块的puppet 配置的示例:

vcsrepo { '/var/www/gitorious':
    ensure   => present,
    owner    => 'git',
    source   => 'git://gitorious.org/gitorious/mainline.git',
    revision => 'v2.2.1',
    provider => git,
}   
Run Code Online (Sandbox Code Playgroud)

一般来说,当您希望在紧迫的时间内完成任务时,Puppet 不是一个好工具。Puppetlabs 对这些任务的解决方案是MCollective,我已经使用过但不喜欢它。