Puppet は、リソースおよびリソースタイプを使用してシステムの構成を記述します。リソースは、コレクションにグループ化されます。高レベルでは、リソースはタイプと呼ばれます。これは、Puppet がシステム上で管理できる特定のリソース (ユーザー、パッケージング、ネットワークなど) を記述します。
プラットフォーム固有のレベルでは、リソースはプロバイダと呼ばれます。プロバイダは、指定されたタイプのプラットフォーム固有の実装です。プロバイダは、リソースの一般的な定義を、その特定のプラットフォーム上でリソースを実装するために必要なアクションに変換します。
リソースタイプおよびプロバイダは、Puppet Resource Abstraction Layer (RAL) の中心的な部分です。Oracle Solaris には、特定の Puppet バージョンに適用されるいくつかの組み込み型の Puppet リソースタイプおよびプロバイダのほか、ネットワークやネームサービスなどの特定の側面を管理するために使用できる、個別の Puppet モジュールで配布される追加のリソースタイプが含まれています。また、特定の Oracle Solaris 機能 (たとえば、Oracle Solaris ゾーン) の管理に固有のタイプも存在します。
先に説明したように、Puppet は宣言型言語を使用して、システムリソースとその状態を記述します。これらの情報は、マニフェスト内に書き込まれます。Puppet マスター上にある Puppet サイトマニフェスト (site.pp) を使用すると、すべてのノードに共通のグローバル構成を定義できます。
また、特定のノードに関連する構成を定義するために、メインの Puppet マニフェスト内にノード固有のコードを含めることもできます。Oracle Solaris での Puppet マニフェスト、クラス、およびモジュールの記述を参照してください。
システム上で使用可能なすべての Puppet リソースタイプは、次のように表示します。
# 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
前の出力には、Oracle Solaris 固有のタイプと、その他のプラットフォーム上で使用可能なコア Puppet タイプの両方が含まれています。