作用: 主配置文件, 用于控制服务端
[main] logdir = /var/log/puppet rundir = /var/run/puppet ssldir = $vardir/ssl fileserverconf = /etc/puppet/fileserver.conf # 用于共享文件, 并传送至客户端, 格式: puppet:/// manifest = /etc/puppet/manifests/main-site.pp # 用于指定使用哪一个模板 modulepath = /etc/puppet/modules # 定义存放模板的位置 [agent] classfile = $vardir/classes.txt localconfig = $vardir/localconfig autosign = /etc/puppet/autosign.conf # 自动为客户端进行密钥认证, 避免手动为每个客户密钥签名作用: 用于共享文件, 并传送至客户端, 格式: puppet:///
[files] path /etc/puppet/files allow *作用: 自动为客户端进行密钥认证, 避免手动为每个客户密钥签名
*.vclound.com # 所有主机后缀为 *.vclound.com 则执行自动密钥签名作用: 定义模板位置
if versioncmp($::puppetversion,'3.6.1') >= 0 { $allow_virtual_packages = hiera('allow_virtual_packages',false) Package { allow_virtual => $allow_virtual_packages, } } import 'terry/terry-test.pp' # 使用这个文件作为当前的 puppet 模板作用: 定义了客户端主机, 配置等功能, 所有 puppet 操作都在该文件中进行定义
定义方法:
只匹配 terry.vclound.com 主机
node /terry.vclound.com/ { 各种 puppet 定义; }只匹配 terry1.vclound.com, terry2.vclound.com, terry3.vclound.com 主机
node 'terry1.vclound.com', 'terry2.vclound.com', 'terry3.vclound.com' { 各种 puppet 定义; }匹配所有以 vclound.com 后缀的主机名
node /\\*.vclound.com/ { 各种 puppet 定义; }作用: 定义 puppet 主服务器位置则可
[main] logdir = /var/log/puppet rundir = /var/run/puppet ssldir = $vardir/ssl server = terry-test-uq2pu.vclound.com # 定义 puppet 服务器, 需要 dns 或 /etc/hosts 解释 [agent] classfile = $vardir/classes.txt localconfig = $vardir/localconfig注: 假如不进行上述的 server = xxx 定义, 那么在运行 puppet 时候, 需要手动添加 –server 参数也是可以的
服务端启动方法
rhel6 /etc/init.d/puppetmaster start rhel7 systemctl start puppetmaster当服务器启动后, 默认会在下面生成三个密钥, 不建议对服务端执行主机名修改方法, 因为会导致验证失败, 需要手动维护才可以令 puppet master 重新生效, 是一个比较麻烦的操作
/var/lib/puppet/ssl/certs/terry-test-uq2pu.vclound.com.pem /var/lib/puppet/ssl/private_keys/terry-test-uq2pu.vclound.com.pem /var/lib/puppet/ssl/public_keys/terry-test-uq2pu.vclound.com.pem客户端启动方法
暂时只需要按需连接或者利用 cron job 执行客户端与服务器连接则可 当然, 也可以使用 /etc/init.d/puppet start 方法令 puppet 长期处于后台进程客户端连接方法:
puppet agent -t --debug注意
假如客户端主机名改变或者在之前已经曾经连接过其他的 puppet server 则启动或连接当前的 puppet server 会出现报错 解决方法删除密钥后 rm -rf /var/lib/puppet/ssl/* 在尝试重新连接 puppet server