Restart script

One of the advantages of running a zeocluster configuration is that you may restart your Zope/Plone clients without downtime. To make this easier, the Plone playbook builds a couple of utility scripts to coordinate restarts. You’ll find these scripts in the scripts subdirectory of your Plone install.

  • restart_clients.sh restarts all clients sequentially.
  • restart_single_client.sh will restart a single client.

Here’s how it works. The restart_clients.sh script will iterate through all of the clients for an install. For each, it will:

  • Mark the client “down” with the load balancer so that it’s temporarily taken out of the cluster
  • Stop the client, wait a bit and restart it;
  • Request one or more pages from this client for each virtual host operating on this Plone instance;
  • Mark the client up with the load balancer so that it starts getting requests again.

Optionally, the script will finish by clearing the Varnish cache for each virtual host. You may prevent this by adding noflush to the restart_clients.sh command line.

The restart_single_client.sh does the same for a single client, specified by number on the command line. The Varnish cache is not touched.

Both scripts must be executed as superuser, usually via sudo. The extra permissions are required to control supervisor, haproxy and Varnish.

Restart script options

The restart script mechanism has one playbook setting, warm_paths, which is used to specify paths that should be requested in order to warm the ZODB cache for the instance. This is specified in a webserver_virtualhosts block.

warm_paths

webserver_virtualhosts:
  - hostname: plone.org
    zodb_path: /Plone
    warm_paths:
        - /
        - /support
        - /contribute
    ...

In this example, the restart scripts will request the ZODB paths /Plone/, /Plone/support and /Plone/contribute from each client before returning it to the load-balancer cluster.

The default value of warm_paths is ‘/’ alone.