我阅读了文档,但似乎没有提供IP地址。
这或多或少是正确的。文档详细说明 策略可执行文件的接口和期望 。 certname作为程序参数提供,PEM形式的CSR在程序的标准输入上提供。 Puppet没有提供任何其他功能,Puppet也没有,因为请求证书通常是代理和主服务器之间的第一次交互。
是否有任何变通方法来获取请求客户端的IP地址?
如果您使用主机名作为certname(默认值),或以其他方式获取主机名,则可以尝试DNS查找。或者在某些情况下,您可以从DHCP服务器,NIS服务器或其他类似系统获取信息。或者,您可以使用不同的属性作为certname,您可以为其执行适当的查找 - 例如,可能是资产编号。
此外,您应该能够让客户端将其IP号包括为 证书扩展 然后,策略可执行文件应该能够从CSR中提取。但请注意,如果CSR随后被签署,则该特定IP将永久包含在生成的证书中,无论您是否出于任何其他目的,并且无论后续的IP号是否发生任何更改。