Hi all,

Looking for advice.

We're about to deploy queue-workers, which are essentially a shell-script 
which calls the PHP binary which keeps running and polling the jobqueue for 
jobs. Each website that we deploy to a server will get a queue-worker. 
These workers (there will be multiple per server) need to be kept running 
and should be started on boot, etc.

Sound like an init-script for each worker would do the trick. My goal is to 
make it easy for developers to deploy new workers, i.e. they should be able 
to create a new init-script, pointing to the location of their 
shell-script, and be able to count on it getting deployed and started on 
the server.

In other words:
1. The developer writes a shell-script called queue.sh and deploys it in 
the root of the website's directory. The shell-script starts the php cli 
binary which keeps running until it's stopped or dies for some reason. 
2. They call a single define in our Puppet code that takes the path to 
queue.sh as a parameter and ensures the init-script is created from a 
template.
3. The server picks up the init-script and starts managing the service.
3. The init-script takes care of running the queue.sh script at boot and 
can stop/restart it when needed. 
4. Repeat for each website.

For the moment, we're on Ubuntu 14.04 so Upstart scripts would be a logical 
choice. In the future we'll move to Ubuntu 16.04, with systemd.

I created a define that we can add to a node manifest. Here's an example of 
how I imagine calling this define:

site::queueworker { 'website01': path => '/var/www/website01/queue.sh' }

This drops a new Upstart init-script in /etc/init/ based on a template:
/etc/init/queue-website01.conf

I'm unsure if/how I can immediately use this new Upstart service in a 
service, e.g.: service {'queue-website01': ensure => running, enable => 
true}. I mean, how do Puppet and the init system know about the new service?

Will that work, or am I going about this completely the wrong way? Should I 
be using supervised or something else instead?

Thanks for any advice you can give.
Martijn

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/3c2f1b1b-928d-441d-b3e1-461e60341842%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to