> installPackages() # install packages and groupsDoesn't need to know what?
> #uninstallPackages() # uninstall packages and groups, fails if
> deployed - not initially
>
> The caller managing the server doesn‘t need to know that; this is
> an implementation detail of the role.
Anything about packages; the caller should just say “install postgres” and never hear about RPMs. (Notably, this would allow us to transparently switch from RPMs to Docker images—and even back the other way if necessary.)
> startServices() # start the services restartServices()Same question.
> # restart the services stopServices() # stop the
> services
>
> The caller managing the server doesn‘t need to know that; this is
> an implementation detail of the role.
Same answer: just say “start postgres” and never hear about systemd units. Especially when there already is start() and stop(), exposing the subcomponents of that API is rather redundant.