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 [email protected].
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.