I’m sure you’ll receive varied responses, but I personally have nothing
against roles. My recommendation would be to use roles but limit the run
list items and attributes you set there. We limit our role run lists to 2
entries - one referencing our ‘base’ role and one pointing at our wrapper
cookbook recipe for whatever application the node will run - for example,
‘mycompany_apache::default’. We also try to limit the attributes we set in
a role and instead prefer to set attributes in environments.