As a followup to my last post I’ve been thinking about the best way to migrate over a production server and be able to test the new config without blatting what’s currently running so that the new setup can be tested before blowing the old one away, so what I did was to test having my unicorn setup running and then a separate instance running the standard WEBrick.
On the puppetmaster (with the nginx+unicorn setup already running) I ran:
/usr/bin/ruby1.8 /usr/bin/puppet master --masterport=18141 --servertype=webrick --pidfile /var/run/puppet/thingy.pid --no-daemonize --verbose --debug
and on my test client:
puppetd --test --verbose --debug --detailed-exitcodes --masterport 18141
With a verified client, this should run just fine, and you should see a load of output scroll past on your non-daemonized puppetmaster instance. This shows that we can (as the documentation would imply) run multiple instances of puppetmasterd via different webservers on different ports, so it is possible to set up and test an entirely different puppetmaster instance using nginx+unicorn whilst the production instance is running. Then it’s just a case of changing the config and changing the ports.