设为首页 收藏本站
查看: 1039|回复: 0

[经验分享] puppet子命令介绍

[复制链接]

尚未签到

发表于 2018-8-2 09:06:24 | 显示全部楼层 |阅读模式
  puppet子命令介绍
  # puppet -V                //查看puppet的版本
  # puppet help              //查看puppet支持的一些子命令
  # puppet agent --configprint confdir  //查看配置文件的目录
  1、puppet master
  # puppet help master       //查看master的常用参数
  通过puppet master与参数方式启动puppet守护进程的方法如下
  # puppet master --verbose --no-daemonize
  2、puppet agent
  # puppet help agent       //查看agent的常用参数
  通过puppet agent后接test参数的方式来访问master获取配置信息
  # puppet agent --server=monitor.comratings.com --test
DSC0000.jpg

  下面是agent请求配置信息之后matser显示的信息
DSC0001.jpg 3、puppet cert是管理puppet的证书签名的命令

  具体的详细我们可以查看puppet help cert,下面简单列举几个,通过英文意思大家应该都明白。
  # puppet cert list
  # puppet cert sign ***.comratings.com
  # puppet cert sign --all
  还有一种相对安全的签名方式,即“预签名方式”,也就是管理员提前将签名证书文件生成后推送到agent机器上,通过puppet cert --generate后接HOSTNAME的方式来预生产签名证书。命令如下:
  # puppet cert --generate example.comratings.com
  这里它会预生成example.comratings.com,包括agent的私钥,agent的证书和CA的证书,具体如下:
DSC0002.jpg /var/lib/puppet/ssl/certs/example.comratings.com.pem

  /var/lib/puppet/ssl/certs/ca.pem
  /var/lib/puppet/ssl/private_keys/example.comratings.com.pem
  把上面3个证书文件传到agent上面就可以了,这个对批量接入puppet相对安全一些。
  4、puppet apply是一个单独执行代码的工具
  我们创建一个test.pp文件
  # vim test.pp
  notify{"hello world":}
  # puppet apply test.pp
DSC0003.jpg

  我们还可以通过puppet apply工具的execute参数直接调用puppet代码片段,具体如下:
  # puppet apply --execute "notify{'hello world': }"
DSC0004.jpg

  5、puppet module是puppet的基础模块工具
  它包含下载、更新、查找、升级、创建基础模块等功能,它可以从puppet forge上查找已经开发好的puppet基础模块代码来为我们所用,以减少运维工程师的重复劳动。
  首先通过search参数查找在puppet forge中的apache相关基础模块,具体命令如下:
  # puppet module search apache
DSC0005.jpg

  通过install参数可以安装需要的模块,并通过version参数指定版本信息,具体命令如下:
  # puppet module install puppetlabs-apache
DSC0006.jpg

DSC0007.jpg

  卸载
  # puppet module uninstall puppetlabs-apache
DSC0008.jpg

  安装好的基础模块会根据master的主配置文件puppet.conf中的modulepath参数将基础模块放到指定的目录中,默认路径是/etc/puppet/modules。
  6、puppet resource是资源抽象层的shell
  通过它可以将当前系统状态转换为puppet的代码,下面我们把系统root的帐号转换为puppet的代码
  # puppet resource user root
DSC0009.jpg 下面我们通过puppet命令来修改root账户的shell,把bash改为sh

  # puppet resource user root > change.pp
  # vim change.pp
  把里面的/bin/bash改为 /bin/sh
DSC00010.jpg 通过puppet apply来应用change.pp文件中的内容

  # puppet apply change.pp
DSC00011.jpg

  这时puppet会将系统帐号root的shell改为sh。
  7、puppet describe是puppet资源帮助文档
  它可以显示资源的使用方法、格式和案例,资源是puppet的核心,在为puppet定义一个资源时,需要为其指定所属的类型和资源标题,并同时配置一系列的属性和对应的值。puppet通过其特有的语言来描述和管理资源,如下面所示的资源定义。
    user { 'test':  
      ensure     => present,
  
      uid        => '601',
  
      gid        => '601',
  
      shell      => '/bin/bash',
  
      home       => '/home/test',
  
      managehome => true,
  
    }
  这种语法被称作“资源申报(resource declaration)”,它是puppet语言的核心组成部分。上述的定义中,仅描述了资源的目标状态而没有提到为达成目标所需要采取的任何步骤。而资源定义的核心也可以抽象为type、title、attribute和value四个部分。
  puppet有许多内置的资源类型,而通过安装插件还可以继续新增额外的类型。可以通过puppet官方的类型参考页面(http://docs.puppetlabs.com/references/latest/type.html)获取详细的信息。也可以使用“puppet describe”命令来获取puppet当前所支持的类型列表及每种类型的详细信息,下面给出了一个简要的使用说明。
  puppet describe -l:例如puppet支持的所有资源类型及其描述信息;
  puppet describe -s <TYPE>:列出指定资源的简要说明;
  puppet describe <TYPE>:显示指定资源的详细说明;
  # puppet describe --list
DSC00012.jpg

  这里显示了很多的资源,上面刚刚打印过用户root有哪些资源,这里我们详细的查看一下就可以使用,因为内容过多,我这里就不详细的显示了。
  # puppet describe user
  如前所述,资源是puppet用于模型化系统配置的基础单元,每个资源都都从某个角度描述了系统属性,如某程序包必须安装或某用户必须移除等。在puppet,用于完成此类功能的代码也即“资源申报”。
  type {'title':
  attribute => value,
  }
  在定义时,资源类型必须使用小写字符;而资源名称仅是一个字符串,但要求在同一个类型中其必须惟一,这意味着,可以同时有名为nginx的“service”资源和“package”资源,但在“package”类型的资源中只能有一个名为“nginx”。
  尚未完成,参考:http://docs.puppetlabs.com/puppet/latest/reference/lang_resources.html
  8、puppet doc是一个将puppet代码中的注释转换为文档的工具
  运维工程师在管理配置服务时要将整个服务器配置过程转换为puppet能识别的代码,代码中可以书写配置的注释,那些刚接手配置管理的信任,对很多puppet的配置还是比较生疏的,所以需要一个帮助文档让查询变得更方便。
  假设我们要在change.pp文件内进行注释,通过#来增加注释,具体如下:
DSC00013.jpg

  通过puppet doc命令来生成puppet代码的html手册,具体生成情况请查看帮助puppet help doc
  # puppet doc --outputdir /tmp/rdoc --mode rdoc /path/to/manifests
  9、puppet parser 主要用于.pp文件语法检查
  # puppet help parser

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-545101-1-1.html 上篇帖子: Puppet Dashboard的安装配置 下篇帖子: puppet进阶指南——package资源详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表