Skip to main content

Setup a sandbox environment for deployments based on zc.recipe.deployment

Project description

This recipe can be used to create deployments that are located in a sandbox. This is useful for deploying self-contained buildouts or for development setups that are going to use a deployment recipe in the future.

It is compatible to zc.recipe.deployment and can be used as a drop-in.

It is not intended for system-wide deployments, please use zc.recipe.deployment for that.

Change history

0.1.0 (2008-02-15)

  • Initial release.

Detailed Documentation

Sandbox environments

This recipe creates a sandbox environment for deployments similar to zc.recipe.deployment. It is not intended for system-wide installation but as a sandboxed/development variation of the deployment pattern.

For production, system-wide deployments you can simply switch out a sandbox deployment part with a real deployment part.

A root directory is defined for the sandbox (by default this is parts/${name}) in which the following directory structure is created:

${root}/var/run ${root}/var/log ${root}/etc/ ${root}/etc/cron.d ${root}/etc/init.d ${root}/etc/logrotate.d

Additionally to be able to mix multiple deployments within a single sandbox we compute the following paths compatible to zc.recipe.deployment:

crontab-directory
logrotate-directory
rc-directory
run-directory
log-directory
etc-directory

Also, the user option is setup to match the current user.

Supported options

The recipe supports a single optional option:

root

Optional: The root directory of the sandbox. Will be computed from the section name if not given.

Example usage

We’ll start by creating a buildout that uses the recipe.

>>> import os
>>> write('buildout.cfg',
... """
... [buildout]
... parts = deployment
...
... [deployment]
... recipe = gocept.recipe.deploymentsandbox
... """)

Running the buildout gives us:

>>> print system(buildout)
Installing deployment.
>>> ls(sample_buildout, 'parts')
d deployment
>>> ls(sample_buildout, 'parts', 'deployment')
d etc
d var
>>> ls(sample_buildout, 'parts', 'deployment', 'etc')
d  cron.d
d  deployment
d  init.d
d  logrotate.d
>>> ls(sample_buildout, 'parts', 'deployment', 'var')
d log
d run
>>> ls(sample_buildout, 'parts', 'deployment', 'var', 'log')
d deployment
>>> ls(sample_buildout, 'parts', 'deployment', 'var', 'run')
d deployment

Contributors

Christian Theune, Author

Download

Project details


Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page