Plugin for collective.hostout that starts and stops supervisor during deployment
hostout.supervisor is a plugin for collective.hostout. Hostout is a zc.buildout recipe.
First you need a working buildout using supervisor. Here’s a really simple one.
>>> write('buildout.cfg', ... """ ... [buildout] ... parts = helloworld ... ... [helloworld] ... recipe = zc.recipe.egg:scripts ... eggs = zc.recipe.egg ... initialization = import sys ... main=lambda: sys.stdout.write('all your hosts are below to us') ... entry-points = helloworld=__main__:main ... ... [supervisor] ... recipe = collective.recipe.supervisor ... programs = 10 helloworld bin/helloworld ... ... """)
>>> print system('bin/buildout -N') Installing helloworld. Generated script '/sample-buildout/bin/helloworld'.
>>> print system('bin/helloworld') all your hosts are below to us
Google buildout + your fav app framework to findout how to build it.
Next we add a hostout to our buildout and we extend hostout by adding the supervisor plugin using the “extends” option.
>>> write('buildout.cfg', ... """ ... [buildout] ... parts = helloworld host ... ... [helloworld] ... recipe = zc.recipe.egg:scripts ... eggs = zc.recipe.egg ... initialization = import sys ... main=lambda: sys.stdout.write('all your hosts are below to us') ... entry-points = helloworld=__main__:main ... ... [supervisor] ... recipe = collective.recipe.supervisor ... programs = 10 helloworld bin/helloworld ... ... [host] ... recipe = collective.hostout ... host = 127.0.0.1:10022 ... extends = hostout.supervisor ... parts = hellowworld supervisor ... ... """)
>>> print system('bin/buildout -N') Updating helloworld. Installing host. Generated script '/sample-buildout/bin/hostout'. ...
>>> print system('bin/hostout host') cmdline is: bin/hostout host1 [host2...] [all] cmd1 [cmd2...] [arg1 arg2...] Valid commands are: ... supervisorboot : Installs supervisor into your init.d scripts in order to ensure that supervisor is started on boot ... supervisorctl : Takes command line arguments and runs supervisorctl on the remote host supervisorshutdown : Shutdown the supervisor daemon supervisorstartup : Start the supervisor daemon ...
The following options maybe used
- The name of the supervisor part to stop and restart
- If set the supervisord script will be linked into init.d so any machine restart will also start supervisor
In addition supervisor plugin will shutdown supervisor during pre-deployment and startup supervisor during post-deployment.
>>> print system('bin/hostout host1 deploy') Hostout: Running command 'predeploy' from 'hostout.supervisor.fabfile' Logging into the following hosts as : 127.0.0.1 [127.0.0.1] sudo: /var/lib/plone/host1/bin/supervisorctl shutdown || echo 'Failed to shutdown' ... Hostout: Running command 'postdeploy' from 'hostout.supervisor.fabfile' ... [127.0.0.1] sudo: /var/lib/plone/host1/bin/supervisord ... [127.0.0.1] sudo: /var/lib/plone/host1/bin/supervisorctl status ... Hostout: Running command 'postdeploy' from 'collective.hostout.fabfile' ...
Dylan Jay ( software at pretaweb dot com )
- allows buildout user only deploy
- new sudosupervisor for when you need to boot as root [Dylan Jay]
- Made compatible with collective.hostout 1.0a5 [Dylan Jay]
- Improved startup and shutdown so use only buildout-user + reload rather than “supervisor shutdown” [Dylan Jay]
- falfile entrypoint
- better init.d script
- Moved out of collective.hostout
- upgraded it to fabric 1.0 and python 2.6
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size hostout.supervisor-1.0a4.zip (14.4 kB)||File type Source||Python version None||Upload date||Hashes View|