Puppet uses resources and resource types to describe a system's configuration. Resources are grouped into collections. At a high level, a resource is referred to as a type, which describes a specific resource that Puppet can manage on a system, such as users, packaging, networking, and so on.
At a platform-specific level, a resource is referred to as a provider. Providers are the platform-specific implementations of a specified type. Providers translate the general definitions for a resource into the actions that are required to implement the resource on that specific platform.
Resource types and providers are at the heart of the Puppet Resource Abstraction Layer (RAL). Oracle Solaris includes several built-in Puppet resource types and providers that apply to a specific Puppet version, as well as additional resource types that are distributed in individual Puppet modules that enable you to manage certain aspects of networking, naming services, and so on. There are also types that are unique to managing specific Oracle Solaris features, for example, Oracle Solaris Zones.
As previously mentioned, Puppet uses a declarative language to describe system resources and their state. This information is written in manifests. You can use a Puppet site manifest (site.pp), which is located on the Puppet master, to define global configuration that is common to all of the nodes.
You can also include node-specific code in a main Puppet manifest to define configuration that pertains to certain nodes. See Writing Puppet Manifests, Classes, and Modules in Oracle Solaris.
Display all of the Puppet resource types that are available on a system as follows:
# puppet resource --types address_object address_properties augeas boot_environment computer cron dns etherstub exec file filebucket group host interface interface_properties ip_interface ip_tunnel ipmp_interface k5login ldap link_aggregation link_properties macauthorization mailalias maillist mcx mount nagios_command nagios_contact nagios_contactgroup nagios_host nagios_hostdependency nagios_hostescalation nagios_hostextinfo nagios_hostgroup nagios_service nagios_servicedependency nagios_serviceescalation nagios_serviceextinfo nagios_servicegroup nagios_timeperiod nis notify nsswitch package pkg_facet pkg_mediator pkg_publisher pkg_variant protocol_properties resources router schedule scheduled_task selboolean selmodule service solaris_vlan ssh_authorized_key sshkey stage svccfg tidy user vlan vni_interface vnic whit yumrepo zfs zone zpool
The previous output includes both Oracle Solaris-specific types and core Puppet types, which are available for use on other platforms.