Puppet Resources and Resource Types

A resource is a specific part of a system that Puppet manages. A resource type is the kind of resource, such as a service, file, package, host, interface, or user. A resource provider implements support for a specific implementation of a given resource type, such as a resource type on a particular platform. Resource types can be built-in, defined, or custom.

The following list shows examples of Oracle Solaris built-in resource types and their providers:

  • The zone built-in resource type has only the solaris provider.

  • The package resource type has many providers including the pkg provider.

    Note that the sun provider is only for packages for systems that run up to Oracle Solaris 10.

  • The service resource type has many providers including the smf provider.

  • The user resource type, that implements user and role management, has the user_role_add provider.

The oracle-solaris_providers IPS package delivers Oracle Solaris providers. This package is installed automatically when you install Puppet.

Puppet modules include additional resource types that enable you to manage certain configurations such as networking or naming services. Oracle Solaris also includes Puppet resource types that manage specific Oracle Solaris features such as Oracle Solaris Zones.

Puppet uses a declarative language to describe system resources and their state in manifests. Use a Puppet site manifest (site.pp) on the Puppet Server to define a global configuration that is common to all of the managed nodes.

You can also include node-specific code in a Puppet site manifest to define configuration for specified nodes. See Writing Puppet Manifests, Classes, and Modules in Oracle Solaris.

Te following command output shows all of the Puppet resource types that are available on this system, including Oracle Solaris-specific types and core Puppet types:

# puppet resource --types
address_object
address_properties
anchor
augeas
boot_environment
...
zfs
zfs_acl
zone
zpool

The following command output shows all of the available resource types with a description of each type:

