在学习了Puppet原理及版本差异后,我们需要掌握它的核心配置文件。Puppet所有的配置都围绕着Puppet.conf展开。
puppet.conf 默认配置文件目录/etc/puppet/.
由于puppet.conf配置文件内容较多,下面笔者将列举核心配置、常用配置选项(不区分Master与Agent):
[main] #通用配置选项
vardir = /var/lib/puppet
confdir = /etc/puppet
logdir = /var/log/puppet
rundir = /var/run/puppet
ssldir = $vardir/ssl
fileserverconfig = /etc/puppet/fileserver.conf
manifestdir = /etc/puppet/manifests #可不指定默认读取此目录
manifest = /etc/puppet/manifests/site.pp #主机文件默认读取
modulepath = /etc/puppet/modules:/usr/share/puppet/modules
authconfig = /etc/puppet/namespaceauth.conf
#如果开启Listen为true需要配置此文件
pluginsync = true #插件同步配置对facter自定义有效
reportdir = /var/lib/puppet/reports
#报告文件生成目录,目录以主机名命令开头
reports = log, foreman #报告的方式与类型
# environment = production 运行环境配置,默认为生产环境
[agent] #客户端配置选项
classfile = $vardir/classes.txt
localconfig = $vardir/localconfig
runinterval = 1800 #客户端默认探测时间,可按需求修改
listen = true #是否监听,执行puppet kick时需要配置
report = true #客户端的报告系统配置,不同于Master
#此项的主要目的是将报告发送至Master,主要用于客户端puppet.conf配置
report_port = 8140 #监听端口,如果服务器配置有防火墙,需开放此端口
report_server = server #默认不填,此时以下面的$server变量值为准
server = server.domain.com
[master] #服务端配置选项
certname = server.domain.com #也可以不定义,以主机名为准
reports = store, http, tagmail, log
reporturl = http://server.domain.com:3000/reports/upload
#报告发送地址,可配置在dashboard或foreman配置文件中
#有关报告系统的配置我们将在第17章讲解
autosign = /etc/puppet/autosign.conf #自动认证配置文件
提示
不同版本的配置文件可参考:http://docs.puppetlabs.com/references/。
通常我们应该如何配置主配置文件呢?下面分别进行介绍。
Puppet Master服务器端主配置文件——puppet.conf。
[main] #全局配置
#vardir用来存放缓存数据、配置、客户端传回的报告及文件备份
vardir = /var/lib/puppet
# Puppet日志文件配置目录默认为'$vardir/log'
logdir = /var/log/puppet
#PID文件目录,默认为'$vardir/run'
rundir = /var/run/puppet
#SSL签发认证文件目录,默认为 '$confdir/ssl'
ssldir = $vardir/ssl
[master] #服务器端配置
pluginsync = true #开启插件同步
reports = log, foreman #报告发送至log和foreman
environment = production #指定运行环境为生产环境
certname = server.domain.com #配置主机名为server.domain.com
Puppet Agent客户端主配置文件——puppet.conf。
[main]
logdir = /var/log/puppet
rundir = /var/run/puppet
ssldir = $vardir/ssl
pluginsync = true
[agent] #客户端配置
#关联与检索配置文件目录,默认为 '$confdir/classes.txt',也可以使用
#(--loadclasses)参数指定
classfile = $vardir/classes.txt
#本地缓存配置目录,默认为'$confdir/localconfig'
localconfig = $vardir/localconfig
runinterval = 1800 #检测时长1800秒,30分钟
listen = true #监听进程
report = true #发送报告
server = puppet.domain.com #指定Master地址
splay = true 设置延时
splaylimit = 60 延时为1分钟