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:
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.
I can use that, but if I have a specific role just for an environment, I should able to just have that role tied to environment, correct? That way that role will not be available for any other environment.
To be honest I do not know the answer for that... I am not a fan of roles
I really encourage you to check policyfiles because:
When running Chef without Policyfile roles are global objects. Changes to roles are applied immediately to any node that contains that role in its run-list. This can make it hard to update roles and in some use cases discourages using roles at all.
Policyfile effectively replaces roles. Policyfile files are versioned automatically and new versions are applied to systems only when promoted.