Puppet 常用命令

jopen 10年前

1.puppet master

puppet master 默认是以Ruby内建的WEBRick在后台运行的守护进程,同样也可以采用最常用的Web服务器apache和nginx替换WEBRick以提升性能.puppet master主要功能是编译配置文件,文件,模版,节点的自定义插件.

root@10.1.1.33:nodes# puppet master --help  puppet master [-D|--daemonize|--no-daemonize] [-d|--debug] [-h|--help]    [-l|--logdest syslog|<FILE>|console] [-v|--verbose] [-V|--version]    [--compile <NODE-NAME>]    * --daemonize: #-D发送到后台守护进程,默认选项    * --no-daemonize: #不发送到后台守护进程    * --debug: #完整调试    * --help: #输出帮助    * --logdest:  #日志发送方式,默认是syslog    * --verbose:  #显示详细信息    * --version: #打印puppet版本    * --compile: #以JSON的方式输出编译的catalog
使用--getconfig输出默认配置文件
root@10.1.1.33:puppet# puppet master --genconfig > puppet.conf
puppet不启用后台守护进程的方式运行.
root@10.1.1.33:puppet master --no-daemonize --verbose


2.puppet agent

puppet agent 在每个节点以守护进程方式运行,通常每30分钟向master请求一次,以确认新的信息并询问是否有变更.然后负责运行编译好的catalog代码

root@10.1.1.34:tmp# puppet agent --help  puppet agent [--certname <NAME>] [-D|--daemonize|--no-daemonize]    [-d|--debug] [--detailed-exitcodes] [--digest <DIGEST>] [--disable [MESSAGE]] [--enable]    [--fingerprint] [-h|--help] [-l|--logdest syslog|eventlog|<FILE>|console]    [--masterport <PORT>] [--no-client] [--noop] [-o|--onetime] [-t|--test]    [-v|--verbose] [-V|--version] [-w|--waitforcert <SECONDS>]
使用"--noop"参数,puppet运行catelog,但不执行配置
root@10.1.1.34:tmp# puppet agent --noop


3.puppet apply

puppet apply 是puppet运行命令,主要在检测manifests时或在没有网络连接的情况下使用.不同于puppet agent,puppet apply在运行时不会连接master

root@10.1.1.34:tmp# puppet apply --help  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>
(1) 将输出信息输出到日志文件
root@10.1.1.33:manifests# puppet apply -l /tmp/init.pp init.pp   root@10.1.1.33:manifests# cat /tmp/init.pp   Fri Dec 12 16:17:46 +0800 2014 Puppet (notice): Compiled catalog for puppet.domain.com in environment production in 0.04 seconds  Fri Dec 12 16:17:47 +0800 2014 Puppet (notice): Finished catalog run in 0.04 seconds


4.puppet cert

它用于管理本地证书,查看未签名证书,签署证书,废除证书,清除证书.

puppet cert <action> [-h|--help] [-V|--version] [-d|--debug] [-v|--verbose]    [--digest <digest>] [<host>]

常用操作:
clean         #清除证书
fingerprint #打印证书指纹
generate    #生成客户端证书
list            #查看认证客户端列表
print         #打印主机证书的全文信息
revoke      #废除已认证的主机
sign          #签署认证
verify        #验证本地指定的认证

命令参数:
--all          #执行所有操作,包括'sign','clean', 'list', and 'fingerprint'
--digest     #设置证书指纹加密的方式
--debug    #启用完整调试模式|
--verbose  #显示详细信息
--version   #显示版本

(1)查看请求认证的客户端列表

root@10.1.1.33:nodes# puppet cert list
(2)为主机agent.domin.com签署验证
root@10.1.1.33:nodes# puppet cert sign agent.domain.com
(3)列出所有签名和未签名的证书
root@10.1.1.33:nodes# puppet cert list --all  + "agent.domain.com"  (SHA256) 3C:82:6A:E2:9B:8B:8F:8A:ED:C9:83:EB:64:47:6C:91:E5:8E:86:A6:B3:D7:1D:E5:4E:39:4D:04:5A:21:C5:86  #符号+表示已经签署过认证  "client.domain.com" (SHA256) E3:B4:46:90:DF:85:37:77:48:BB:F9:FD:9F:13:DE:52:2F:00:1C:71:A3:BC:C2:E2:A5:34:4F:01:DB:27:02:F5
(4)给所有未签署认证的请求颁发认证:
root@10.1.1.33:nodes# puppet cert sign --all
(5)查看所有已签署认证的客户端列表
root@10.1.1.33:nodes# puppet cert list --all   + "agent.domain.com"  (SHA256) 3C:82:6A:E2:9B:8B:8F:8A:ED:C9:83:EB:64:47:6C:91:E5:8E:86:A6:B3:D7:1D:E5:4E:39:4D:04:5A:21:C5:86


5.puppet kick

它用于连接到agent客户端主动运行puppet agent --test命令.类似主动触发配置