I noticed that many cookbooks/playbooks/... are not of particularly high quality, and even if they are they rarely cover all cases. So it should be expanded with my custom logic everytime, while 90% of the *book remains unused (+ adds complexity/reduces ease of modification/lacks unification between *books/...).
In particular, configuration management most of the time is "high-level enough" to not write too many boilerplate even if you implement something from scratch. The only exception might be additional "pure modules" for specific use cases if DSL does not provide enough functionality.
I understand this is pretty subjective, but I'm truly surprised I can't find anything related to this (pretty basic) topic. What is your experience, can we say there is a best practice for when to implement your solution from "scratch" or use the existing infrastructure/deployment automation code?