# puppet describe --list
address_object  - Manage the configuration of Oracle Solaris ad ...
address_properties - Manage Oracle Solaris address properties
anchor          - A simple resource type intended to be used as ...
augeas          - Apply a change or an array of changes to the  ...
boot_environment - Manage Oracle Solaris Boot Environments (BEs)
computer        - Computer object management using DirectorySer ...
cron            - Installs and manages cron jobs. Every cron re ...
dns             - Manage the configuration of the DNS client fo ...
etherstub       - Manage the configuration of Solaris etherstub ...
evs             - Manage the configuration of Oracle Solaris Elastic ...
evs_ipnet       - Manage the configuration of IPnet (subnet of  ...
evs_properties  - Manage global properties of EVS (Elastic V ...
evs_vport       - Manage the configuration of EVS VPort
exec            - Executes external commands. Any command in an ...
file            - Manages files, including their content, owner ...
file_line       - Ensures that a given line is contained within ...
filebucket      - A repository for storing and retrieving file  ...
group           - Manage groups. On most platforms this can  ...
host            - Installs and manages host entries. For most  ...
ilb_healthcheck - Manage Solaris Integrated Load Balancer (ILB) ...
ilb_rule        - Manage Solaris Integrated Load Balancer (ILB) ...
ilb_server      -  Manage Solaris Integrated Load Balancer (ILB ...
ilb_servergroup - Manage Solaris Integrated Load Balancer (ILB) ...
ini_setting     -
ini_subsetting  -
interface       - This represents a router or switch interface. ...
interface_properties - Manage Oracle Solaris interface properties
ip_interface    - Manage the configuration of Oracle Solaris IP ...
ip_tunnel       - Manage the configuration of Oracle Solaris IP ...
ipmp_interface  - Manage the configuration of Oracle Solaris IP ...
k5login         - Manage the `.k5login` file for a user. Specify ...
ldap            - Manage the configuration of the LDAP client  ...
link_aggregation - Manage the configuration of Oracle Solaris ...
link_properties - Manage Oracle Solaris link properties
macauthorization - Manage the Mac OS X authorization database.  ...
mailalias       - Creates an email alias in the local alias dat ...
maillist        - Manage email lists. This resource type can on ...
mcx             - MCX object management using DirectoryService  ...
mount           - Manages mounted filesystems, including putting ...
nagios_command  - The Nagios type command. This resource type ...
nagios_contact  - The Nagios type contact. This resource type ...
nagios_contactgroup - The Nagios type contactgroup. This resource ...
nagios_host     - The Nagios type host. This resource type is a ...
nagios_hostdependency - The Nagios type hostdependency. This resource ...
nagios_hostescalation - The Nagios type hostescalation. This resource ...
nagios_hostextinfo - The Nagios type hostextinfo. This resource ...
nagios_hostgroup - The Nagios type hostgroup. This resource type ...
nagios_service  - The Nagios type service. This resource type  ...
nagios_servicedependency - The Nagios type servicedependency. This  ...
nagios_serviceescalation - The Nagios type serviceescalation. This  ...
nagios_serviceextinfo - The Nagios type serviceextinfo. This resource ...
nagios_servicegroup - The Nagios type servicegroup. This resource  ...
nagios_timeperiod - The Nagios type timeperiod. This resource  ...
nis             - Manage the configuration of the NIS client  ...
notify          - Sends an arbitrary message to the agent run-time ...
nsswitch        - Name service switch configuration data
package         - Manage packages. There is a basic dichotomy  ...
pkg_facet       - Manage Oracle Solaris package facets
pkg_mediator    - Manage Oracle Solaris package mediators
pkg_publisher   - Manage Oracle Solaris package publishers
pkg_variant     - Manage Oracle Solaris package variants
protocol_properties - Manage Oracle Solaris protocol properties
resources       - This is a metatype that can manage other ...
router          - Manages connected router.
schedule        - Define schedules for Puppet. Resources can be ...
scheduled_task  - Installs and manages Windows Scheduled Tasks. ...
selboolean      - Manages SELinux booleans on systems with ...
selmodule       - Manages loading and unloading of SELinux ...
service         - Manage running services. Service support ...
solaris_vlan    - Manage the configuration of Oracle Solaris VLANs ...
ssh_authorized_key - Manages SSH authorized keys. Currently only  ...
sshkey          - Installs and manages ssh host keys. By default ...
stage           - A resource type for creating new run stages.  ...
svccfg          - Manage SMF service properties with svccfg(8).
system_attributes - Manage system attributes on ZFS files. See ...
tidy            - Remove unwanted files based on specific criteria ...
user            - Manage users. This type is mostly built to ...
vlan            - Manages a VLAN on a router or switch.
vni_interface   - Manage the configuration of Solaris VNI ...
vnic            - Manage the configuration of Oracle Solaris ...
whit            - Whits are internal artifacts of Puppet's current ...
yumrepo         - The client-side description of a yum repo ...
zfs             - Manage zfs. Create destroy and set properties ...
zfs_acl         - Manage NFSv4 ACL Specifications on ZFS Files ...
zone            - Manages Solaris zones.
zpool           - Manage zpools. Create and delete zpools. The ...

The following command output shows information about a specific resource type, such as the Oracle Solaris zone resource type:

# puppet describe zone
zone
====
Manages Oracle Solaris zones.


Parameters
----------

- **archive**
    The archive file containing an archived zone.

- **archived_zonename**
    The archived zone to configure and install

- **brand**


    The zone's brand type

- **clone**
    Instead of installing the zone, clone it from another zone.
    If the zone root resides on a zfs file system, a snapshot will be
    used to create the clone; if it resides on a ufs filesystem, a copy of
    the
    zone will be used. The zone from which you clone must not be running.

- **config_profile**
    Path to the config_profile to use to configure a solaris zone.
    This is set when providing a sysconfig profile instead of running the
    sysconfig SCI tool on first boot of the zone.


- **ensure**
    The running state of the zone.  The valid states directly reflect
    the states that `zoneadm` provides.  The states are linear,
    in that a zone must be `configured`, then `installed`, and
    only then can be `running`.  Note also that `halt` is currently
    used to stop zones.
    Valid values are `absent`, `configured`, `installed`, `running`.
.
.
.
- **zonecfg_export**
    Contains the zone configuration information. This can be passed in
    in the form of a file generated by the zonecfg command, in the form
    of a template, or a string.

- **zonepath**
    The path to zone's file system.

Providers
---------
    solaris

For more Oracle Solaris examples, see Using Puppet to Manage System Configuration in Oracle Solaris.