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
下面是agent请求配置信息之后matser显示的信息
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的证书,具体如下:
/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
我们还可以通过puppet apply工具的execute参数直接调用puppet代码片段,具体如下:
# puppet apply --execute "notify{'hello world': }"
5、puppet module是puppet的基础模块工具
它包含下载、更新、查找、升级、创建基础模块等功能,它可以从puppet forge上查找已经开发好的puppet基础模块代码来为我们所用,以减少运维工程师的重复劳动。
首先通过search参数查找在puppet forge中的apache相关基础模块,具体命令如下:
# puppet module search apache
通过install参数可以安装需要的模块,并通过version参数指定版本信息,具体命令如下:
# puppet module install puppetlabs-apache
卸载
# puppet module uninstall puppetlabs-apache
安装好的基础模块会根据master的主配置文件puppet.conf中的modulepath参数将基础模块放到指定的目录中,默认路径是/etc/puppet/modules。
6、puppet resource是资源抽象层的shell
通过它可以将当前系统状态转换为puppet的代码,下面我们把系统root的帐号转换为puppet的代码
# puppet resource user root
下面我们通过puppet命令来修改root账户的shell,把bash改为sh
# puppet resource user root > change.pp
# vim change.pp
把里面的/bin/bash改为 /bin/sh
通过puppet apply来应用change.pp文件中的内容
# puppet apply change.pp
这时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
这里显示了很多的资源,上面刚刚打印过用户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文件内进行注释,通过#来增加注释,具体如下:
通过puppet doc命令来生成puppet代码的html手册,具体生成情况请查看帮助puppet help doc
# puppet doc --outputdir /tmp/rdoc --mode rdoc /path/to/manifests
9、puppet parser 主要用于.pp文件语法检查
# puppet help parser |