Is there a way to run the handlers with a different serial value than the rest of the play ?
What I want is to install my services in large batches (usually, on all the machines at once) and if any of those services needs to be restarted, I want to perform that operation on X machines at a time.
Ideally, the X value should be decided for each particular service: e.g. I want to restart postgresql instances one at a time and I want to restart nginx on 30% of the hosts at a time.
However, the installation needs to be done on all the machines in parallel, as I usually have no reason to do this sequentially (restarts are rarely required).
Is this possible with handlers ? Or can I trigger handlers from a different play ?
Or, at least, is there some best practice recommendation for how to achieve this ?
No, handlers run with the play settings, so you can do serial: 30% but that will affect both the install and the handler. The other way to do it is to separate it into 2 plays with different serial, but then they are not really handlers.
I wanted a confirmation for this because I feel like it makes the roles and handlers hardly unusable in a real cluster environment
and it shouldn’t be addressed with workarounds. I’ll try to see if I can come up with a patch and submit it for review.