Puppet resource是资源抽象层的shell,通过它可以将当前系统状态转换为puppet的代码,并且还具有将当前系统状态改变为Puppet RAL状态等功能.

[root@puppet ~]# puppet resource -h
puppet-resource(8) -- The resource abstraction layer shell
========
SYNOPSIS
--------
Uses the Puppet RAL to directly interact with the system.
USAGE
-----
puppet resource [-h|--help] [-d|--debug] [-v|--verbose] [-e|--edit]
  [-H|--host ] [-p|--param ] [-t|--types] 
  [] [= ...]
DESCRIPTION
-----------
This command provides simple facilities for converting current system
state into Puppet code, along with some ability to modify the current
state using Puppet's RAL.
By default, you must at least provide a type to list, in which case
puppet resource will tell you everything it knows about all resources of
that type. You can optionally specify an instance name, and puppet
resource will only describe that single instance.
If given a type, a name, and a series of = pairs,
puppet resource will modify the state of the specified resource.
Alternately, if given a type, a name, and the '--edit' flag, puppet
resource will write its output to a file, open that file in an editor,
and then apply the saved file as a Puppet transaction.
OPTIONS
-------
Note that any setting that's valid in the configuration
file is also a valid long argument. For example, 'ssldir' is a valid
setting, so you can specify '--ssldir ' as an
argument.
See the configuration file documentation at
http://docs.puppetlabs.com/references/stable/configuration.html for the
full list of acceptable parameters. A commented list of all
configuration options can also be generated by running puppet with
'--genconfig'.
* --debug:        #打开调试开关信息
  Enable full debugging.
* --edit:    #将查询结果写入文件,在编辑器中打开这一文件,并且以puppet代码的表现形式复述这一文件.
  Write the results of the query to a file, open the file in an editor,
  and read the file back in as an executable Puppet manifest.
* --host:    #连接到已命名的主机资源服务器,获取指定类型资源的列表.
  When specified, connect to the resource server on the named host
  and retrieve the list of resouces of the type specified.
* --help:
  Print this help message.
* --param:        #添加更多参数以进行查询输出.
  Add more parameters to be outputted from queries.
* --types:        #列出所有可获取的类型.
  List all available types.
* --verbose:        #输出扩展信息.
  Print extra information.
EXAMPLE
-------
This example uses `puppet resource` to return a Puppet configuration for
the user `luke`:
    $ puppet resource user luke
    user { 'luke':
     home => '/home/luke',
     uid => '100',
     ensure => 'present',
     comment => 'Luke Kanies,,,',
     gid => '1000',
     shell => '/bin/bash',
     groups => ['sysadmin','audio','video','puppet']
    }
AUTHOR
------
Luke Kanies
COPYRIGHT
---------
Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License


举例:

[root@puppet ~]# puppet resource user root  |tee 2.pp
user { 'root':
  ensure           => 'present',
  comment          => 'root',
  gid              => '0',
  home             => '/root',
  password         => '$6$yIyAnjPI1kiwQpe7$N0Lq9PrISqc5FRvWYbyS7tRSDE2lGLhdbQU/adpVAGbBpRsUSQ6GR22REoV9IJa9pPTHrKEOeShC2TZF3CUx3.',
  password_max_age => '99999',
  password_min_age => '0',
  shell            => '/bin/bash',
  uid              => '0',
}
[root@puppet ~]# cat 2.pp 
user { 'root':
  ensure           => 'present',
  comment          => 'root',
  gid              => '0',
  home             => '/root',
  password         => '$6$yIyAnjPI1kiwQpe7$N0Lq9PrISqc5FRvWYbyS7tRSDE2lGLhdbQU/adpVAGbBpRsUSQ6GR22REoV9IJa9pPTHrKEOeShC2TZF3CUx3.',
  password_max_age => '99999',
  password_min_age => '0',
  shell            => '/bin/bash',
  uid              => '0',
}

# puppet resource user root  --edit  直接生成puppet代码,并切编辑此puppet代码.