Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/datakurre/hostout.pushdeploy
Run buildout on you staging server and push the results to your deployment server
https://github.com/datakurre/hostout.pushdeploy
Last synced: about 2 months ago
JSON representation
Run buildout on you staging server and push the results to your deployment server
- Host: GitHub
- URL: https://github.com/datakurre/hostout.pushdeploy
- Owner: datakurre
- Created: 2012-08-26T06:44:59.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2013-07-31T09:52:18.000Z (over 11 years ago)
- Last Synced: 2024-10-15T17:44:48.246Z (3 months ago)
- Language: Python
- Size: 293 KB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- Changelog: HISTORY.txt
Awesome Lists containing this project
README
collective.pushdeploy
=====================Traditionally Plone has been deployed using buildout. That's also how
`collective.hostout `_ works by
default.*collective.pushdeploy* takes a new approach. We assume that 1) you have
separate staging and deployment servers, and 2) those servers have identical
configuration (at least buildout directory paths and Python-paths must be
identical and same Python versions must be used).With *collective.pushdeploy* you can:
* pull production data from deployment server to staging server
* run buildout locally on the staging server
* push the pre-built buildout directory (mainly *bin*, *parts* and *eggs*)
to the deployment server using rsync
* restart the site on the deployment serverNote! *collective.pushdeploy* overwrites most of the default
*collective.hostout* commands.Usage
-----An example *buildout.cfg* for pushdeployment for two separate sites could look
like the following::[buildout]
parts =
first-site
another-site
versions = versions
unzip = true[versions]
zc.buildout = 1.6.3
collective.hostout = 1.0a5[pushdeploy-defaults]
recipe = collective.hostout
extends = hostout.pushdeployuser = root
effective-user = zope[first-site]
<= pushdeploy-defaultshost = example.com
path = /var/buildout/first_siterestart = supervisorctl restart first-site:*
[another-site]
<= pushdeploy-defaultshost = another-example.com
path = /var/buildout/first_siterestart = supervisorctl restart another-site:*
effective-user = m3user
bootstrap-python = /usr/local/virtualenvs/Plone4.2/bin/pythonBe aware, that you can use the complete magic of buildout to abstract your
configuration into separate buildout-files.After buildout, you can use *bin/hostout* command to update your site through
staging:bin/hostout first-site stage
* rsync data (*blobstorage* and *Data.fs*) from your deployment server
* update your staging buildout from its repository (only hg is supported)
* run the staging buildout locallybin/hostout first-site deploy
* rsync your staged buildout (bin*, *parts*, *eggs*) to your deployment
server
* restart your site on the deployment serverAll sub-commands can also be run separately, as follows:
bin/hostout first-site checkout http://dev.example.com/myrepo mybranch
checkout the buildoutbin/hostout first-site update mybranch
update the staging buildout from its repository (only hg is supported)bin/hostout first-site bootstrap
bootstrap the buildout; either the python of the current buildout or using
the configured *bootstrap-python*bin/hostout first-site buildout
run the staging buildout locallybin/hostout first-site pull
rsync data (*blobstorage* and *Data.fs*) from the deployment serverbin/hostout first-site push
rsync your staged buildout (bin*, *parts*, *eggs*) to your deployment
serverbin/hostout first-site restart
restart site on the deployment serverAll of the commands above include proper *chowning* for the updated files.