Server Roles help define common configuration between Servers. They model the real-world overlap of servers, and provide the visualization necessary to easily understand your infrastructure. Server roles facilitate the flexibility needed to address the complexities that modern infrastructure automation poses.
For example, you may have an
iis-server role that ensures IIS is configured in a particular way, as well as an
hdar-api-host role that ensures
a particular web application is configured properly. Both roles can be applied to the same server so that
hdar-api-host is configured on an IIS server.
Configuration plans that are associated with a server role are run before any plans for individual servers within that role.
Just as an individual server can become Drifted, so can server roles. If any the servers in the role have configuration that differ from the desired configurations then the entire server role is considered drifted.
When remediating server role drift, only that server role's configuration plan is executed; this gives fine-grain control over which sets of configuration you want to deploy, and when.
Let's say you have a complex, multi-tier system called HDars that's designed to scale and run across multiple servers.
HDars-Cloudcould describe the configuration of the middle-tier, cloud-data processing components
HDars-Webmight describe how HDars is configured in IIS for end users to use
IIS-serverwould actually ensure that IIS is installed and configured in a manner appropriate for your organization
HDars-databasewould configure the database and make sure it's running and configured to backup properly
Loupe-Logingwould ensure that a third-party error management agent is installed
You can mix and match server roles as needed.