Ask Your Question

Doing HA with puppet

asked 2013-10-31 02:48:26 -0600

shyp gravatar image

Hello , I am managing a cluster of nodes in puppet , When I am upgrading code I want to make sure my service stay up , Is there any way to manage node dependency in order to prevent a situation that all my nodes in the cluster are been upgraded in the same time . Thanks ,

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2013-10-31 10:25:03 -0600

Ancillas gravatar image

Most people use external tools for orchestration, as Puppet isn't designed for the task you're describing. mCollective, Rundeck, and Fabric are examples of tools I've seen used.

The flow goes something like this.

  1. Disable Puppet on application nodes
  2. Deploy Puppet code to the master
  3. Sequentially run a Puppet sync on each application server, waiting for each server to be fully functional before proceeding to the next
  4. Run a smoke test.
edit flag offensive delete link more

answered 2013-11-02 07:05:47 -0600

lfast gravatar image

What is your non-update HA environment like? I have to assume you're Puppet nodes are behind a load balancer and all your application nodes talk to the LB. Adding to the previous comment...

Jenkins & GO (aka Cruise/CruiseControl) are some other popular orchestration tools.

What I haven't seen in Puppet is anything like a safe shutdown mechanism. By that I mean some way to say "An agent run is in progress, don't shutdown yet" or "we want to shutdown, don't start any new agent runs and wait for current runs to complete."

So I see the ... (more)

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools


Asked: 2013-10-31 02:48:26 -0600

Seen: 327 times

Last updated: Nov 02 '13