Puppet apply 命令参数介绍
之前说过puppet的两种运行方式,第一种:c/s结构,第二种:单机运行。apply就是单独执行本地*.pp文件的代码工具,通常用于本地测试调试puppet代码.
puppet apply常用参数:
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
73
74
75
76
77
78
79
80
81
82
83
84
|
[root@sh-proxy2 ~]
# puppet apply -h
puppet-apply(8) -- Apply Puppet manifests locally
========
SYNOPSIS
--------
Applies a standalone Puppet manifest to the
local
system.
USAGE
-----
puppet apply [-h|--help] [-V|--version] [-d|--debug] [-
v
|--verbose]
[-e|--execute] [--detailed-exitcodes] [-L|--loadclasses]
[-l|--logdest syslog|eventlog|<FILE>|console] [--noop]
[--catalog <catalog>] [--write-catalog-summary] <
file
>
DESCRIPTION
-----------
This is the standalone puppet execution tool; use it to apply
individual manifests.
When provided with a modulepath, via
command
line or config
file
, puppet
apply can effectively mimic the catalog that would be served by puppet
master with access to the same modules, although there are some subtle
differences. When combined with scheduling and an automated system
for
pushing manifests, this can be used to implement a serverless Puppet
site.
Most
users
should use
'puppet agent'
and
'puppet master'
for
site-wide
manifests.
OPTIONS
-------
Note that any setting that's valid
in
the configuration
file
is also a valid long argument. For example,
'tags'
is a
valid setting, so you can specify
'--tags <class>,<tag>'
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.
* --detailed-exitcodes:
#提供退出代码的信息,2表示代码有变化,4表示失败,6两者都有.
Provide transaction information via
exit
codes. If this is enabled, an
exit
code of
'2'
means there were changes, an
exit
code of
'4'
means there were
failures during the transaction, and an
exit
code of
'6'
means there were both
changes and failures.
* --help:
Print this help message
* --loadclasses:
#加载任何存储的类,通常puppet agent类配置缓存在/etc/puppet/classes.txt,设置这个参数导致所有选择的类将设置在puppet 清单中.
Load any stored classes.
'puppet agent'
caches configured classes
(usually at
/etc/puppet/classes
.txt), and setting this option causes
all of those classes to be
set
in
your puppet manifest.
* --logdest:
#日志路径
Where to send log messages. Choose between
'syslog'
(the POSIX syslog
service),
'eventlog'
(the Windows Event Log),
'console'
, or the path to a log
file
. Defaults to
'console'
.
A path ending with
'.json'
will receive structured output
in
JSON
format
. The
log
file
will not have an ending
']'
automatically written to it due to the
appending nature of logging. It must be appended manually to
make
the content
valid JSON.
* --noop:
#只运行代码,不应用catalog
Use
'noop'
mode where Puppet runs
in
a no-
op
or dry-run mode. This
is useful
for
seeing what changes Puppet will
make
without actually
executing the changes.
* --execute:
#执行一段puppet代码
Execute a specific piece of Puppet code
* --
test
:
#启用测试
Enable the most common options used
for
testing. These are
'verbose'
,
'detailed-exitcodes'
and
'show_diff'
.
* --verbose:
#打印详细执行过程
Print extra information.
* --catalog:
#catalog
Apply a JSON catalog (such as one generated with
'puppet master --compile'
). You can
either specify a JSON
file
or pipe
in
JSON from standard input.
* --write-catalog-summary
#编译完catalog后,将资源列表和类列表保存到节点。
After compiling the catalog saves the resource list and classes list to the node
in
the state directory named classes.txt and resources.txt
EXAMPLE
-------
$ puppet apply -l
/tmp/manifest
.log manifest.pp
$ puppet apply --modulepath=
/root/dev/modules
-e
"include ntpd::server"
$ puppet apply --catalog catalog.json
AUTHOR
------
Luke Kanies
COPYRIGHT
---------
Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
举例:
本地使用puppet 安装apache.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
[root@sh-proxy2 ~]
# rpm -qa httpd
[root@sh-proxy2 ~]
# vim httpd.pp
[root@sh-proxy2 ~]
# cat httpd.pp
package {
"httpd"
:
ensure =>
true
,
}
#应用本地httpd.pp代码文件
[root@sh-proxy2 ~]
# puppet apply httpd.pp
Notice: Compiled catalog
for
sh-proxy2.localdomain
in
environment production
in
0.18 seconds
Notice:
/Stage
[main]
/Main/Package
[httpd]
/ensure
: created
Notice: Finished catalog run
in
12.67 seconds
#确认已经安装
[root@sh-proxy2 ~]
# rpm -qa httpd
httpd-2.2.15-60.el6.centos.5.x86_64
|
--verbose参数:
1
2
3
4
5
|
[root@sh-proxy2 ~]
# puppet apply httpd.pp --verbose
Notice: Compiled catalog
for
sh-proxy2.localdomain
in
environment production
in
0.12 seconds
Info: Applying configuration version
'1504671755'
Notice:
/Stage
[main]
/Main/Package
[httpd]
/ensure
: created
Notice: Finished catalog run
in
3.51 seconds
|
--execute参数:
1
2
3
4
5
6
7
8
9
10
11
12
|
#test模块下test类.
[root@sh-proxy2 manifests]
# pwd
/etc/puppet/modules/test/manifests
[root@sh-proxy2 manifests]
# ls
init.pp
#模块下必须有init.pp文件声明一个和模块同名的类.
[root@sh-proxy2 manifests]
# cat init.pp
class
test
{
package {
"httpd"
:
ensure =>
true
,
}
}
|
-e等同于--execute参数参数,类要想使用必须声明类使用include.
1
2
3
4
5
6
|
[root@sh-proxy2 manifests]
# puppet apply -e "include test"
Notice: Compiled catalog
for
sh-proxy2.localdomain
in
environment production
in
0.15 seconds
Notice:
/Stage
[main]
/Test/Package
[httpd]
/ensure
: created
Notice: Finished catalog run
in
3.11 seconds
[root@sh-proxy2 manifests]
# rpm -qa httpd
httpd-2.2.15-60.el6.centos.5.x86_64
|
举例2:
notify 资源输出命令.
注意:puppet中的notify命令和shell中的echo相似,都是将代码执行结果通过屏幕终端打印出来.
1
2
3
4
5
6
7
|
[root@sh-proxy2 ~]
# cat test.pp
notify {
"hello world"
:}
[root@sh-proxy2 ~]
# puppet apply test.pp
Notice: Compiled catalog
for
sh-proxy2.localdomain
in
environment production
in
0.02 seconds
Notice: hello world
Notice:
/Stage
[main]
/Main/Notify
[hello world]
/message
: defined
'message'
as
'hello world'
Notice: Finished catalog run
in
0.01 seconds
|
本文转自青衫解衣 51CTO博客,原文链接:http://blog.51cto.com/215687833/1963705