Puppet apply命令参数介绍

壮心未与年俱老,死去犹能作鬼雄。这篇文章主要讲述Puppet apply命令参数介绍相关的知识,希望能为你提供帮助。
Puppet apply 命令参数介绍
之前说过puppet的两种运行方式,第一种:c/s结构,第二种:单机运行。apply就是单独执行本地*.pp文件的代码工具,通常用于本地测试调试puppet代码.


puppet apply常用参数:

[[email  protected]  ~]#  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 apply命令参数介绍】本地使用puppet 安装apache.
[[email  protected]  ~]#  rpm  -qa  httpd [[email  protected]  ~]#  vim  httpd.pp [[email  protected]  ~]#  cat  httpd.pp  package  {"httpd": ensure  =>   true, } #应用本地httpd.pp代码文件 [[email  protected]  ~]#  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 #确认已经安装 [[email  protected]  ~]#  rpm  -qa  httpd httpd-2.2.15-60.el6.centos.5.x86_64

--verbose参数:
[[email  protected]  ~]#  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参数:
#test模块下test类. [[email  protected]  manifests]#  pwd /etc/puppet/modules/test/manifests [[email  protected]  manifests]#  ls init.pp #模块下必须有init.pp文件声明一个和模块同名的类. [[email  protected]  manifests]#  cat  init.pp  class  test  {         package  {"httpd":                 ensure  =>   true,         } }

-e等同于--execute参数参数,类要想使用必须声明类使用include.
[[email  protected]  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 [[email  protected]  manifests]#  rpm  -qa  httpd httpd-2.2.15-60.el6.centos.5.x86_64



举例2:
notify 资源输出命令. 
注意:puppet中的notify命令和shell中的echo相似,都是将代码执行结果通过屏幕终端打印出来.
[[email  protected]  ~]#  cat  test.pp  notify  {"hello  world":} [[email  protected]  ~]#  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



本文出自 “青衫解衣” 博客,请务必保留此出处http://215687833.blog.51cto.com/6724358/1963705

    推荐阅读