从自定义提供程序访问 Puppet 内置变量
Access Puppet built-in variables from a custom provider
有内置的全局变量,可以从清单或模板访问。就像 $serverip 作为主服务器的 IP 地址。我知道如何调用 Facter,但是一些内置函数不由任何 Facter 的 "facts" 表示。如何从自定义提供程序访问它们?
是的,代理将事实值传输给主控,以便在清单编译期间,您可以使用您描述的值。
代理本身(以及扩展的类型和提供者)可以直接访问这些值。
value = Facter.value('serverip')
这在代理端的几乎所有上下文(包括自定义事实)中都应该是可能的,因为 Puppet 代理将总是 加载 Facter,使分辨率直接可用。
随着来自 OP 的更多反馈,很明显这与来自全局变量的 master
信息无关,而是 "implicit facts" 代理配置。
代理可以非常简单地使用其来自全局哈希的配置。
port = Puppet['masterport']
master_host = Puppet['server']
总结一下,下面将 'global' 设置转储为人类可读的注释配置文件格式,供那些想知道哪些设置可用的人使用(那些可以通过 Puppet[' 访问的设置)设置']):
irb(main):001:0> require 'puppet'
irb(main):002:0> Puppet.initialize_settings
irb(main):003:0> puts Puppet.settings.to_config
有内置的全局变量,可以从清单或模板访问。就像 $serverip 作为主服务器的 IP 地址。我知道如何调用 Facter,但是一些内置函数不由任何 Facter 的 "facts" 表示。如何从自定义提供程序访问它们?
是的,代理将事实值传输给主控,以便在清单编译期间,您可以使用您描述的值。
代理本身(以及扩展的类型和提供者)可以直接访问这些值。
value = Facter.value('serverip')
这在代理端的几乎所有上下文(包括自定义事实)中都应该是可能的,因为 Puppet 代理将总是 加载 Facter,使分辨率直接可用。
随着来自 OP 的更多反馈,很明显这与来自全局变量的 master
信息无关,而是 "implicit facts" 代理配置。
代理可以非常简单地使用其来自全局哈希的配置。
port = Puppet['masterport']
master_host = Puppet['server']
总结一下,下面将 'global' 设置转储为人类可读的注释配置文件格式,供那些想知道哪些设置可用的人使用(那些可以通过 Puppet[' 访问的设置)设置']):
irb(main):001:0> require 'puppet'
irb(main):002:0> Puppet.initialize_settings
irb(main):003:0> puts Puppet.settings.to_config