This PR is mostly there in order to reduce the output of ansible-lint when run against a playbook using these roles (for easier debugging), the majority of changes are simply adding or removing spaces. A few change which ansible module is called, either because there is a specialized module doing exactly what is done or because (rarely) the shell module is used when no shell feature is used.
A few other changes could have been done but might need a bit more discussion are replacing the call to getent through a shell in evolinux-base/tasks/postfix:34 and the first two tasks of evolinux-users/tasks/user.yml with the getent module (that have a stable interface) and the calls to
dpkg -l <whatever> with a call with the module package_facts (that isn't guaranteed to have a stable interface and is rather new (ansible 2.5)).
The ansible-lint rules E204, E303, E306 and E503 aren't treated in this PR, the first because line length isn't necessarily changeable, the second because sometime direct call to commands instead of ansible modules is the only way to do things, the third because the default shell doesn't necessarily support the pipefail option (and ansible-lint don't understand that it has been set when it is set) and the last because it would be complicated to solve it (well… we could order handlers correctly but it might be impossible and require instead to have handlers notifying other handlers or task inclusion…).
There still are one or two roles that produce an output when ansible-lint is run on them but they seemed to require a better understanding of what is done with them.
(Most everything in this PR was done in the middle of documenting other things so there might be a few pointless changes here and there)