Understanding PeopleSoft Puppet Profiles and Roles Modules

Roles and Profiles are considered to be Puppet modules that contain manifests that operate at a higher level of abstraction than the component modules which act directly on manageable system components. Understanding the purpose of Roles and Profiles modules is crucial when taking full advantage of Puppet in your PeopleSoft architecture. Roles and Profiles refer to an established pattern in the Puppet community for increasing the reusability of modules. This pattern encourages the separation of how Application components are configured from which components should be configured. The use of this pattern is fundamental to the way in which the PeopleSoft component modules have been created.

Note that the word “roles” and “profiles” as used in the context of Puppet development have quite different meanings than the accepted definitions.

The primary purpose of the Roles and Profiles pattern is to isolate and abstract functionality along the separate lines of business and technical perspectives. In such cases we want to isolate the description of an environment from the way in which it is implemented while retaining a relationship between these abstractions. For example, consider a PeopleSoft deployment comprised of three distinct pillars: PeopleSoft Human Capital Management 9.1, PeopleSoft Human Capital Management 9.2 and PeopleSoft Financials 9.2, all in production. There is a Dev and Test environment for each of these PeopleSoft application pillars.

Now consider the business and technical perspectives on this system. The business managers see the systems as being independent of one another servicing different business functions. The technical team sees them as variants of the same tech stack, as all of the systems contain JEE servers, databases, firewalls and so on. In the PeopleSoft DPK implementation, the business perspectives are associated with Puppet roles, and the technical perspectives with profiles.

The Roles and Profiles pattern implemented in PeopleSoft DPKs is comprised of two separate modules:

  • pt_role — This module contains pre-defined roles that can be assigned to an host.

  • pt_profile — This module contains PeopleSoft classes and defined types to set up various aspects of a PeopleSoft environment. The classes and defined types in this module interact with Hiera to access the data, and call in the low-level custom types to deploy and configure the PeopleSoft environment.