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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
[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 <host>] [-p|--param <parameter>] [-t|--types] < type >
   [<name>] [<attribute>=<value> ...]
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 <attribute>=<value> 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 <directory>'  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


举例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[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代码.

本文转自青衫解衣 51CTO博客,原文链接:http://blog.51cto.com/215687833/1964309