You could check the
env_run_lists (roles documentation)
Optional. A list of environments, each specifying a recipe or a role to be applied to that environment. This setting must specify the _default environment. If the _default environment is set to  or nil, then the run-list is empty. For example:
env_run_lists 'prod' => ['recipe[apache2]'],
'staging' => ['recipe[apache2::staging]'
Using env_run_lists with roles is discouraged as it can be difficult to maintain over time. Instead, consider using multiple roles to define the required behavior.
It would worth while to use Policyfiles