Amazon-Ec2
使用 Puppet 部署 Python 程式碼
我正在嘗試基於 Puppet 為我的 Web 應用程序實現部署系統。
該應用程序包含多個服務(幾個 Web 伺服器:基於 Django 和 Tornado 以及一個基於 Celery 的工作器)。他們生活在不同的
git
儲存庫中,託管在 github 上。我在以前的項目中使用過 Chef。在 Chef 的情況下,部署這樣的東西會很容易:我只需使用
git
資源來檢查這個特定節點的必要程式碼,然後設置其他所有內容。但是,我不明白它是如何在 Puppet 中完成的。我沒有
git
在文件中找到類型。我試過用Google搜尋它,但從我發現的情況來看,git
從 Puppet 簽出和更新程式碼似乎不是一項通常的任務。顯然,我假設的工作流程對於 Puppet 來說有些不同尋常。我可以試試別的。使用 Puppet 部署此類應用程序的自然方式是什麼?
我會使用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, }
一般來說,當您希望在緊迫的時間內完成任務時,Puppet 不是一個好工具。這些任務的 Puppetlabs 解決方案是MCollective,我使用過但不喜歡它。