1、管理命令:
- service puppetmaster start --启动puppet server
- puppet agent --server mytest1 --test --客户端发起验证
- puppet cert --list --查看等待验证的主机
- puppet cert sign mytest2 --签署主机mytest2的验证请求
- puppet cert --clean mytest2 --删除某客户端的认证信息,需同时在客户端侧删除其ssl目录
2、Puppet目录及文件结构图(摘自Puppet in action):
![](https://i-blog.csdnimg.cn/blog_migrate/07513dae73ad1675c1b8841d89d53625.png)
3、主要模块及目录:
- 客户端重新签名,需要先删除/var/lib/puppet/ssl目录
- 服务端重新签名,也需要先删除签名文件:find $(puppet master --configprint ssldir) -name "$(puppet master --configprint certname).pem" -delete
- /etc/puppet/modules --模块信息目录
- /etc/puppet/manifests/nodes --用于存放节点信息的目录,节点定义文件需在site.pp中引入
4、puppet.conf主配置文件:
- puppetd --genconfig > /etc/puppet/puppet.conf --生成Puppet配置文件
- puppetmasterd--genconfig > /etc/puppet/puppet.conf
- puppet doc --reference configuration --查看配置参考手册
puppet.conf核心配置与常用配置说明(摘自Puppet in action)
![](https://i-blog.csdnimg.cn/blog_migrate/416e50a3bf67239ad91559a3c92d3b21.png)
Puppet Master配置样例——puppet.conf:
[main]
vardir = /var/lib/puppet
logdir = /var/log/puppet
rundir = /var/run/puppet
ssldir = $vardir/ssl
[master]
pluginsync = true
reports = log, foreman
environment = production
certname = server.abc.com
Puppet Agent客户端主配置文件样例——puppet.conf:
[main]
vardir = /var/lib/puppet
logdir = /var/log/puppet
rundir = /var/run/puppet
ssldir = $vardir/ssl
pluginsync = true
[agent]
classfile = $vardir/classes.txt --关联与检索配置文件目录
localconfig = $vardir/localconfig --设置本地缓存配置目录
runinterval = 1800
listen = true --监听进程
report = true
server = puppet.abc.com --指定Master地址
5、主机配置文件site.pp
全局配置文件,默认目录为/etc/puppet/manifests。
puppet apply --genmanifest > /etc/puppet/manifests/site.pp --命令生成site.pp文件
但通常为手工编辑site.pp,如:
Exec { path => "/usr/local/sbin:/usr/local/bin:/usr/sbin" }
#设置环境变量
$fileserver = "puppet.abc.com"
$ntpserver = "ntp.abc.com"
Package { provider => "yum" } #指定使用yum安装软件包
#以下为在所有节点上创建一个temp1.txt的文件
#node default {
# file { "/tmp/temp1.txt": content => "Hello World!"; }
# }
import "modules.pp" #加载模块配置文件
import "nodes/*.pp" #加载主机信息
import "test.domain.com.pp" #加载测试主机
6、认证与安全配置文件namespaceauth.conf和auth.conf
namespaceauth.conf --针对不同名称空间的权限控制,通常使用默认值
auth.conf --Puppet中的ACL控制文件,主要用于控制Puppet's REST API的授权访问。
配置格式:
![](https://i-blog.csdnimg.cn/blog_migrate/9a227fe5cb779c23fd5ef3ea1ca0ade9.png)
配置样例:
path /facts
auth yes
method find, search
allow a.abc.com, b.abc.com
7、客户端自动认证配置autosign.conf
autosign.conf --允许该配置文件中定义的客户端自动完成签名验证。
配置样例:
re.abc.com
*.ad.abc.com
*.local
可以提前在Master上生成Puppet客户端的证书,然后复制到客户端相应目录下,以实现自动认证的配置。
puppet cert generate client.abc.com --自动生成证书的命令
证书文件存放在:
/var/lib/puppet/ssl/private_keys/client.abc.com.pem
/var/lib/puppet/ssl/certs/client.abc.com/pem
/var/lib/puppet/ssl/certs/ca.pem
需要将以上文件复制到客户端主机相同的目录下。
8、报告系统配置tagmail.conf
tagmail.conf --启用邮件发送报告的功能。
需要在Puppet Master端配置reports=tagmail
需要在Puppet Agent端配置report=true
默认使用本机sendmail发送,可修改reportform=smtpserver,使用指定的邮件服务器。
9、文件系统配置fileserver.conf
配置Puppet客户端允许/禁止访问Master的文件目录。
配置格式:
[mount_point]
path /path/to/files
allow *.abc.com
deny *.ad.abc.com
样例:
【files]
path /etc/puppet/files
allow *.abc.com