puppet master没有将代理hostname / fqdn传递给enc脚本

时间:2015-05-06 07:23:22

标签: ssl puppet nodename

Puppet版本:3.6.2

为了简化ssl证书的管理,我们的puppet代理使用相同的证书名称 certname = agent.puppet.com

当puppet master从代理(hostname: web00.xxx.com)获取请求时,它会以 certname 作为参数执行Enc脚本。

node_terminus = exec
external_nodes = /home/ocean/puppet/conf/bce_puppet_bns

puppet.log:

2015-05-06 09:55:34 +0800 Puppet (debug): Executing '/home/ocean/puppet/conf/bce_puppet_bns agent.puppet.com'

如何配置将puppet主传递代理的真实主机名/ FQDN制作成Enc脚本,如:

/home/ocean/puppet/conf/bce_puppet_bns web00.xxx.com

或者如何在Enc脚本中获取代理的主机名/ FQDN?

2 个答案:

答案 0 :(得分:1)

唐'吨

请勿使用代理商传递的$clientcert以外的任何信息。

不要在不同的代理商之间共享证书。

Puppet中有一些根深蒂固的假设,即每个代理节点都有一个单独的证书。通过尝试这样的特技,你将在你的基础设施中肆虐 havoc

例如,PuppetDB数据通常通过拥有代理来分组。 certnames。这些数据会迅速与所有自称相同的代理商不一致,但当然会有很大不同。

答案 1 :(得分:0)

确保puppetmaster说这个

 [master]
   node_name = facter

更改auth.conf,以便所有部分都包含" agent.puppet.com"这样的证书

# allow nodes to retrieve their own catalog
path ~ ^/catalog/([^/]+)$
method find
allow $1
allow agent.puppet.com

# allow nodes to retrieve their own node definition
path ~ ^/node/([^/]+)$
method find
allow $1
allow agent.puppet.com

# allow all nodes to access the certificates services
path /certificate_revocation_list/ca
method find
allow *

# allow all nodes to store their own reports
path ~ ^/report/([^/]+)$
method save
allow $1
allow agent.puppet.com

那只是傀儡< =>客户,Felix是对的,如果你使用的puppetdb也必须改变